[all-commits] [llvm/llvm-project] 3a6bb3: [SelectionDAG] Remove ISD::LIFETIME_START/LIFETIME...

topperc via All-commits all-commits at lists.llvm.org
Sun Feb 23 22:50:56 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3a6bb32bd24b6f1b01ae2378ea7fa726f453fb1c
      https://github.com/llvm/llvm-project/commit/3a6bb32bd24b6f1b01ae2378ea7fa726f453fb1c
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  Log Message:
  -----------
  [SelectionDAG] Remove ISD::LIFETIME_START/LIFETIME_END from assert in getMemIntrinsicNode.

These appear to have their own SDNode type and shouldn't use
MemIntrinsicSDNode.


  Commit: f1b8ec3398fc0022b825b709eb6e792d35276bc1
      https://github.com/llvm/llvm-project/commit/f1b8ec3398fc0022b825b709eb6e792d35276bc1
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-02-23 (Sun, 23 Feb 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86InstrAVX512.td
    M llvm/lib/Target/X86/X86InstrFragmentsSIMD.td
    M llvm/lib/Target/X86/X86InstrSSE.td

  Log Message:
  -----------
  [X86] Use custom isel for gather/scatter instructions.

The type profile we use for the isel patterns lied about how
many operands the gather/scatter node has to skip the index
and scale operands. This allowed us to expand the baseptr
operand into base, displacement, and segment and then merge
the index and scale with them in the final instruction during
isel. This is kind of a hack that relies on isel not checking the
number of operands at all.

This commit switches to custom isel where we can manage this
directly without relying on holes in the isel checking.


Compare: https://github.com/llvm/llvm-project/compare/4d812acba61e...f1b8ec3398fc


More information about the All-commits mailing list