[all-commits] [llvm/llvm-project] f47a77: Revert "[X86] Separate imm from relocImm handling."

Hans via All-commits all-commits at lists.llvm.org
Mon Jun 15 07:15:25 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f47a7766287afa0919918093d8367316aa2c9e8e
      https://github.com/llvm/llvm-project/commit/f47a7766287afa0919918093d8367316aa2c9e8e
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2020-06-15 (Mon, 15 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:
  -----------
  Revert "[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.

This caused "Invalid EmitNode" assertions, see the llvm-commits thread for
discussion.




More information about the All-commits mailing list