summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2017-05-08 18:02:51 +0000
committerCraig Topper <craig.topper@gmail.com>2017-05-08 18:02:51 +0000
commit8297e52285e7b6790b29e0a82ca63acc76979967 (patch)
tree481bda2294a206509be8cd1be3297c6ebef15918 /llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
parent94a4ac0e50f2b797796048e2c4ce7430a2aeae28 (diff)
downloadbcm5719-llvm-8297e52285e7b6790b29e0a82ca63acc76979967.tar.gz
bcm5719-llvm-8297e52285e7b6790b29e0a82ca63acc76979967.zip
[ARM] Use a Changed flag to avoid making a pass's return value dependent on a compare with a Statistic object.
Statistic compile to always be 0 in release build so this compare would always return false. And in the debug builds Statistic are global variables and remember their values across pass runs. So this compare returns true anytime the pass runs after the first time it modifies something. This was found after reviewing all usages of comparison operators on a Statistic object. We had some internal code that did a compare with a statistic that caused a mismatch in output between debug and release builds. So we did an audit out of paranoia. llvm-svn: 302450
Diffstat (limited to 'llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp b/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
index 581d5fe159f..7e4d598a6e0 100644
--- a/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
+++ b/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp
@@ -88,13 +88,15 @@ bool ARMOptimizeBarriersPass::runOnMachineFunction(MachineFunction &MF) {
}
}
}
+ bool Changed = false;
// Remove the tagged DMB
for (auto MI : ToRemove) {
MI->eraseFromParent();
++NumDMBsRemoved;
+ Changed = true;
}
- return NumDMBsRemoved > 0;
+ return Changed;
}
/// createARMOptimizeBarriersPass - Returns an instance of the remove double
OpenPOWER on IntegriCloud