[PATCH] D15124: Use @llvm.invariant.start/end intrinsics to extend basic AA with invariant range analysis for GVN-based load elimination purposes [Local objects only]

Larisse Voufo via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 23 17:40:49 PST 2015


lvoufo retitled this revision from "Use @llvm.invariant.start/end intrinsics to extend the meaning of basic AA's pointsToConstantMemory(), for GVN-based load elimination purposes [Local objects only]" to "Use @llvm.invariant.start/end intrinsics to extend basic AA with invariant range analysis for GVN-based load elimination purposes [Local objects only]".
lvoufo updated the summary for this revision.
lvoufo added a reviewer: hfinkel.
lvoufo updated this revision to Diff 43568.
lvoufo added a comment.

I will be running benchmarks over next week and keep you posted. For now, I just want to see if this is headed in the right direction... Please let me know what you think.

Note: This patch does not fully implement the PostDominatorTree pass for use with the new pass manager.
If this patch is viable, then I will have to fully migrate the PostDominatorTree from the legacy to the new pass manager before pushing this is in.

Later patches will also adapt the logic of InvariantInfo::pointsToReadOnlyMemory() to other (applicable) uses of basic AA's pointsToConstantMemory(), e.g, in FunctionAttrs, LICM, for other kinds of instructions, etc... (See included FIXMEs/TODOs.)


http://reviews.llvm.org/D15124

Files:
  include/llvm/Analysis/BasicAliasAnalysis.h
  include/llvm/Analysis/InvariantInfo.h
  include/llvm/Analysis/PostDominators.h
  include/llvm/InitializePasses.h
  lib/Analysis/Analysis.cpp
  lib/Analysis/BasicAliasAnalysis.cpp
  lib/Analysis/CMakeLists.txt
  lib/Analysis/InvariantInfo.cpp
  lib/Analysis/MemoryDependenceAnalysis.cpp
  lib/Analysis/PostDominators.cpp
  lib/Passes/PassBuilder.cpp
  lib/Passes/PassRegistry.def
  lib/Transforms/Scalar/GVN.cpp
  lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  test/Analysis/InvariantInfo/gvn-basic.ll
  test/Analysis/InvariantInfo/gvn.ll
  test/Analysis/InvariantInfo/print.ll
  test/Analysis/InvariantInfo/verify.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15124.43568.patch
Type: text/x-patch
Size: 65406 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151224/0c3caa6e/attachment.bin>


More information about the llvm-commits mailing list