[PATCH] D32563: Add LiveRangeShrink pass to shrink live range within BB.

Dehao Chen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 19 16:00:19 PDT 2017


danielcdh updated this revision to Diff 99641.
danielcdh added a comment.

Updated the implementation and tests:

1. Do not hoist instructions if its def MO does not share the same register class with the use MO.
2. Include both instruction order and MI in the use map. Using instruction order alone is not good enough because when instruction get hoisted, its order will be the same as the next instruction. In this case, we need to ensure the insertion point is after the last barrier, i.e. last instruction MO (implicitly defined by MI) has been used.

PTAL, Thanks!


https://reviews.llvm.org/D32563

Files:
  include/llvm/CodeGen/Passes.h
  include/llvm/InitializePasses.h
  lib/CodeGen/CMakeLists.txt
  lib/CodeGen/CodeGen.cpp
  lib/CodeGen/LiveRangeShrink.cpp
  lib/Target/X86/X86TargetMachine.cpp
  test/CodeGen/X86/2007-01-08-InstrSched.ll
  test/CodeGen/X86/avg.ll
  test/CodeGen/X86/avx.ll
  test/CodeGen/X86/avx512-cmp-kor-sequence.ll
  test/CodeGen/X86/avx512-gather-scatter-intrin.ll
  test/CodeGen/X86/avx512-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512-intrinsics.ll
  test/CodeGen/X86/avx512-mask-spills.ll
  test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512bw-intrinsics.ll
  test/CodeGen/X86/avx512bwvl-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512cdvl-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512cdvl-intrinsics.ll
  test/CodeGen/X86/avx512dq-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512dq-intrinsics.ll
  test/CodeGen/X86/avx512dqvl-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512dqvl-intrinsics.ll
  test/CodeGen/X86/avx512ifma-intrinsics.ll
  test/CodeGen/X86/avx512ifmavl-intrinsics.ll
  test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
  test/CodeGen/X86/avx512vl-intrinsics.ll
  test/CodeGen/X86/bswap_tree2.ll
  test/CodeGen/X86/fold-tied-op.ll
  test/CodeGen/X86/fp128-i128.ll
  test/CodeGen/X86/lrshrink.ll
  test/CodeGen/X86/madd.ll
  test/CodeGen/X86/misched-matrix.ll
  test/CodeGen/X86/oddshuffles.ll
  test/CodeGen/X86/pmul.ll
  test/CodeGen/X86/rotate.ll
  test/CodeGen/X86/sad.ll
  test/CodeGen/X86/select.ll
  test/CodeGen/X86/setcc-wide-types.ll
  test/CodeGen/X86/shrink_vmul_sse.ll
  test/CodeGen/X86/sse41.ll
  test/CodeGen/X86/vector-bitreverse.ll
  test/CodeGen/X86/vector-blend.ll
  test/CodeGen/X86/x86-interleaved-access.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32563.99641.patch
Type: text/x-patch
Size: 275791 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170519/30a2eb8d/attachment-0001.bin>


More information about the llvm-commits mailing list