llvm-project/llvm/lib
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
..
Analysis A couple minor corrections to r139276. 2011-09-08 02:37:07 +00:00
Archive Rewrite the CMake build to use explicit dependencies between libraries, 2011-07-29 00:14:25 +00:00
AsmParser Auto upgrade the old EH scheme to use the new one. This is on a trial basis. If 2011-08-27 06:11:03 +00:00
Bitcode Don't forget to add the landingpad and resume instructions to the InstructionList. 2011-09-01 00:50:20 +00:00
CodeGen Reapply r139247: Cache intermediate results during traceSiblingValue. 2011-09-09 18:11:41 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Move TargetRegistry and TargetSelect from Target to Support where they belong. 2011-08-24 18:08:43 +00:00
Linker switch to the new struct api. 2011-08-12 18:07:26 +00:00
MC Formatting and typo. 2011-09-08 22:17:40 +00:00
Object Remove dead code. 2011-09-09 00:22:05 +00:00
Support Add AMDIL as valid target triple to LLVM. 2011-08-29 15:44:55 +00:00
Target Fix handling of Intel syntax disassembling of movs and stos to stop being blank. Also fixed scas, and cmps to always print size suffix in Intel syntax since its abiguous without arguments. Fixes PR10875. 2011-09-09 05:40:53 +00:00
Transforms Comment formatting. 2011-09-09 17:35:10 +00:00
VMCore Add codegen support for vector select (in the IR this means a select 2011-09-06 19:07:46 +00:00
CMakeLists.txt Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
Makefile Add LLVMObject Library. 2010-11-15 03:21:41 +00:00