llvm-6502/lib
Jakob Stoklund Olesen 708d06f7fb Add an interface for SplitKit complement spill modes.
SplitKit always computes a complement live range to cover the places
where the original live range was live, but no explicit region has been
allocated.

Currently, the complement live range is created to be as small as
possible - it never overlaps any of the regions.  This minimizes
register pressure, but if the complement is going to be spilled anyway,
that is not very important.  The spiller will eliminate redundant
spills, and hoist others by making the spill slot live range overlap
some of the regions created by splitting.  Stack slots are cheap.

This patch adds the interface to enable spill modes in SplitKit.  In
spill mode, SplitKit will assume that the complement is going to spill,
so it will allow it to overlap regions in order to avoid back-copies.
By doing some of the spiller's work early, the complement live range
becomes simpler.  In some cases, it can become much simpler because no
extra PHI-defs are required.  This will speed up both splitting and
spilling.

This is only the interface to enable spill modes, no implementation yet.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139500 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-12 16:49:21 +00:00
..
Analysis Set NSW/NUW flags on SCEVAddExpr when the operation is flagged as 2011-09-10 01:09:50 +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 Add an interface for SplitKit complement spill modes. 2011-09-12 16:49:21 +00:00
CompilerDriver Build CompilerDriver library. 2011-03-12 22:01:42 +00:00
ExecutionEngine Fix the asserts in lib/Target/X86/X86ELFWriterInfo.cpp and 2011-09-10 01:42:07 +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 Associate a MemOperand with LDWCP nodes introduced during ISel. 2011-09-12 14:43:23 +00:00
Transforms [disable-iv-rewrite] Allow WidenIV to handle NSW/NUW operations 2011-09-10 01:24:17 +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