1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/lib/CodeGen
Evan Cheng ca1e6eea8e Joining a live interval of a physical register with a virtual one can turn out
to be really bad. Once they are joined they are not broken apart. Also, physical
intervals cannot be spilled!

Added a heuristic as a workaround for this. Be careful coalescing with a
physical register if the virtual register uses are "far". Check if there are
uses in the same loop as the source (copy instruction). Check if it is in the
loop preheader, etc.

llvm-svn: 35134
2007-03-17 09:27:35 +00:00
..
SelectionDAG Use SmallSet instead of std::set. 2007-03-17 08:53:30 +00:00
AsmPrinter.cpp Small eye-candy: use asciz directive everywhere, where possible. 2007-03-06 19:25:02 +00:00
BranchFolding.cpp Remove isAccessable. 2007-02-22 16:39:03 +00:00
DwarfWriter.cpp Cleanup: make SetCounter an instance variable 2007-03-07 08:25:02 +00:00
ELFWriter.cpp Generalize TargetData strings, to support more interesting forms of data. 2007-02-14 05:52:17 +00:00
ELFWriter.h Moved from include/llvm/CodeGen to lib/CodeGen. 2007-02-08 01:30:50 +00:00
IntrinsicLowering.cpp Lower eh filter intrinsic. 2007-03-01 20:24:30 +00:00
LiveInterval.cpp Added an automatic cast to "std::ostream*" etc. from OStream. We then can 2006-12-17 05:15:13 +00:00
LiveIntervalAnalysis.cpp Joining a live interval of a physical register with a virtual one can turn out 2007-03-17 09:27:35 +00:00
LiveVariables.cpp If a virtual register is already marked alive in this block, that means it is 2007-03-09 09:48:56 +00:00
LLVMTargetMachine.cpp Now LoopStrengthReduce is a LoopPass. 2007-03-06 21:14:09 +00:00
MachineBasicBlock.cpp Print preds / succs BB numbers. 2007-03-09 08:29:08 +00:00
MachineFunction.cpp Generalize TargetData strings, to support more interesting forms of data. 2007-02-14 05:52:17 +00:00
MachineInstr.cpp Use findRegisterUseOperand to find a kill of particular register. 2007-02-23 01:04:26 +00:00
MachineModuleInfo.cpp Collect eh filter info. 2007-03-01 20:25:32 +00:00
MachinePassRegistry.cpp Final polish on machine pass registries. 2006-08-02 12:30:23 +00:00
MachOWriter.cpp Remove unneeded header file. 2007-03-04 04:41:04 +00:00
MachOWriter.h More Mach-O writer improvements. 2007-02-28 07:40:50 +00:00
Makefile this will work better 2006-11-03 19:15:55 +00:00
Passes.cpp *** empty log message *** 2006-11-16 20:11:33 +00:00
PHIElimination.cpp rename DenseMap to IndexedMap. 2007-02-01 05:32:05 +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 If target decides to create an emergency spill slot, make sure it's closest to SP or frame pointer. 2007-03-06 10:02:38 +00:00
RegAllocLinearScan.cpp Only add liveinterval to livein set if it isn't assigned a stack slot. 2007-02-25 09:39:02 +00:00
RegAllocLocal.cpp Use BitVector instead of vector<bool> which can be extremely slow. 2007-02-15 05:59:24 +00:00
RegAllocSimple.cpp Eliminate static ctors from Statistics 2006-12-19 22:41:21 +00:00
RegisterScavenging.cpp Minor bug fix. 2007-03-06 21:58:15 +00:00
TwoAddressInstructionPass.cpp Eliminate static ctors from Statistics 2006-12-19 22:41:21 +00:00
UnreachableBlockElim.cpp eliminate RegisterOpt. It does the same thing as RegisterPass. 2006-08-27 22:42:52 +00:00
VirtRegMap.cpp Only propagate IsKill if the last use is a kill. 2007-03-03 06:32:37 +00:00
VirtRegMap.h rename DenseMap to IndexedMap. 2007-02-01 05:32:05 +00:00