[PATCH] D41293: [DAG] Improve multi-chain merging in ISel

Nirav Dave via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 15 08:34:30 PST 2017


niravd created this revision.
niravd added reviewers: craig.topper, bogner.
Herald added a subscriber: hiraditya.

Simplify cycle and generalize validity checks in ISel (HandleMergeInputChains,
findNonImmUse) enabling some instruction matches. Also, we now catch loops going
through indirect chain dependencies earlier in ISel matching.

These two checks should be now use the DAG predecessor framework and should be
mergable into a single cheaper check.

As part of this propogate the NodeId-based cutoffs to narrow
hasPreprocessorHelper searches.


https://reviews.llvm.org/D41293

Files:
  llvm/include/llvm/CodeGen/SelectionDAGNodes.h
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  llvm/test/CodeGen/X86/2012-01-16-mfence-nosse-flags.ll
  llvm/test/CodeGen/X86/avx-vbroadcast.ll
  llvm/test/CodeGen/X86/avx-vbroadcastf128.ll
  llvm/test/CodeGen/X86/avx2-vbroadcast.ll
  llvm/test/CodeGen/X86/avx2-vbroadcasti128.ll
  llvm/test/CodeGen/X86/avx512-vbroadcasti128.ll
  llvm/test/CodeGen/X86/i256-add.ll
  llvm/test/CodeGen/X86/masked_memop.ll
  llvm/test/CodeGen/X86/merge-consecutive-stores.ll
  llvm/test/CodeGen/X86/nontemporal.ll
  llvm/test/CodeGen/X86/store_op_load_fold2.ll
  llvm/test/CodeGen/X86/subvector-broadcast.ll
  llvm/test/CodeGen/X86/var-permute-256.ll
  llvm/test/CodeGen/X86/vector-shuffle-variable-256.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41293.127139.patch
Type: text/x-patch
Size: 66505 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171215/8e1a3047/attachment-0001.bin>


More information about the llvm-commits mailing list