Changes in directory llvm/lib/Target/PowerPC:
PPCInstrInfo.td updated: 1.169 -> 1.170 PPCRegisterInfo.cpp updated: 1.38 -> 1.39 --- Log message: New DAG node properties SNDPInFlag, SNDPOutFlag, and SNDPOptInFlag to replace hasInFlag, hasOutFlag. --- Diffs of the changes: (+6 -11) PPCInstrInfo.td | 14 +++++--------- PPCRegisterInfo.cpp | 3 +-- 2 files changed, 6 insertions(+), 11 deletions(-) Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td diff -u llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.169 llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.170 --- llvm/lib/Target/PowerPC/PPCInstrInfo.td:1.169 Wed Jan 4 19:25:28 2006 +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td Mon Jan 9 12:28:21 2006 @@ -47,7 +47,8 @@ def callseq_end : SDNode<"ISD::CALLSEQ_END", SDT_PPCCallSeq,[SDNPHasChain]>; def SDT_PPCRetFlag : SDTypeProfile<0, 0, []>; -def retflag : SDNode<"PPCISD::RET_FLAG", SDT_PPCRetFlag, [SDNPHasChain]>; +def retflag : SDNode<"PPCISD::RET_FLAG", SDT_PPCRetFlag, + [SDNPHasChain, SDNPOptInFlag]>; //===----------------------------------------------------------------------===// // PowerPC specific transformation functions and pattern fragments. @@ -222,13 +223,10 @@ } -let isTerminator = 1 in { +let isTerminator = 1, noResults = 1 in { // FIXME: temporary workaround for return without an incoming flag. - let isReturn = 1, noResults = 1 in - def BLRVOID : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, [(ret)]>; - let isReturn = 1, noResults = 1, hasInFlag = 1 in - def BLR : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, []>; - let noResults = 1 in + let isReturn = 1 in + def BLR : XLForm_2_ext<19, 16, 20, 0, 0, (ops), "blr", BrB, [(retflag)]>; def BCTR : XLForm_2_ext<19, 528, 20, 0, 0, (ops), "bctr", BrB, []>; } @@ -1072,8 +1070,6 @@ def : Pat<(store (v4i32 VRRC:$rS), xoaddr:$dst), (STVX (v4i32 VRRC:$rS), xoaddr:$dst)>; -def : Pat<(retflag), (BLR)>; - // Same as above, but using a temporary. FIXME: implement temporaries :) /* def : Pattern<(xor GPRC:$in, imm:$imm), Index: llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp diff -u llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.38 llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.39 --- llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp:1.38 Fri Dec 23 16:14:32 2005 +++ llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp Mon Jan 9 12:28:21 2006 @@ -373,8 +373,7 @@ const MachineFrameInfo *MFI = MF.getFrameInfo(); MachineBasicBlock::iterator MBBI = prior(MBB.end()); MachineInstr *MI; - // FIXME: BLRVOID should be removed. See PPCInstrInfo.td - assert((MBBI->getOpcode() == PPC::BLR || MBBI->getOpcode() == PPC::BLRVOID) && + assert(MBBI->getOpcode() == PPC::BLR && "Can only insert epilog into returning blocks"); // Get the number of bytes allocated from the FrameInfo... _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits