[llvm] [LoopVectorize] Teach LoopVectorizationLegality about more early exits (PR #107004)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 9 04:41:41 PDT 2024


================
@@ -2445,8 +2445,11 @@ bool LoopAccessInfo::analyzeLoop(AAResults *AA, const LoopInfo *LI,
       // vectorize a loop if it contains known function calls that don't set
       // the flag. Therefore, it is safe to ignore this read from memory.
       auto *Call = dyn_cast<CallInst>(&I);
-      if (Call && getVectorIntrinsicIDForCall(Call, TLI))
-        continue;
+      if (Call) {
+        NumCalls++;
----------------
david-arm wrote:

Agreed. It might make more sense to analyse all instructions in the early exiting block by checking for I.mayHaveSideEffects(), I.mayThrow(), I.mayReadOrWriteMemory(), etc.

https://github.com/llvm/llvm-project/pull/107004


More information about the llvm-commits mailing list