diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-05-29 16:59:48 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-05-29 16:59:48 +0000 |
commit | f80c4241b306ce4cf2d718b590e516866d787c67 (patch) | |
tree | 3850bfd3cbd2b2e45d60efb551226c579d3d1caf /llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp | |
parent | 5b2088d1fac1f464cd51d4b660b29c5db47a54c4 (diff) | |
download | bcm5719-llvm-f80c4241b306ce4cf2d718b590e516866d787c67.tar.gz bcm5719-llvm-f80c4241b306ce4cf2d718b590e516866d787c67.zip |
CallSiteSplitting: Respect convergent and noduplicate
llvm-svn: 361990
Diffstat (limited to 'llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp b/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp index 6b749238d2b..3519b000a33 100644 --- a/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp +++ b/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp @@ -183,6 +183,9 @@ static SmallVector<BasicBlock *, 2> getTwoPredecessors(BasicBlock *BB) { } static bool canSplitCallSite(CallSite CS, TargetTransformInfo &TTI) { + if (CS.isConvergent() || CS.cannotDuplicate()) + return false; + // FIXME: As of now we handle only CallInst. InvokeInst could be handled // without too much effort. Instruction *Instr = CS.getInstruction(); |