diff options
Diffstat (limited to 'lib/Target/Hexagon/HexagonTargetMachine.cpp')
-rw-r--r-- | lib/Target/Hexagon/HexagonTargetMachine.cpp | 43 |
1 files changed, 20 insertions, 23 deletions
diff --git a/lib/Target/Hexagon/HexagonTargetMachine.cpp b/lib/Target/Hexagon/HexagonTargetMachine.cpp index 78314100d18a..52aff2787bac 100644 --- a/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -70,10 +70,13 @@ HexagonTargetMachine::HexagonTargetMachine(const Target &T, StringRef TT, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL) : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL), + TLOF(make_unique<HexagonTargetObjectFile>()), Subtarget(TT, CPU, FS, *this) { initAsmInfo(); } +HexagonTargetMachine::~HexagonTargetMachine() {} + namespace { /// Hexagon Code Generator Pass Configuration Options. class HexagonPassConfig : public TargetPassConfig { @@ -100,10 +103,10 @@ public: } bool addInstSelector() override; - bool addPreRegAlloc() override; - bool addPostRegAlloc() override; - bool addPreSched2() override; - bool addPreEmitPass() override; + void addPreRegAlloc() override; + void addPostRegAlloc() override; + void addPreSched2() override; + void addPreEmitPass() override; }; } // namespace @@ -128,51 +131,45 @@ bool HexagonPassConfig::addInstSelector() { return false; } -bool HexagonPassConfig::addPreRegAlloc() { +void HexagonPassConfig::addPreRegAlloc() { if (getOptLevel() != CodeGenOpt::None) if (!DisableHardwareLoops) - addPass(createHexagonHardwareLoops()); - return false; + addPass(createHexagonHardwareLoops(), false); } -bool HexagonPassConfig::addPostRegAlloc() { +void HexagonPassConfig::addPostRegAlloc() { const HexagonTargetMachine &TM = getHexagonTargetMachine(); if (getOptLevel() != CodeGenOpt::None) if (!DisableHexagonCFGOpt) - addPass(createHexagonCFGOptimizer(TM)); - return false; + addPass(createHexagonCFGOptimizer(TM), false); } -bool HexagonPassConfig::addPreSched2() { +void HexagonPassConfig::addPreSched2() { const HexagonTargetMachine &TM = getHexagonTargetMachine(); - addPass(createHexagonCopyToCombine()); + addPass(createHexagonCopyToCombine(), false); if (getOptLevel() != CodeGenOpt::None) - addPass(&IfConverterID); + addPass(&IfConverterID, false); addPass(createHexagonSplitConst32AndConst64(TM)); - printAndVerify("After hexagon split const32/64 pass"); - return true; } -bool HexagonPassConfig::addPreEmitPass() { +void HexagonPassConfig::addPreEmitPass() { const HexagonTargetMachine &TM = getHexagonTargetMachine(); bool NoOpt = (getOptLevel() == CodeGenOpt::None); if (!NoOpt) - addPass(createHexagonNewValueJump()); + addPass(createHexagonNewValueJump(), false); // Expand Spill code for predicate registers. - addPass(createHexagonExpandPredSpillCode(TM)); + addPass(createHexagonExpandPredSpillCode(TM), false); // Split up TFRcondsets into conditional transfers. - addPass(createHexagonSplitTFRCondSets(TM)); + addPass(createHexagonSplitTFRCondSets(TM), false); // Create Packets. if (!NoOpt) { if (!DisableHardwareLoops) - addPass(createHexagonFixupHwLoops()); - addPass(createHexagonPacketizer()); + addPass(createHexagonFixupHwLoops(), false); + addPass(createHexagonPacketizer(), false); } - - return false; } |