summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/CellSPU/SPUOperands.td
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-09-21 20:31:19 +0000
committerChris Lattner <sabre@nondot.org>2010-09-21 20:31:19 +0000
commit0e023ea02ac8e9e6f7c05094d4a9d7b2b0d70396 (patch)
tree83c88ffdff3760eea3102afa27dd619dfcef0743 /llvm/lib/Target/CellSPU/SPUOperands.td
parentf5ab703f686679be4473705d89d93637351ead77 (diff)
downloadbcm5719-llvm-0e023ea02ac8e9e6f7c05094d4a9d7b2b0d70396.tar.gz
bcm5719-llvm-0e023ea02ac8e9e6f7c05094d4a9d7b2b0d70396.zip
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. llvm-svn: 114471
Diffstat (limited to 'llvm/lib/Target/CellSPU/SPUOperands.td')
-rw-r--r--llvm/lib/Target/CellSPU/SPUOperands.td12
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUOperands.td b/llvm/lib/Target/CellSPU/SPUOperands.td
index e1a0358abc4..3c8b3c3442f 100644
--- a/llvm/lib/Target/CellSPU/SPUOperands.td
+++ b/llvm/lib/Target/CellSPU/SPUOperands.td
@@ -654,7 +654,11 @@ def memrr : Operand<iPTR> {
// A-form : abs (256K LSA offset)
// D-form(2): [r+I7] (7-bit signed offset + reg)
-def dform_addr : ComplexPattern<iPTR, 2, "SelectDFormAddr", [], []>;
-def xform_addr : ComplexPattern<iPTR, 2, "SelectXFormAddr", [], []>;
-def aform_addr : ComplexPattern<iPTR, 2, "SelectAFormAddr", [], []>;
-def dform2_addr : ComplexPattern<iPTR, 2, "SelectDForm2Addr", [], []>;
+def dform_addr : ComplexPattern<iPTR, 2, "SelectDFormAddr",
+ [], [SDNPWantRoot]>;
+def xform_addr : ComplexPattern<iPTR, 2, "SelectXFormAddr",
+ [], [SDNPWantRoot]>;
+def aform_addr : ComplexPattern<iPTR, 2, "SelectAFormAddr",
+ [], [SDNPWantRoot]>;
+def dform2_addr : ComplexPattern<iPTR, 2, "SelectDForm2Addr",
+ [], [SDNPWantRoot]>;
OpenPOWER on IntegriCloud