diff options
author | Nadav Rotem <nrotem@apple.com> | 2012-09-06 09:17:37 +0000 |
---|---|---|
committer | Nadav Rotem <nrotem@apple.com> | 2012-09-06 09:17:37 +0000 |
commit | c05d30601ced172b55be81bb529df6be91d6ae15 (patch) | |
tree | 4d0557ea0f15a6136fdfef2f93ec4abcaad662fd /lib/CodeGen/Passes.cpp | |
parent | 6c822eea47dbef96940819b1ea085fabc49a1e71 (diff) |
Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be
disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163299 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Passes.cpp')
-rw-r--r-- | lib/CodeGen/Passes.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/Passes.cpp b/lib/CodeGen/Passes.cpp index 9564b5dbe1..a6dd5decbe 100644 --- a/lib/CodeGen/Passes.cpp +++ b/lib/CodeGen/Passes.cpp @@ -529,6 +529,10 @@ void TargetPassConfig::addMachineSSAOptimization() { // instructions dead. addPass(&OptimizePHIsID); + // This pass merges large allocas. StackSlotColoring is a different pass + // which merges spill slots. + addPass(&StackColoringID); + // If the target requests it, assign local variables to stack slots relative // to one another and simplify frame index references where possible. addPass(&LocalStackSlotAllocationID); |