diff options
author | Justin Holewinski <jholewinski@nvidia.com> | 2013-10-11 12:39:39 +0000 |
---|---|---|
committer | Justin Holewinski <jholewinski@nvidia.com> | 2013-10-11 12:39:39 +0000 |
commit | 81d9902bb11b05c19c2a82209c362bd4e772bfea (patch) | |
tree | ede6e8808227cad18463facbc99c4e2fed34dfda /lib/Target/NVPTX | |
parent | 43777c3150c1dd12c661f62d5d7c95bf9b04c16a (diff) | |
download | llvm-81d9902bb11b05c19c2a82209c362bd4e772bfea.tar.gz llvm-81d9902bb11b05c19c2a82209c362bd4e772bfea.tar.bz2 llvm-81d9902bb11b05c19c2a82209c362bd4e772bfea.tar.xz |
[NVPTX] Switch from StrongPHIElimination to PHIElimination in NVPTXTargetMachine, and add some missing optimization passes to addOptimizedRegAlloc
Fixes PR17529
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192445 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/NVPTX')
-rw-r--r-- | lib/Target/NVPTX/NVPTXTargetMachine.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/lib/Target/NVPTX/NVPTXTargetMachine.cpp b/lib/Target/NVPTX/NVPTXTargetMachine.cpp index 72afe8d6ea..c3196552f2 100644 --- a/lib/Target/NVPTX/NVPTXTargetMachine.cpp +++ b/lib/Target/NVPTX/NVPTXTargetMachine.cpp @@ -154,10 +154,30 @@ FunctionPass *NVPTXPassConfig::createTargetRegisterAllocator(bool) { void NVPTXPassConfig::addFastRegAlloc(FunctionPass *RegAllocPass) { assert(!RegAllocPass && "NVPTX uses no regalloc!"); - addPass(&StrongPHIEliminationID); + addPass(&PHIEliminationID); + addPass(&TwoAddressInstructionPassID); } void NVPTXPassConfig::addOptimizedRegAlloc(FunctionPass *RegAllocPass) { assert(!RegAllocPass && "NVPTX uses no regalloc!"); - addPass(&StrongPHIEliminationID); + + addPass(&ProcessImplicitDefsID); + addPass(&LiveVariablesID); + addPass(&MachineLoopInfoID); + addPass(&PHIEliminationID); + + addPass(&TwoAddressInstructionPassID); + addPass(&RegisterCoalescerID); + + // PreRA instruction scheduling. + if (addPass(&MachineSchedulerID)) + printAndVerify("After Machine Scheduling"); + + + addPass(&StackSlotColoringID); + + // FIXME: Needs physical registers + //addPass(&PostRAMachineLICMID); + + printAndVerify("After StackSlotColoring"); } |