[PATCH] D95373: Replace vector intrinsics with call to vector library

Lukas Sommer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 1 08:49:33 PST 2021


LukasSommerTu updated this revision to Diff 320489.
LukasSommerTu added a comment.

I've updated the implementation to have this pass as an IR codegen pass.

I did not add an explicit flag to deactivate the pass (as it for example is the case for ExpandReductions), as the replacement can be deactivated by setting --vector-library=none (which is also the default). The pass is also not added to the pipeline for -O0.

Similar to ExpandReductions, the pass now explicitly deletes the call instructions to intrinsics that have been replaced and does not rely on DCE, given that it is now very late in pipeline.

//[EDIT] I realized there was a inconsistency between `CodeGenPassBuilder` and `TargetPassConfig`, which is now corrected.//


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95373/new/

https://reviews.llvm.org/D95373

Files:
  llvm/include/llvm/CodeGen/CodeGenPassBuilder.h
  llvm/include/llvm/CodeGen/MachinePassRegistry.def
  llvm/include/llvm/CodeGen/Passes.h
  llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
  llvm/include/llvm/InitializePasses.h
  llvm/lib/CodeGen/CMakeLists.txt
  llvm/lib/CodeGen/ReplaceWithVeclib.cpp
  llvm/lib/CodeGen/TargetPassConfig.cpp
  llvm/test/CodeGen/AArch64/O3-pipeline.ll
  llvm/test/CodeGen/ARM/O3-pipeline.ll
  llvm/test/CodeGen/Generic/replace-intrinsics-with-veclib.ll
  llvm/test/CodeGen/X86/opt-pipeline.ll
  llvm/tools/llc/llc.cpp
  llvm/tools/opt/opt.cpp
  llvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95373.320489.patch
Type: text/x-patch
Size: 23004 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210201/f2f32c3c/attachment.bin>


More information about the llvm-commits mailing list