aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorMarkus Lavin <markus.lavin@ericsson.com>2022-06-21 08:08:06 +0200
committerMarkus Lavin <markus.lavin@ericsson.com>2022-06-21 08:13:09 +0200
commit3815ae29b5cb43333adde04df9d9a7a644b77d68 (patch)
treeb9a242f1baa8900ef91793365d73dfb2ba636e78 /llvm/lib/CodeGen/MachineBasicBlock.cpp
parentca4af13e480e856f8f889c1e145308fc4eb69816 (diff)
downloadllvm-3815ae29b5cb43333adde04df9d9a7a644b77d68.zip
llvm-3815ae29b5cb43333adde04df9d9a7a644b77d68.tar.gz
llvm-3815ae29b5cb43333adde04df9d9a7a644b77d68.tar.bz2
[machinesink] fix debug invariance issue
Do not include debug instructions when comparing block sizes with thresholds. Differential Revision: https://reviews.llvm.org/D127208
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp
index 9f6be9a..26e8410 100644
--- a/llvm/lib/CodeGen/MachineBasicBlock.cpp
+++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp
@@ -1617,6 +1617,16 @@ MachineBasicBlock::liveout_iterator MachineBasicBlock::liveout_begin() const {
return liveout_iterator(*this, ExceptionPointer, ExceptionSelector, false);
}
+bool MachineBasicBlock::sizeWithoutDebugLargerThan(unsigned Limit) const {
+ unsigned Cntr = 0;
+ auto R = instructionsWithoutDebug(begin(), end());
+ for (auto I = R.begin(), E = R.end(); I != E; ++I) {
+ if (++Cntr > Limit)
+ return true;
+ }
+ return false;
+}
+
const MBBSectionID MBBSectionID::ColdSectionID(MBBSectionID::SectionType::Cold);
const MBBSectionID
MBBSectionID::ExceptionSectionID(MBBSectionID::SectionType::Exception);