Files
swift-mirror/lib/SILOptimizer
Xin Tong ee1396aaa6 Refactor RLE into stages.
After the refactoring, RLE runs in the following phases:

Phase 1. we use an iterative data flow to compute whether there is an
available value at a given point, we do not yet care about what the value
is.

Phase 2. we compute the real forwardable value at a given point.

Phase 3. we setup the SILValues for the redundant load elimination.

Phase 4. we perform the redundant load elimination.

Previously we were computing available bit as well as what the available
value is every iteration of the data flow.

I do not see a compilation time improvement though, but this helps to move
to a genset and killset later as we only need to expand Phase 1 into a few smaller
phases to compute genset & killset first and then iterate until convergence for
the data flow.

I verified that we are performing same # of RLE on stdlib before the change.

Existing test ensure correctness.
2015-12-21 14:56:56 -08:00
..
2015-12-16 22:09:32 +01:00
2015-12-21 14:56:56 -08:00