[PATCH] D65354: [X86] Let MachineCombiner reassociate adds for ILP

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 26 15:50:04 PDT 2019


reames created this revision.
reames added reviewers: craig.topper, spatel.
Herald added subscribers: bollu, mcrosier.
Herald added a project: LLVM.

It turns out that we don't even try to reassociate add chains into trees in MachineCombiner.  Unless we've happened to convert them to ORs or have vectorized them that is.  I can't find any principled reason for this omission.  Is there something I'm missing?

(Tests needs cleaned up.  This is just an auto-gen run to give a flavour of some of the changes which result.  There's also a huge number of spurious changes which need removed due to tests not originally being auto-gened at all.  I'll iterate on that if the direction is judged reasonable.)


Repository:
  rL LLVM

https://reviews.llvm.org/D65354

Files:
  lib/Target/X86/X86InstrInfo.cpp
  test/CodeGen/X86/DynamicCalleeSavedRegisters.ll
  test/CodeGen/X86/alias-static-alloca.ll
  test/CodeGen/X86/avx512-intrinsics-x86_64.ll
  test/CodeGen/X86/avx512-intrinsics.ll
  test/CodeGen/X86/avx512-regcall-Mask.ll
  test/CodeGen/X86/avx512-regcall-NoMask.ll
  test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
  test/CodeGen/X86/fold-tied-op.ll
  test/CodeGen/X86/h-registers-1.ll
  test/CodeGen/X86/hipe-cc.ll
  test/CodeGen/X86/hipe-cc64.ll
  test/CodeGen/X86/imul.ll
  test/CodeGen/X86/lea-opt-cse4.ll
  test/CodeGen/X86/lrshrink.ll
  test/CodeGen/X86/machine-combiner-int.ll
  test/CodeGen/X86/midpoint-int.ll
  test/CodeGen/X86/misched-balance.ll
  test/CodeGen/X86/misched-matrix.ll
  test/CodeGen/X86/mul-constant-i16.ll
  test/CodeGen/X86/mul-constant-i32.ll
  test/CodeGen/X86/mul-constant-i64.ll
  test/CodeGen/X86/mul-constant-i8.ll
  test/CodeGen/X86/mul-i1024.ll
  test/CodeGen/X86/mul-i256.ll
  test/CodeGen/X86/mul-i512.ll
  test/CodeGen/X86/mul128.ll
  test/CodeGen/X86/mul64.ll
  test/CodeGen/X86/popcnt.ll
  test/CodeGen/X86/pr34080-2.ll
  test/CodeGen/X86/pr36865.ll
  test/CodeGen/X86/smul_fix.ll
  test/CodeGen/X86/statepoint-live-in.ll
  test/CodeGen/X86/swift-return.ll
  test/CodeGen/X86/twoaddr-lea.ll
  test/CodeGen/X86/umul_fix.ll
  test/CodeGen/X86/vp2intersect_multiple_pairs.ll
  test/CodeGen/X86/win-smallparams.ll
  test/CodeGen/X86/x86-no_caller_saved_registers-preserve.ll
  test/DebugInfo/X86/live-debug-variables.ll





More information about the llvm-commits mailing list