diff options
| author | Eric Christopher <echristo@gmail.com> | 2015-02-02 22:11:43 +0000 |
|---|---|---|
| committer | Eric Christopher <echristo@gmail.com> | 2015-02-02 22:11:43 +0000 |
| commit | 01f875e8597431d953223e49fb9a05153e608055 (patch) | |
| tree | 58b83d1ee7c1cd3c5c345038e46566a7d0ecbe70 /llvm/lib | |
| parent | 0fef34e3fca096be4400ccedd80b40aaa5c9412e (diff) | |
| download | bcm5719-llvm-01f875e8597431d953223e49fb9a05153e608055.tar.gz bcm5719-llvm-01f875e8597431d953223e49fb9a05153e608055.zip | |
Migrate the HexagonSplitConst32AndConst64 pass from TargetMachine
based getSubtarget to the one cached on the MachineFunction.
Remove unused class variables and update all callers/uses.
llvm-svn: 227874
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/Hexagon/Hexagon.h | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp | 20 | ||||
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 4 |
3 files changed, 10 insertions, 17 deletions
diff --git a/llvm/lib/Target/Hexagon/Hexagon.h b/llvm/lib/Target/Hexagon/Hexagon.h index d9cabcdedcb..ad40e461b8e 100644 --- a/llvm/lib/Target/Hexagon/Hexagon.h +++ b/llvm/lib/Target/Hexagon/Hexagon.h @@ -37,8 +37,7 @@ namespace llvm { FunctionPass *createHexagonCFGOptimizer(); FunctionPass *createHexagonSplitTFRCondSets(const HexagonTargetMachine &TM); - FunctionPass *createHexagonSplitConst32AndConst64( - const HexagonTargetMachine &TM); + FunctionPass *createHexagonSplitConst32AndConst64(); FunctionPass *createHexagonExpandPredSpillCode(); FunctionPass *createHexagonHardwareLoops(); FunctionPass *createHexagonPeephole(); diff --git a/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp b/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp index 8fdd493a75d..2134d210e8c 100644 --- a/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp +++ b/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp @@ -48,12 +48,9 @@ using namespace llvm; namespace { class HexagonSplitConst32AndConst64 : public MachineFunctionPass { - const HexagonTargetMachine &QTM; - public: static char ID; - HexagonSplitConst32AndConst64(const HexagonTargetMachine &TM) - : MachineFunctionPass(ID), QTM(TM) {} + HexagonSplitConst32AndConst64() : MachineFunctionPass(ID) {} const char *getPassName() const override { return "Hexagon Split Const32s and Const64s"; @@ -68,13 +65,12 @@ char HexagonSplitConst32AndConst64::ID = 0; bool HexagonSplitConst32AndConst64::runOnMachineFunction(MachineFunction &Fn) { const HexagonTargetObjectFile &TLOF = - (const HexagonTargetObjectFile &)QTM.getSubtargetImpl() - ->getTargetLowering() - ->getObjFileLowering(); + *static_cast<const HexagonTargetObjectFile *>( + Fn.getTarget().getObjFileLowering()); if (TLOF.IsSmallDataEnabled()) return true; - const TargetInstrInfo *TII = QTM.getSubtargetImpl()->getInstrInfo(); + const TargetInstrInfo *TII = Fn.getSubtarget().getInstrInfo(); // Loop over all of the basic blocks for (MachineFunction::iterator MBBb = Fn.begin(), MBBe = Fn.end(); @@ -139,9 +135,9 @@ bool HexagonSplitConst32AndConst64::runOnMachineFunction(MachineFunction &Fn) { else if (Opc == Hexagon::CONST64_Int_Real) { int DestReg = MI->getOperand(0).getReg(); int64_t ImmValue = MI->getOperand(1).getImm (); - unsigned DestLo = QTM.getSubtargetImpl()->getRegisterInfo()->getSubReg( + unsigned DestLo = Fn.getSubtarget().getRegisterInfo()->getSubReg( DestReg, Hexagon::subreg_loreg); - unsigned DestHi = QTM.getSubtargetImpl()->getRegisterInfo()->getSubReg( + unsigned DestHi = Fn.getSubtarget().getRegisterInfo()->getSubReg( DestReg, Hexagon::subreg_hireg); int32_t LowWord = (ImmValue & 0xFFFFFFFF); @@ -176,6 +172,6 @@ bool HexagonSplitConst32AndConst64::runOnMachineFunction(MachineFunction &Fn) { //===----------------------------------------------------------------------===// FunctionPass * -llvm::createHexagonSplitConst32AndConst64(const HexagonTargetMachine &TM) { - return new HexagonSplitConst32AndConst64(TM); +llvm::createHexagonSplitConst32AndConst64() { + return new HexagonSplitConst32AndConst64(); } diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index c18729022d9..7245ce6c801 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -144,12 +144,10 @@ void HexagonPassConfig::addPostRegAlloc() { } void HexagonPassConfig::addPreSched2() { - const HexagonTargetMachine &TM = getHexagonTargetMachine(); - addPass(createHexagonCopyToCombine(), false); if (getOptLevel() != CodeGenOpt::None) addPass(&IfConverterID, false); - addPass(createHexagonSplitConst32AndConst64(TM)); + addPass(createHexagonSplitConst32AndConst64()); } void HexagonPassConfig::addPreEmitPass() { |

