Do not rerun LVA if only live-out has changed.
authorPat Gavlin <pagavlin@microsoft.com>
Mon, 9 Jan 2017 20:12:14 +0000 (12:12 -0800)
committerPat Gavlin <pagavlin@microsoft.com>
Tue, 10 Jan 2017 18:21:13 +0000 (10:21 -0800)
commit4b2c59bcee02ea95844abfe00e86b1cb7adfdd0f
tree700607cbcf3098f7301906239027e02d1848f318
parent0fa2c31d2b65a266e016180e785c37febaa45fca
Do not rerun LVA if only live-out has changed.

If only the live-out set for a block changes during live variable
analysis, the LVA algorithm does not need to be re-run. As per the
dataflow equations for LVA:

    liveOut(block) = union(liveIn(s) for all s in successors(block))

Thus, unless a change to the live-out set for a block propagates through
to a change to the live-in set for that block, it will not affect the
live-in/out sets of any of its predecessors and liveness need not be
re-run.
src/jit/liveness.cpp