[PATCH] D68512: [PATCH 29/38] [noalias] Introduce PropagateAndConvertNoAlias pass

Jeroen Dobbelaere via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 4 15:10:30 PDT 2019


jeroen.dobbelaere created this revision.
jeroen.dobbelaere added reviewers: hfinkel, jdoerfert.
Herald added subscribers: llvm-commits, hiraditya, mgorny, mehdi_amini.
Herald added a project: LLVM.

This is part of the series started by D68484 <https://reviews.llvm.org/D68484>.

This pass moves llvm.noalias intrinsics to the noalias_sidechannel path of
load/store instructions. At the same time, they are converted into
llvm.side.noalias intrinsics. For llvm.noalias intrinsics that are
returned or passed as arguments, a llvm.noalias.arg.guard is introduced,
combining the pointer path and the noalias_sidechannel path.

This migration allows other optimization passes to do changes on the
normal pointer path, without impacting the noalias_sidechannel path that
contains the restrict/noalias related information.

Note: this is a stable point and tests should run fine with the patches applied up to this point.


https://reviews.llvm.org/D68512

Files:
  llvm/include/llvm/InitializePasses.h
  llvm/include/llvm/LinkAllPasses.h
  llvm/include/llvm/Transforms/Scalar.h
  llvm/include/llvm/Transforms/Scalar/PropagateAndConvertNoAlias.h
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  llvm/lib/Transforms/Scalar/CMakeLists.txt
  llvm/lib/Transforms/Scalar/PropagateAndConvertNoAlias.cpp
  llvm/lib/Transforms/Scalar/Scalar.cpp
  llvm/test/Other/opt-O2-pipeline.ll
  llvm/test/Other/opt-O3-pipeline.ll
  llvm/test/Other/opt-Os-pipeline.ll
  llvm/test/Other/pass-pipelines.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/basictest.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/call.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/degenerated.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/double_noalias.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/inlined.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/reduced01.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/select_and_phi.ll
  llvm/test/Transforms/PropagateAndConvertNoAlias/struct.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68512.223315.patch
Type: text/x-patch
Size: 106404 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191004/0c3ed1fe/attachment.bin>


More information about the llvm-commits mailing list