[PATCH] ARM: move CMOV selection to TableGen

Tim Northover t.p.northover at gmail.com
Wed Aug 21 05:00:04 PDT 2013


Back in the mists of time (2008), it seems TableGen couldn't handle the patterns necessary to match ARM's CMOV node that we convert select operations to, so we wrote a lot of fairly hairy C++ to do it for us.
    
TableGen can deal with it now: there were a few minor differences to CodeGen (see tests), but nothing obviously worse that I could see, so we should probably address anything that *does* come up in a localised manner.

The part I'm most uncertain about is the TableGen changes: it has been fairly thoroughly ingrained that Operands with default values don't take part in selection, so I sidestepped that issue and created a parallel Predicate operand that can be selected.


http://llvm-reviews.chandlerc.com/D1458

Files:
  include/llvm/Target/Target.td
  lib/Target/ARM/ARMExpandPseudoInsts.cpp
  lib/Target/ARM/ARMISelDAGToDAG.cpp
  lib/Target/ARM/ARMInstrFormats.td
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb.td
  lib/Target/ARM/ARMInstrThumb2.td
  lib/Target/ARM/ARMInstrVFP.td
  test/CodeGen/ARM/select-imm.ll
  test/CodeGen/ARM/select.ll
  test/CodeGen/ARM/setcc-sentinals.ll
  test/CodeGen/Thumb2/thumb2-select.ll
  utils/TableGen/CodeGenInstruction.cpp
  utils/TableGen/InstrInfoEmitter.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1458.1.patch
Type: text/x-patch
Size: 30837 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130821/44910c83/attachment.bin>


More information about the llvm-commits mailing list