dillon1000/react
Commit
Browse files Improve DCE to handle unused loop phis
Improves DCE, using fixpoint iteration to detect values that are updated across loops but otherwise never read. There is still some further optimization we can do (the dce-loop case could optimize out `y`), but this seems like plenty for now. Actually, we probably have to add some return statements to our fixtures before landing this, because otherwise most of the code goes away.
Changed paths32 files
First-parent comparisoncompiler/forget/src/Optimization/DeadCodeElimination.ts ModifiedM compiler/forget/src/__tests__/fixtures/hir/alias-while.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/assignment-variations.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/constant-propagation-phi.expect.md ModifiedA compiler/forget/src/__tests__/fixtures/hir/dce-loop.expect.md AddedA compiler/forget/src/__tests__/fixtures/hir/dce-loop.js AddedM compiler/forget/src/__tests__/fixtures/hir/destructuring-assignment.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/destructuring.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/infer-phi-primitive.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/obj-literal-cached-in-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/obj-literal-mutated-after-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/primitive-alias-mutate.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reverse-postorder.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-call-jsx-2.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-complex-multiple-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-complex-single-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-if-else.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-nested-loops-no-reassign.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-nested-partial-phi.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-sibling-phis.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-simple-phi.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-simple.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-single-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-switch.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/ssa-while-no-reassign.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/switch-with-fallthrough.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-args-test-binary-operator.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-binary-operator.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-field-load.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-test-field-load-binary-op.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-test-primitive.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-test-return-type-inference.expect.md ModifiedPatch
Files changed
Rendering syntax-highlighted changes…