diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp | 11 |
1 files changed, 6 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; |