[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