Go to file
Jakob Stoklund Olesen 278bf02581 Reapply r139247: Cache intermediate results during traceSiblingValue.
In some cases such as interpreters using indirectbr, the CFG can be very
complicated, and live range splitting may be forced to insert a large
number of phi-defs.  When that happens, traceSiblingValue can spend a
lot of time zipping around in the CFG looking for defs and reloads.

This patch causes more information to be cached in SibValues, and the
cached values are used to terminate searches early.  This speeds up
spilling by 20x in one interpreter test case.  For more typical code,
this is just a 10% speedup of spilling.

The previous version had bugs that caused miscompilations. They have
been fixed.

llvm-svn: 139378
2011-09-09 18:11:41 +00:00
clang When type-checking a call to an overloaded, builtin atomic operation, 2011-09-09 16:51:10 +00:00
compiler-rt Change ARM vfp assembly functions to use unified syntax. 2011-08-23 16:40:18 +00:00
debuginfo-tests Testcase for r133065 2011-06-15 17:57:23 +00:00
libcxx Fix const correctness bug in __move_assign. Found and fixed by Ion Gaztañaga. 2011-09-02 20:42:31 +00:00
libcxxabi reformatted to match Clang style; thanks to John McCall for the nudge 2011-08-15 18:06:47 +00:00
lldb Adding two new options to the 'help' command: 2011-09-09 17:49:36 +00:00
llvm Reapply r139247: Cache intermediate results during traceSiblingValue. 2011-09-09 18:11:41 +00:00
polly Also force a fixed version of cloog 2011-09-09 11:02:10 +00:00