[PATCH] D82195: [InjectTLIMappings] Preserve GLobalsAAWrapperPass.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 19 08:05:43 PDT 2020


fhahn created this revision.
fhahn added reviewers: asbirlea, fpetrogalli, anemet, efriedma.
Herald added subscribers: dexonsmith, hiraditya.
Herald added a project: LLVM.

InjectTLIMappings runs before LoopVectorize but is not marked as
preserving GlobalsAA. This means that GlobalsAA is not available in
LoopVectorize, causing some loops to not be vectorized due to failing to
deduce no-alias for some accesses.

This fixes a few 5-10% regressions on SPEC2000/SPEC2006 with LTO & PGO.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D82195

Files:
  llvm/lib/Transforms/Utils/InjectTLIMappings.cpp


Index: llvm/lib/Transforms/Utils/InjectTLIMappings.cpp
===================================================================
--- llvm/lib/Transforms/Utils/InjectTLIMappings.cpp
+++ llvm/lib/Transforms/Utils/InjectTLIMappings.cpp
@@ -14,6 +14,7 @@
 #include "llvm/Transforms/Utils/InjectTLIMappings.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Analysis/DemandedBits.h"
+#include "llvm/Analysis/GlobalsModRef.h"
 #include "llvm/Analysis/OptimizationRemarkEmitter.h"
 #include "llvm/Analysis/VectorUtils.h"
 #include "llvm/IR/InstIterator.h"
@@ -144,6 +145,7 @@
   AU.addPreserved<LoopAccessLegacyAnalysis>();
   AU.addPreserved<DemandedBitsWrapperPass>();
   AU.addPreserved<OptimizationRemarkEmitterWrapperPass>();
+  AU.addPreserved<GlobalsAAWrapperPass>();
 }
 
 ////////////////////////////////////////////////////////////////////////////////


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D82195.272079.patch
Type: text/x-patch
Size: 850 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200619/98670601/attachment.bin>


More information about the llvm-commits mailing list