[PATCH] D54853: [ARM][MC] Move information about variadic register defs into tablegen

Oliver Stannard via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 23 03:38:10 PST 2018


olista01 created this revision.
olista01 added reviewers: t.p.northover, rengolin.
Herald added subscribers: chrib, kristof.beyls, javed.absar.

Currently, variadic operands on an MCInst are assumed to be uses,
because they come after the defs. However, this is not always the case,
for example the Arm/Thumb LDM instructions write to a variable number of
registers.

This adds a property of instruction definitions which can be used to
mark variadic operands as defs. This only affects MCInst, because
MachineInstruction already tracks use/def per operand in each instance
of the instruction, so can already represent this.

This property can then be checked in MCInstrDesc, allowing us to remove
some special cases in ARMAsmParser::isITBlockTerminator.


Repository:
  rL LLVM

https://reviews.llvm.org/D54853

Files:
  include/llvm/MC/MCInstrDesc.h
  include/llvm/Target/Target.td
  lib/MC/MCInstrDesc.cpp
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMInstrThumb2.td
  lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  utils/TableGen/CodeGenInstruction.cpp
  utils/TableGen/CodeGenInstruction.h
  utils/TableGen/InstrDocsEmitter.cpp
  utils/TableGen/InstrInfoEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54853.175108.patch
Type: text/x-patch
Size: 7105 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181123/2b4b7943/attachment.bin>


More information about the llvm-commits mailing list