fix a long standing wart: all the ComplexPattern's were being
authorChris Lattner <sabre@nondot.org>
Tue, 21 Sep 2010 20:31:19 +0000 (20:31 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 21 Sep 2010 20:31:19 +0000 (20:31 +0000)
commit52a261b3c1391c5fec399ddeb3fc6ee9541e8790
tree800a9930728ffcc9d6f9a371dce4420ba7828c8c
parent7c727072168c55493ec362e254af1cd740d7eaf2
fix a long standing wart: all the ComplexPattern's were being
passed the root of the match, even though only a few patterns
actually needed this (one in X86, several in ARM [which should
be refactored anyway], and some in CellSPU that I don't feel
like detangling).   Instead of requiring all ComplexPatterns to
take the dead root, have targets opt into getting the root by
putting SDNPWantRoot on the ComplexPattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114471 91177308-0d34-0410-b5e6-96231b3b80d8
20 files changed:
include/llvm/Target/TargetSelectionDAG.td
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td
lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp
lib/Target/CellSPU/SPUOperands.td
lib/Target/MBlaze/MBlazeISelDAGToDAG.cpp
lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
lib/Target/Mips/MipsISelDAGToDAG.cpp
lib/Target/PIC16/PIC16ISelDAGToDAG.cpp
lib/Target/PIC16/PIC16ISelDAGToDAG.h
lib/Target/PowerPC/PPCISelDAGToDAG.cpp
lib/Target/Sparc/SparcISelDAGToDAG.cpp
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
lib/Target/X86/X86ISelDAGToDAG.cpp
lib/Target/X86/X86InstrFragmentsSIMD.td
lib/Target/XCore/XCoreISelDAGToDAG.cpp
utils/TableGen/CodeGenTarget.cpp
utils/TableGen/CodeGenTarget.h
utils/TableGen/DAGISelMatcherEmitter.cpp