[llvm] 9b0b626 - Use isConvergent helper instead of directly checking attribute

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sun Oct 27 20:27:07 PDT 2019


Author: Matt Arsenault
Date: 2019-10-27T19:39:14-07:00
New Revision: 9b0b626d2c19802bf3d56272cbc3a13d3c9ee5dd

URL: https://github.com/llvm/llvm-project/commit/9b0b626d2c19802bf3d56272cbc3a13d3c9ee5dd
DIFF: https://github.com/llvm/llvm-project/commit/9b0b626d2c19802bf3d56272cbc3a13d3c9ee5dd.diff

LOG: Use isConvergent helper instead of directly checking attribute

Added: 
    

Modified: 
    llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
    llvm/lib/Transforms/Scalar/Sink.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
index b410df0c5f68..afd0249ac96c 100644
--- a/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
@@ -683,7 +683,7 @@ bool LoopUnswitch::processCurrentLoop() {
     for (auto &I : *BB) {
       auto CS = CallSite(&I);
       if (!CS) continue;
-      if (CS.hasFnAttr(Attribute::Convergent))
+      if (CS.isConvergent())
         return false;
       if (auto *II = dyn_cast<InvokeInst>(&I))
         if (!II->getUnwindDest()->canSplitPredecessors())

diff  --git a/llvm/lib/Transforms/Scalar/Sink.cpp b/llvm/lib/Transforms/Scalar/Sink.cpp
index 90f3a2aa46e1..72b586c85fe1 100644
--- a/llvm/lib/Transforms/Scalar/Sink.cpp
+++ b/llvm/lib/Transforms/Scalar/Sink.cpp
@@ -78,7 +78,7 @@ static bool isSafeToMove(Instruction *Inst, AliasAnalysis &AA,
   if (auto *Call = dyn_cast<CallBase>(Inst)) {
     // Convergent operations cannot be made control-dependent on additional
     // values.
-    if (Call->hasFnAttr(Attribute::Convergent))
+    if (Call->isConvergent())
       return false;
 
     for (Instruction *S : Stores)


        


More information about the llvm-commits mailing list