llvm-6502/lib/CodeGen
Chris Lattner b26c215c05 Change addRange and join to be a little bit smarter. In particular, we don't
want to insert a new range into the middle of the vector, then delete ranges
one at a time next to the inserted one as they are merged.

Instead, if the inserted interval overlaps, just start merging.  The only time
we insert into the middle of the vector is when we don't overlap at all.  Also
delete blocks of live ranges if we overlap with many of them.

This patch speeds up joining by .7 seconds on a large testcase, but more
importantly gets all of the range adding code into addRangeFrom.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15141 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 19:38:44 +00:00
..
InstrSched Use new macro 2004-07-16 00:04:54 +00:00
ModuloScheduling These files don't need to include <iostream> since they include "Support/Debug.h". 2004-07-21 20:50:33 +00:00
SelectionDAG Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
IntrinsicLowering.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
LiveInterval.cpp Change addRange and join to be a little bit smarter. In particular, we don't 2004-07-23 19:38:44 +00:00
LiveInterval.h Change addRange and join to be a little bit smarter. In particular, we don't 2004-07-23 19:38:44 +00:00
LiveIntervalAnalysis.cpp Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h) 2004-07-23 17:56:30 +00:00
LiveIntervalAnalysis.h Speedup debug builds a bit 2004-07-23 18:38:52 +00:00
LiveVariables.cpp There is no need to store the MBB along with the MI any more, we can now 2004-07-19 07:04:55 +00:00
MachineBasicBlock.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
MachineCodeEmitter.cpp Add #include <iostream> since Value.h does not #include it any more. 2004-07-04 12:19:56 +00:00
MachineCodeForInstruction.cpp Do not find these ugly sparc-specific objects by using the annotation API on 2004-06-27 18:52:17 +00:00
MachineFunction.cpp Add viewCFG() and viewCFGOnly() APIs. 2004-07-08 00:47:58 +00:00
MachineInstr.cpp * Doxygenify comments 2004-07-09 14:45:17 +00:00
MachineInstrAnnot.cpp Move the private MachineInstrAnnot.h into a private directory. 2004-02-29 19:12:51 +00:00
Makefile Making an archive version of the CodeGen library is unnecessary if we just 2004-06-22 17:52:30 +00:00
Passes.cpp The default has not been 'simple' for AGES! 2004-07-22 21:46:02 +00:00
PHIElimination.cpp Update live intervals more accurately for PHI elim. This slightly reduces 2004-07-23 05:27:43 +00:00
PhysRegTracker.h Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr 2004-02-23 06:10:13 +00:00
PrologEpilogInserter.cpp Fix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were being 2004-06-11 06:37:11 +00:00
RegAllocIterativeScan.cpp Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h) 2004-07-23 17:56:30 +00:00
RegAllocLinearScan.cpp Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h) 2004-07-23 17:56:30 +00:00
RegAllocLocal.cpp These files don't need to include <iostream> since they include "Support/Debug.h". 2004-07-21 20:50:33 +00:00
RegAllocSimple.cpp These files don't need to include <iostream> since they include "Support/Debug.h". 2004-07-21 20:50:33 +00:00
TwoAddressInstructionPass.cpp Fix indentation and wrap code at 80 cols 2004-07-22 15:26:23 +00:00
UnreachableBlockElim.cpp Fix a bug in the unreachable block elim pass. Dropping all references on a 2004-07-06 06:36:11 +00:00
VirtRegMap.cpp These files don't need to include <iostream> since they include "Support/Debug.h". 2004-07-21 20:50:33 +00:00
VirtRegMap.h Add function to clear all virtual->physical mappings but not assigned 2004-07-20 13:28:17 +00:00