diff options
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp | 11 | ||||
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp | 2 |
2 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp b/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp index 7d0878815a1..fdf57a82cbd 100644 --- a/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp +++ b/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp @@ -155,9 +155,7 @@ namespace { public: static char ID; - HexagonEarlyIfConversion() : MachineFunctionPass(ID) { - initializeHexagonEarlyIfConversionPass(*PassRegistry::getPassRegistry()); - } + HexagonEarlyIfConversion() : MachineFunctionPass(ID) {} StringRef getPassName() const override { return "Hexagon early if conversion"; @@ -227,7 +225,7 @@ namespace { char HexagonEarlyIfConversion::ID = 0; -INITIALIZE_PASS(HexagonEarlyIfConversion, "hexagon-eif", +INITIALIZE_PASS(HexagonEarlyIfConversion, "hexagon-early-if", "Hexagon early if conversion", false, false) bool HexagonEarlyIfConversion::isPreheader(const MachineBasicBlock *B) const { @@ -539,7 +537,10 @@ bool HexagonEarlyIfConversion::isProfitable(const FlowPattern &FP) const { auto TotalCount = [] (const MachineBasicBlock *B, unsigned &Spare) { if (!B) return 0u; - unsigned T = std::distance(B->begin(), B->getFirstTerminator()); + unsigned T = std::count_if(B->begin(), B->getFirstTerminator(), + [](const MachineInstr &MI) { + return !MI.isDebugValue(); + }); if (T < HEXAGON_PACKET_SIZE) Spare += HEXAGON_PACKET_SIZE-T; return T; diff --git a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp index 543318c7a14..01634756d0a 100644 --- a/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp +++ b/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp @@ -109,6 +109,7 @@ SchedCustomRegistry("hexagon", "Run Hexagon's custom scheduler", namespace llvm { extern char &HexagonExpandCondsetsID; + void initializeHexagonEarlyIfConversionPass(PassRegistry&); void initializeHexagonExpandCondsetsPass(PassRegistry&); void initializeHexagonGenMuxPass(PassRegistry&); void initializeHexagonLoopIdiomRecognizePass(PassRegistry&); @@ -163,6 +164,7 @@ extern "C" void LLVMInitializeHexagonTarget() { RegisterTargetMachine<HexagonTargetMachine> X(getTheHexagonTarget()); PassRegistry &PR = *PassRegistry::getPassRegistry(); + initializeHexagonEarlyIfConversionPass(PR); initializeHexagonGenMuxPass(PR); initializeHexagonLoopIdiomRecognizePass(PR); initializeHexagonNewValueJumpPass(PR); |