[all-commits] [llvm/llvm-project] 8885a7: [X86] Separate imm from relocImm handling.

topperc via All-commits all-commits at lists.llvm.org
Sat Jun 13 11:31:22 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8885a7640b824c26e9ceb92297a3b45f9b8caa8b
      https://github.com/llvm/llvm-project/commit/8885a7640b824c26e9ceb92297a3b45f9b8caa8b
  Author: Craig Topper <craig.topper at intel.com>
  Date:   2020-06-13 (Sat, 13 Jun 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86InstrArithmetic.td
    M llvm/lib/Target/X86/X86InstrCompiler.td
    M llvm/lib/Target/X86/X86InstrInfo.td
    M llvm/lib/Target/X86/X86InstrShiftRotate.td
    M llvm/test/CodeGen/X86/GlobalISel/callingconv.ll
    M llvm/test/CodeGen/X86/GlobalISel/select-blsr.mir
    M llvm/test/CodeGen/X86/absolute-cmp.ll
    M llvm/test/CodeGen/X86/fast-isel-fneg-kill.ll

  Log Message:
  -----------
  [X86] Separate imm from relocImm handling.

relocImm was a complexPattern that handled both ConstantSDNode
and X86Wrapper. But it was only applied selectively because using
it would cause patterns to be not importable into FastISel or
GlobalISel. So it only got applied to flag setting instructions,
stores, RMW arithmetic instructions, and rotates.

Most of the test changes are a result of making patterns available
to GlobalISel or FastISel. The absolute-cmp.ll change is due to
this fixing a pattern ordering issue to make an absolute symbol
match to an 8-bit immediate before trying a 32-bit immediate.

I tried to use PatFrags to reduce the repetition, but I was getting
errors from TableGen.




More information about the All-commits mailing list