summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp')
-rw-r--r--llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp11
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;
OpenPOWER on IntegriCloud