summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Analysis/InstructionPrecedenceTracking.cpp')
-rw-r--r--llvm/lib/Analysis/InstructionPrecedenceTracking.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp b/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
index b98975b006a..816126f407c 100644
--- a/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
+++ b/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
@@ -99,9 +99,17 @@ void InstructionPrecedenceTracking::validateAll() const {
}
#endif
-void InstructionPrecedenceTracking::invalidateBlock(const BasicBlock *BB) {
+void InstructionPrecedenceTracking::insertInstructionTo(const Instruction *Inst,
+ const BasicBlock *BB) {
+ if (isSpecialInstruction(Inst))
+ FirstSpecialInsts.erase(BB);
OI.invalidateBlock(BB);
- FirstSpecialInsts.erase(BB);
+}
+
+void InstructionPrecedenceTracking::removeInstruction(const Instruction *Inst) {
+ if (isSpecialInstruction(Inst))
+ FirstSpecialInsts.erase(Inst->getParent());
+ OI.invalidateBlock(Inst->getParent());
}
void InstructionPrecedenceTracking::clear() {
OpenPOWER on IntegriCloud