mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-10 14:00:21 +02:00
* module/language/cps/cse.scm (intset-intersect*): New helper. Use it to replace manual uses. (lset-unionq, meet-constants, adjoin-constant, set-constants): New helpers. (compute-consts): New function, to compute constants at each label, using not only definitions but flow. (<analysis>): Add consts to analysis. (elide-predecessor, prune-branch, forward-branch, compute-out-edges) (propagate-analysis, eliminate-common-subexpressions-in-fun): Plumb consts through the algorithm. (fold-branch): Fold an eq-constant? using the flow-determined constant info. Finally allows compile-bytecode to fold to switch statements! * module/language/cps/optimize.scm (optimize-first-order-cps): Move branch chain optimization before the final CSE/DCE pass. |
||
---|---|---|
.. | ||
closure-conversion.scm | ||
compile-bytecode.scm | ||
contification.scm | ||
cse.scm | ||
dce.scm | ||
devirtualize-integers.scm | ||
effects-analysis.scm | ||
graphs.scm | ||
intmap.scm | ||
intset.scm | ||
licm.scm | ||
loop-instrumentation.scm | ||
optimize.scm | ||
peel-loops.scm | ||
prune-top-level-scopes.scm | ||
reify-primitives.scm | ||
renumber.scm | ||
rotate-loops.scm | ||
self-references.scm | ||
simplify.scm | ||
slot-allocation.scm | ||
spec.scm | ||
specialize-numbers.scm | ||
specialize-primcalls.scm | ||
split-rec.scm | ||
switch.scm | ||
type-checks.scm | ||
type-fold.scm | ||
types.scm | ||
utils.scm | ||
verify.scm | ||
with-cps.scm |