[PATCH] D34240: [WebAssembly] Expansion of llvm.umul.overflow with i64 type operands.

Jatin Bhateja via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 4 21:00:59 PDT 2017


jbhateja updated this revision to Diff 105212.
jbhateja added a comment.

[X86] Improvement in CodeGen instruction selection for LEAs

  1/  Operand folding during complex pattern matching for LEAs has been
      extended to such that it promotes Scale to accommodate similar operand
      appearing in the DAG.
      e.g.
            T1 = A + B
            T2 = T1 + 10
            T3 = T2 + A
      For above DAG rooted at T3, X86AddressMode will no look like
            Base = B , Index = A , Scale = 2 , Disp = 10
  
  2/  During OptimizeLEAPass down the pipeline CSE will now be performed over LEAs
      so that if there is an opportunity then complex LEAs (having 3 operands)
      could be factored out.
      e.g.
           leal 1(%rax,%rcx,1), %rdx
           leal 1(%rax,%rcx,2), %rcx
      will be factored as following
           leal 1(%rax,%rcx,1), %rdx
           leal (%rdx,%rcx)   , %edx


https://reviews.llvm.org/D34240

Files:
  include/llvm/Target/TargetLowering.h
  lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/Target/X86/X86ISelDAGToDAG.cpp
  lib/Target/X86/X86OptimizeLEAs.cpp
  test/CodeGen/WebAssembly/umulo-i64.ll
  test/CodeGen/X86/lea-opt-cse.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-result.ll
  test/Transforms/LoopStrengthReduce/X86/ivchain-X86.ll
  utils/TableGen/DAGISelMatcherGen.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D34240.105212.patch
Type: text/x-patch
Size: 23268 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170705/7d9d4aa4/attachment-0001.bin>


More information about the llvm-commits mailing list