aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveStackAnalysis.cpp
AgeCommit message (Collapse)AuthorFilesLines
2010-10-26Make the spiller responsible for updating the LiveStacks analysis.Jakob Stoklund Olesen1-0/+2
llvm-svn: 117337
2010-10-07Now with fewer extraneous semicolons!Owen Anderson1-1/+1
llvm-svn: 115996
2010-07-21Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson1-1/+2
llvm-svn: 109045
2010-06-26VNInfos don't need to be destructed anymore.Benjamin Kramer1-2/+2
llvm-svn: 106943
2010-03-30Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allowsBenjamin Kramer1-1/+1
only a single type of object to be allocated. Use it to make VNInfo destruction typesafe. llvm-svn: 99919
2009-11-03The Indexes Patch.Lang Hames1-7/+2
This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. llvm-svn: 85979
2009-08-23Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner1-2/+1
update all code that this affects. llvm-svn: 79830
2009-08-23shoot a few more std::ostream print methods in the head.Chris Lattner1-4/+7
llvm-svn: 79814
2009-06-02Update to in-place spilling framework. Includes live interval scaling and ↵Lang Hames1-0/+9
trivial rewriter. llvm-svn: 72729
2009-05-03In some rare cases, the register allocator can spill registers but end up ↵Evan Cheng1-3/+9
not utilizing registers at all. The fundamental problem is linearscan's backtracking can end up freeing more than one allocated registers. However, reloads and restores might be folded into uses / defs and freed registers might not be used at all. VirtRegMap keeps track of allocations so it knows what's not used. As a horrible hack, the stack coloring can color spill slots with *free* registers. That is, it replace reload and spills with copies from and to the free register. It unfold instructions that load and store the spill slot and replace them with register using variants. Not yet enabled. This is part 1. More coming. llvm-svn: 70787
2008-09-22Livestacks really does preserve everything.Evan Cheng1-2/+1
llvm-svn: 56476
2008-09-22Instead of setPreservesAll, just mark them preseving machine loop info and ↵Evan Cheng1-1/+2
machine dominators. llvm-svn: 56475
2008-09-22Mark several codegen passes as preserving all analysis.Evan Cheng1-0/+1
llvm-svn: 56469
2008-06-04Add a stack slot coloring pass. Not yet enabled.Evan Cheng1-0/+50
llvm-svn: 51934