[PATCH] D20474: when calculating RegUsages, ignore instructions which are uniformed after vectorization

Michael Kuperstein via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 15 16:50:31 PDT 2016


mkuper accepted this revision.
mkuper added a comment.
This revision is now accepted and ready to land.

Sorry, I lost track of this patch.

LGTM, modulo a couple of nits.


================
Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:6495
@@ +6494,3 @@
+        VecValuesToIgnore.insert(&I);
+      LoadInst *LI = dyn_cast<LoadInst>(&I);
+      StoreInst *SI = dyn_cast<StoreInst>(&I);
----------------
I was sure we already had a helper for a common LI/SI getPointerOperand() helper.
Turns out we have (at least!) 6, in:
* LoopAccessAnalysis
* EarlyCSE
* DependenceAnalysis
* PPCLoopPreIncPrep
* Delinearization
* LoadStoreVectorizer

I'm going to refactor this into a common helper somewhere in utils, but can you hoist this into another local helper? It'll be easier for me to keep track of, in case I land after you do.
(If you prefer to do the refactoring yourself, let me know. :-) )

================
Comment at: test/Transforms/LoopVectorize/X86/reg-usage.ll:46
@@ -47,1 +45,3 @@
 
+define i32 @goo() {
+; CHECK-LABEL: goo
----------------
Could you please document what each of the two new tests actually tries to check?


Repository:
  rL LLVM

https://reviews.llvm.org/D20474





More information about the llvm-commits mailing list