[PATCH] D33675: [DAG] Do MergeConsecutiveStores again before Instruction Selection

Nirav Dave via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 30 06:38:53 PDT 2017


niravd created this revision.
Herald added a subscriber: javed.absar.

Now that store-merge is only generates type-safe stores, do a second
pass just before instruction selection to allow lowered intrinsics to
be improved.

Since the merge-store pass can be relatively expensive, it would be
nice to be able to able to remove the original pre-legalization
merge-store pass but the current legalization pass modifies the DAG in
a way that disables various optimization opportunities. A number of
fixups will be necessary to fix this. Cursory testing with test cases
with relatively high percentage of time spent doing store-merge show a
smallish compile-time performance (~<5%) degradation.


https://reviews.llvm.org/D33675

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/Target/AArch64/AArch64ISelLowering.cpp
  test/CodeGen/AArch64/arm64-complex-ret.ll
  test/CodeGen/AArch64/arm64-narrow-st-merge.ll
  test/CodeGen/AArch64/arm64-variadic-aapcs.ll
  test/CodeGen/AArch64/merge-store-dependency.ll
  test/CodeGen/AArch64/tailcall-explicit-sret.ll
  test/CodeGen/AArch64/tailcall-implicit-sret.ll
  test/CodeGen/X86/MergeConsecutiveStores.ll
  test/CodeGen/X86/bigstructret.ll
  test/CodeGen/X86/bitcast-i256.ll
  test/CodeGen/X86/constant-combines.ll
  test/CodeGen/X86/fold-vector-sext-crash2.ll
  test/CodeGen/X86/legalize-shl-vec.ll
  test/CodeGen/X86/merge-consecutive-loads-128.ll
  test/CodeGen/X86/no-sse2-avg.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33675.100701.patch
Type: text/x-patch
Size: 22851 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170530/a804fb6a/attachment.bin>


More information about the llvm-commits mailing list