[PATCH] D72424: TableGen/GlobalISel: Fix pattern matching of immarg literals

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 8 15:56:14 PST 2020


arsenm created this revision.
arsenm added reviewers: dsanders, paquette, aemerson, aditya_nandakumar.
Herald added subscribers: Petar.Avramovic, tpr, rovka, wdng.
Herald added a project: LLVM.

For arguments that are not expected to be materialized with
G_CONSTANT, this was emitting predicates which could never match. It
was first adding a meaningless LLT check, which would always fail due
to the operand not being a register.

      

Infer the cases where a literal should check for an immediate operand,
instead of a register This avoids needing to invent a special way of
representing timm literal values.

      

Also handle immediate arguments in GIM_CheckLiteralInt. The comments
stated it handled isImm() and isCImm(), but that wasn't really true.

      

This unblocks work on the selection of all of the complicated AMDGPU
intrinsics in future commits.


https://reviews.llvm.org/D72424

Files:
  llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
  llvm/test/TableGen/Common/GlobalISelEmitterCommon.td
  llvm/test/TableGen/GlobalISelEmitter-immarg-literal-pattern.td
  llvm/utils/TableGen/CodeGenInstruction.cpp
  llvm/utils/TableGen/CodeGenInstruction.h
  llvm/utils/TableGen/CodeGenIntrinsics.h
  llvm/utils/TableGen/CodeGenTarget.cpp
  llvm/utils/TableGen/GlobalISelEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D72424.236925.patch
Type: text/x-patch
Size: 10922 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200108/7bf8e1ba/attachment.bin>


More information about the llvm-commits mailing list