Trace through sibling PHIs in bulk.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 15 Sep 2011 16:41:12 +0000 (16:41 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 15 Sep 2011 16:41:12 +0000 (16:41 +0000)
commit6b6e32d954233ddeeae7f99e358ff85059f1176a
treeba65d0d3d5fa70118eed8618be9a4f4ce256f7d9
parentb6e9a83349474d348b401f02c58f4a1754181127
Trace through sibling PHIs in bulk.

When traceSiblingValue() encounters a PHI-def value created by live
range splitting, don't look at all the predecessor blocks.  That can be
very expensive in a complicated CFG.

Instead, consider that all the non-PHI defs jointly dominate all the
PHI-defs.  Tracing directly to all the non-PHI defs is much faster that
zipping around in the CFG when there are many PHIs with many
predecessors.

This significantly improves compile time for indirectbr interpreters.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139797 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/InlineSpiller.cpp