diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 15 | ||||
| -rw-r--r-- | llvm/lib/Target/Mips/MipsInstrInfo.td | 7 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCInstrInfo.td | 6 | 
3 files changed, 17 insertions, 11 deletions
| diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 6d60a76a431..825dd9c28ba 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -90,9 +90,10 @@ def ARMWrapperPIC    : SDNode<"ARMISD::WrapperPIC",  SDTIntUnaryOp>;  def ARMWrapperJT     : SDNode<"ARMISD::WrapperJT",   SDTIntBinOp>;  def ARMcallseq_start : SDNode<"ISD::CALLSEQ_START", SDT_ARMCallSeqStart, -                              [SDNPHasChain, SDNPOutGlue]>; +                              [SDNPHasChain, SDNPSideEffect, SDNPOutGlue]>;  def ARMcallseq_end   : SDNode<"ISD::CALLSEQ_END",   SDT_ARMCallSeqEnd, -                              [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue]>; +                              [SDNPHasChain, SDNPSideEffect, +                               SDNPOptInGlue, SDNPOutGlue]>;  def ARMcopystructbyval : SDNode<"ARMISD::COPY_STRUCT_BYVAL" ,                                  SDT_ARMStructByVal,                                  [SDNPHasChain, SDNPInGlue, SDNPOutGlue, @@ -148,14 +149,16 @@ def ARMsube          : SDNode<"ARMISD::SUBE",  SDTBinaryArithWithFlagsInOut>;  def ARMthread_pointer: SDNode<"ARMISD::THREAD_POINTER", SDT_ARMThreadPointer>;  def ARMeh_sjlj_setjmp: SDNode<"ARMISD::EH_SJLJ_SETJMP", -                               SDT_ARMEH_SJLJ_Setjmp, [SDNPHasChain]>; +                               SDT_ARMEH_SJLJ_Setjmp, +                               [SDNPHasChain, SDNPSideEffect]>;  def ARMeh_sjlj_longjmp: SDNode<"ARMISD::EH_SJLJ_LONGJMP", -                               SDT_ARMEH_SJLJ_Longjmp, [SDNPHasChain]>; +                               SDT_ARMEH_SJLJ_Longjmp, +                               [SDNPHasChain, SDNPSideEffect]>;  def ARMMemBarrier     : SDNode<"ARMISD::MEMBARRIER", SDT_ARMMEMBARRIER, -                               [SDNPHasChain]>; +                               [SDNPHasChain, SDNPSideEffect]>;  def ARMMemBarrierMCR  : SDNode<"ARMISD::MEMBARRIER_MCR", SDT_ARMMEMBARRIER, -                               [SDNPHasChain]>; +                               [SDNPHasChain, SDNPSideEffect]>;  def ARMPreload        : SDNode<"ARMISD::PRELOAD", SDT_ARMPREFETCH,                                 [SDNPHasChain, SDNPMayLoad, SDNPMayStore]>; diff --git a/llvm/lib/Target/Mips/MipsInstrInfo.td b/llvm/lib/Target/Mips/MipsInstrInfo.td index fd952efe1d4..6202babc225 100644 --- a/llvm/lib/Target/Mips/MipsInstrInfo.td +++ b/llvm/lib/Target/Mips/MipsInstrInfo.td @@ -74,9 +74,10 @@ def MipsRet : SDNode<"MipsISD::Ret", SDTNone, [SDNPHasChain, SDNPOptInGlue]>;  // These are target-independent nodes, but have target-specific formats.  def callseq_start : SDNode<"ISD::CALLSEQ_START", SDT_MipsCallSeqStart, -                           [SDNPHasChain, SDNPOutGlue]>; +                           [SDNPHasChain, SDNPSideEffect, SDNPOutGlue]>;  def callseq_end   : SDNode<"ISD::CALLSEQ_END", SDT_MipsCallSeqEnd, -                           [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue]>; +                           [SDNPHasChain, SDNPSideEffect, +                            SDNPOptInGlue, SDNPOutGlue]>;  // MAdd*/MSub* nodes  def MipsMAdd      : SDNode<"MipsISD::MAdd", SDT_MipsMAddMSub, @@ -110,7 +111,7 @@ def MipsWrapper    : SDNode<"MipsISD::Wrapper", SDTIntBinOp>;  def MipsDynAlloc  : SDNode<"MipsISD::DynAlloc", SDT_MipsDynAlloc,                             [SDNPHasChain, SDNPInGlue]>; -def MipsSync : SDNode<"MipsISD::Sync", SDT_Sync, [SDNPHasChain]>; +def MipsSync : SDNode<"MipsISD::Sync", SDT_Sync, [SDNPHasChain,SDNPSideEffect]>;  def MipsExt :  SDNode<"MipsISD::Ext", SDT_Ext>;  def MipsIns :  SDNode<"MipsISD::Ins", SDT_Ins>; diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td index f57f0c975ad..20af16cea30 100644 --- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td +++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td @@ -123,9 +123,11 @@ def PPCnop : SDNode<"PPCISD::NOP", SDT_PPCnop, [SDNPInGlue, SDNPOutGlue]>;  def PPCload   : SDNode<"PPCISD::LOAD", SDTypeProfile<1, 1, []>,                         [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue]>;  def PPCload_toc : SDNode<"PPCISD::LOAD_TOC", SDTypeProfile<0, 1, []>, -                          [SDNPHasChain, SDNPInGlue, SDNPOutGlue]>; +                          [SDNPHasChain, SDNPSideEffect, +                           SDNPInGlue, SDNPOutGlue]>;  def PPCtoc_restore : SDNode<"PPCISD::TOC_RESTORE", SDTypeProfile<0, 0, []>, -                            [SDNPHasChain, SDNPInGlue, SDNPOutGlue]>; +                            [SDNPHasChain, SDNPSideEffect, +                             SDNPInGlue, SDNPOutGlue]>;  def PPCmtctr      : SDNode<"PPCISD::MTCTR", SDT_PPCCall,                             [SDNPHasChain, SDNPOptInGlue, SDNPOutGlue]>;  def PPCbctrl_Darwin  : SDNode<"PPCISD::BCTRL_Darwin", SDTNone, | 

