summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2019-02-14 11:10:29 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2019-02-14 11:10:29 +0000
commit24383cd7bbe2716a1805cdbab908ff592a811cd7 (patch)
tree1a7e51af7731f95049172891e50822ab988376c6
parentb3168a400f2fdc4946ae7ca03c8a48b94e57e569 (diff)
downloadbcm5719-llvm-24383cd7bbe2716a1805cdbab908ff592a811cd7.tar.gz
bcm5719-llvm-24383cd7bbe2716a1805cdbab908ff592a811cd7.zip
Make widenable condition transparent for MemoryWriteTracking
Side effects of widenable condition intrinsic are modelled via InaccessibleMemOnly, and there is no way to say that it isn't really writing any memory. This patch teaches MemoryWriteTracking ignore this intrinsic. llvm-svn: 354021
-rw-r--r--llvm/lib/Analysis/InstructionPrecedenceTracking.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp b/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
index 0afce7ebbd3..35190ce3e11 100644
--- a/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
+++ b/llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
@@ -19,6 +19,7 @@
#include "llvm/Analysis/InstructionPrecedenceTracking.h"
#include "llvm/Analysis/ValueTracking.h"
+#include "llvm/IR/PatternMatch.h"
using namespace llvm;
@@ -152,5 +153,8 @@ bool ImplicitControlFlowTracking::isSpecialInstruction(
bool MemoryWriteTracking::isSpecialInstruction(
const Instruction *Insn) const {
+ using namespace PatternMatch;
+ if (match(Insn, m_Intrinsic<Intrinsic::experimental_widenable_condition>()))
+ return false;
return Insn->mayWriteToMemory();
}
OpenPOWER on IntegriCloud