[PATCH] D45204: [X86][MIPS][ARM] New machine instruction property 'isMoveReg'

Nikola Prica via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 10 10:20:41 PDT 2018


NikolaPrica updated this revision to Diff 146148.
NikolaPrica added a comment.

@qcolombet Yes. It would be nice to have such interface but it would require a lot of additional work ( which would need to address all needed generic opcodes). This patch could be part of such work.

I've extended isCopyInstr to return source and destination operands. The most usual case is, if it is move instruction, destination operand is 0 and source operand is 1 -> I didn't want to hoist it to the TII::isCopyInstr so it would cause any problems for future architectures that would support isMoveReg machine property.

Also for X86 instructions that have suffix _REV is saw in 'evex-to-vex-compress.mir' that they are used as  for example "$ymm0 = VMOVAPDYrr_REV $ymm0" so I've let that destination operand is 0 and source is 1.


https://reviews.llvm.org/D45204

Files:
  include/llvm/CodeGen/MachineInstr.h
  include/llvm/CodeGen/TargetInstrInfo.h
  include/llvm/MC/MCInstrDesc.h
  include/llvm/Target/Target.td
  lib/Target/ARM/ARMBaseInstrInfo.cpp
  lib/Target/ARM/ARMBaseInstrInfo.h
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMInstrVFP.td
  lib/Target/Mips/MicroMipsDSPInstrInfo.td
  lib/Target/Mips/MicroMipsInstrFPU.td
  lib/Target/Mips/MicroMipsInstrInfo.td
  lib/Target/Mips/Mips16InstrInfo.cpp
  lib/Target/Mips/Mips16InstrInfo.h
  lib/Target/Mips/Mips16InstrInfo.td
  lib/Target/Mips/Mips64InstrInfo.td
  lib/Target/Mips/MipsDSPInstrInfo.td
  lib/Target/Mips/MipsInstrFPU.td
  lib/Target/Mips/MipsInstrInfo.td
  lib/Target/Mips/MipsMSAInstrInfo.td
  lib/Target/Mips/MipsSEInstrInfo.cpp
  lib/Target/Mips/MipsSEInstrInfo.h
  lib/Target/X86/X86InstrAVX512.td
  lib/Target/X86/X86InstrInfo.cpp
  lib/Target/X86/X86InstrInfo.h
  lib/Target/X86/X86InstrInfo.td
  lib/Target/X86/X86InstrMMX.td
  lib/Target/X86/X86InstrSSE.td
  utils/TableGen/CodeGenInstruction.cpp
  utils/TableGen/CodeGenInstruction.h
  utils/TableGen/InstrInfoEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D45204.146148.patch
Type: text/x-patch
Size: 27759 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180510/4905d9e4/attachment.bin>


More information about the llvm-commits mailing list