[PATCH] D32487: [X86] Relocate code of replacement of subtarget unsupported masked memory intrinsics to run also on -O0 option

Ayman Musa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 25 07:19:55 PDT 2017


aymanmus created this revision.
Herald added a subscriber: mgorny.

Currently, when masked load, store, gather or scatter intrinsics are used, we check in CodeGenPrepare pass if the subtarget support these intrinsics, if not we replace them with scalar code - this is a functional transformation not an optimization (not optional).

CodeGenPrepare pass does not run when the optimization level is set to CodeGenOpt::None (-O0).

Functional transformation should run with all optimization levels, so here I created a new pass which runs on all optimization levels and does no more than this transformation.


https://reviews.llvm.org/D32487

Files:
  include/llvm/CodeGen/Passes.h
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/CodeGenPrepare.cpp
  lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
  lib/CodeGen/TargetPassConfig.cpp
  test/CodeGen/X86/masked_gather_scatter.ll
  test/CodeGen/X86/replace_unsupported_masked_mem_intrin.ll
  tools/llc/llc.cpp
  tools/opt/opt.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32487.96553.patch
Type: text/x-patch
Size: 52881 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170425/f2190134/attachment-0001.bin>


More information about the llvm-commits mailing list