"git@repo.hca.bsc.es:rferrer/llvm-epi-0.8.git" did not exist on "2e16624291eb45807c36a1ba3203d86a9d02237b"
- Aug 12, 2010
-
-
Jakob Stoklund Olesen authored
Before spilling a live range, we split it into a separate range for each basic block where it is used. That way we only get one reload per basic block if the new smaller ranges can allocate to a register. This type of splitting is already present in the standard spiller. llvm-svn: 110934
-
- Aug 10, 2010
-
-
Jakob Stoklund Olesen authored
The live interval may be used for a spill slot as well, and that spill slot could be shared by split registers. We cannot shrink it, even if we know the current register won't need the spill slot in that range. llvm-svn: 110721
-
- Aug 07, 2010
-
-
Jakob Stoklund Olesen authored
necessary. Sometimes, live range splitting doesn't shrink the current interval, but simply changes some instructions to use a new interval. That makes the original more suitable for spilling. In this case, we don't need to duplicate the original. llvm-svn: 110481
-
- Aug 06, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 110464
-
- Aug 05, 2010
-
-
Jakob Stoklund Olesen authored
This helps avoid silly code: %R0<def = LOAD <fi#5> STORE <fi#5>, %R0<kill> llvm-svn: 110266
-
Jakob Stoklund Olesen authored
We are now at a point where we can split around simple single-entry, single-exit loops, although still with some bugs. llvm-svn: 110257
-
- Jul 27, 2010
-
-
Jakob Stoklund Olesen authored
rewrite instructions for live range splitting. Still work in progress. llvm-svn: 109469
-
- Jul 21, 2010
-
-
Jakob Stoklund Olesen authored
The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. llvm-svn: 108969
-
- Jul 20, 2010
-
-
Jakob Stoklund Olesen authored
This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. llvm-svn: 108842
-
- Jul 19, 2010
-
-
Jakob Stoklund Olesen authored
non-const. llvm-svn: 108734
-
- Jul 09, 2010
-
-
Jakob Stoklund Olesen authored
inserted in a MBB, and return an already inserted MI. This target API change is necessary to allow foldMemoryOperand to call storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot reference in a target independent way. The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait until COPY folding is actually implemented. Most targets only fold copies and won't need to specialize this hook at all. llvm-svn: 107991
-
- Jul 02, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 107505
-
Jakob Stoklund Olesen authored
llvm-svn: 107503
-
Jakob Stoklund Olesen authored
This allows us to recognize the common case where all uses could be rematerialized, and no stack slot allocation is necessary. If some values could be fully rematerialized, remove them from the live range before allocating a stack slot for the rest. llvm-svn: 107492
-
- Jul 01, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 107355
-
Jakob Stoklund Olesen authored
llvm-svn: 107351
-
- Jun 30, 2010
-
-
Jakob Stoklund Olesen authored
LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. llvm-svn: 107302
-
Jakob Stoklund Olesen authored
InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. llvm-svn: 107227
-