From 97a2a5c4dc039e97ae09b826d5f1b08fe7502dc2 Mon Sep 17 00:00:00 2001 From: Richard Osborne Date: Mon, 12 Sep 2011 14:43:23 +0000 Subject: Associate a MemOperand with LDWCP nodes introduced during ISel. This information is required if we want LDWCP to be hoisted out of loops. llvm-svn: 139495 --- llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp') diff --git a/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp b/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp index a8dd8479d45..4dac1cee982 100644 --- a/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp +++ b/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp @@ -169,9 +169,14 @@ SDNode *XCoreDAGToDAGISel::Select(SDNode *N) { CurDAG->getTargetConstantPool(ConstantInt::get( Type::getInt32Ty(*CurDAG->getContext()), Val), TLI.getPointerTy()); - return CurDAG->getMachineNode(XCore::LDWCP_lru6, dl, MVT::i32, - MVT::Other, CPIdx, - CurDAG->getEntryNode()); + SDNode *node = CurDAG->getMachineNode(XCore::LDWCP_lru6, dl, MVT::i32, + MVT::Other, CPIdx, + CurDAG->getEntryNode()); + MachineSDNode::mmo_iterator MemOp = MF->allocateMemRefsArray(1); + MemOp[0] = MF->getMachineMemOperand( + MachinePointerInfo::getConstantPool(), MachineMemOperand::MOLoad, 4, 4); + cast(node)->setMemRefs(MemOp, MemOp + 1); + return node; } break; } -- cgit v1.2.3