CALLSEQ_* produces chain even if that's not needed.
authorEvan Cheng <evan.cheng@apple.com>
Fri, 11 Aug 2006 09:03:33 +0000 (09:03 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Fri, 11 Aug 2006 09:03:33 +0000 (09:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29603 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.td
lib/Target/Alpha/AlphaInstrInfo.td
lib/Target/PowerPC/PPCInstrInfo.td
lib/Target/Sparc/SparcInstrInfo.td
lib/Target/X86/X86InstrInfo.td

index 9dc596ab462bc38e64525d592f9edcefc891faa3..7384f2e5f663680ad3c52af9675608eed33b3257 100644 (file)
@@ -38,8 +38,10 @@ class InstARM<dag ops, string asmstr, list<dag> pattern> : Instruction {
 }
 
 def SDT_ARMCallSeq : SDTypeProfile<0, 1, [ SDTCisVT<0, i32> ]>;
-def callseq_start  : SDNode<"ISD::CALLSEQ_START", SDT_ARMCallSeq, [SDNPHasChain]>;
-def callseq_end    : SDNode<"ISD::CALLSEQ_END",   SDT_ARMCallSeq, [SDNPHasChain]>;
+def callseq_start  : SDNode<"ISD::CALLSEQ_START", SDT_ARMCallSeq,
+                            [SDNPHasChain, SDNPOutFlag]>;
+def callseq_end    : SDNode<"ISD::CALLSEQ_END",   SDT_ARMCallSeq,
+                            [SDNPHasChain, SDNPOutFlag]>;
 
 def SDT_ARMcall    : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
 def ARMcall        : SDNode<"ARMISD::CALL", SDT_ARMcall,
index 164a1082918a506a7cfc270efd5c529cd7732907..2589cca26b7dc6f6de4e9c32cfe5eec063055fe3 100644 (file)
@@ -33,8 +33,10 @@ def retflag       : SDNode<"AlphaISD::RET_FLAG", SDTRet,
 
 // These are target-independent nodes, but have target-specific formats.
 def SDT_AlphaCallSeq : SDTypeProfile<0, 1, [ SDTCisVT<0, i64> ]>;
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_AlphaCallSeq,[SDNPHasChain]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_AlphaCallSeq,[SDNPHasChain]>;
+def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_AlphaCallSeq,
+                          [SDNPHasChain, SDNPOutFlag]>;
+def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_AlphaCallSeq,
+                           [SDNPHasChain, SDNPOutFlag]>;
 
 //********************
 //Paterns for matching
index 252036f497c2555eca552881ae784737b42d98d1..a3578587d66f207cf0bbfb0b35d69d80f92d64de 100644 (file)
@@ -75,8 +75,10 @@ def PPCextsw_32   : SDNode<"PPCISD::EXTSW_32"  , SDTIntUnaryOp>;
 def PPCstd_32     : SDNode<"PPCISD::STD_32"    , SDTStore, [SDNPHasChain]>;
 
 // These are target-independent nodes, but have target-specific formats.
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_PPCCallSeq,[SDNPHasChain]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_PPCCallSeq,[SDNPHasChain]>;
+def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_PPCCallSeq,
+                           [SDNPHasChain, SDNPOutFlag]>;
+def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_PPCCallSeq,
+                           [SDNPHasChain, SDNPOutFlag]>;
 
 def SDT_PPCCall   : SDTypeProfile<0, -1, [SDTCisInt<0>]>;
 def PPCcall       : SDNode<"PPCISD::CALL", SDT_PPCCall,
index 76741566d20d1b0ca5fdb1dcc3315ecbcbef13f8..cd9996b8fc76772e901faf46782d2beb566c5af1 100644 (file)
@@ -117,8 +117,10 @@ def SPselectfcc : SDNode<"SPISD::SELECT_FCC", SDTSPselectcc, [SDNPInFlag]>;
 
 // These are target-independent nodes, but have target-specific formats.
 def SDT_SPCallSeq : SDTypeProfile<0, 1, [ SDTCisVT<0, i32> ]>;
-def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_SPCallSeq, [SDNPHasChain]>;
-def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_SPCallSeq, [SDNPHasChain]>;
+def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_SPCallSeq,
+                           [SDNPHasChain, SDNPOutFlag]>;
+def callseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_SPCallSeq,
+                           [SDNPHasChain, SDNPOutFlag]>;
 
 def SDT_SPCall    : SDTypeProfile<0, 1, [SDTCisVT<0, i32>]>;
 def call          : SDNode<"SPISD::CALL", SDT_SPCall,
index 14b874033580e5f27fc102591c6e6c2434025dee..9e19f94207f7ed3cfddb9d252dd561cb6916d224 100644 (file)
@@ -67,7 +67,7 @@ def X86retflag : SDNode<"X86ISD::RET_FLAG", SDTX86Ret,
 
 def X86callseq_start :
                  SDNode<"ISD::CALLSEQ_START", SDT_X86CallSeqStart,
-                        [SDNPHasChain]>;
+                        [SDNPHasChain, SDNPOutFlag]>;
 def X86callseq_end :
                  SDNode<"ISD::CALLSEQ_END",   SDT_X86CallSeqEnd,
                         [SDNPHasChain, SDNPInFlag, SDNPOutFlag]>;