Index: llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp =================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ llvm/trunk/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -5169,8 +5169,7 @@ } void PPCDAGToDAGISel::PreprocessISelDAG() { - SelectionDAG::allnodes_iterator Position(CurDAG->getRoot().getNode()); - ++Position; + SelectionDAG::allnodes_iterator Position = CurDAG->allnodes_end(); bool MadeChange = false; while (Position != CurDAG->allnodes_begin()) { @@ -5858,8 +5857,7 @@ // unnecessary. When that happens, we remove it here, and redefine the // relevant 32-bit operation to be a 64-bit operation. - SelectionDAG::allnodes_iterator Position(CurDAG->getRoot().getNode()); - ++Position; + SelectionDAG::allnodes_iterator Position = CurDAG->allnodes_end(); bool MadeChange = false; while (Position != CurDAG->allnodes_begin()) { @@ -6016,8 +6014,7 @@ if (PPCSubTarget->isDarwin() || !PPCSubTarget->isPPC64()) return; - SelectionDAG::allnodes_iterator Position(CurDAG->getRoot().getNode()); - ++Position; + SelectionDAG::allnodes_iterator Position = CurDAG->allnodes_end(); while (Position != CurDAG->allnodes_begin()) { SDNode *N = &*--Position; Index: llvm/trunk/test/CodeGen/PowerPC/ppcf128-endian.ll =================================================================== --- llvm/trunk/test/CodeGen/PowerPC/ppcf128-endian.ll +++ llvm/trunk/test/CodeGen/PowerPC/ppcf128-endian.ll @@ -43,10 +43,10 @@ ; CHECK: .LCPI[[LC]]_1: ; CHECK: .long 0 ; CHECK: @caller_const -; CHECK: addi [[REG0:[0-9]+]], {{[0-9]+}}, .LCPI[[LC]]_0 -; CHECK: addi [[REG1:[0-9]+]], {{[0-9]+}}, .LCPI[[LC]]_1 -; CHECK: lfs 1, 0([[REG0]]) -; CHECK: lfs 2, 0([[REG1]]) +; CHECK: addis [[REG0:[0-9]+]], 2, .LCPI[[LC]]_0@toc@ha +; CHECK: addis [[REG1:[0-9]+]], 2, .LCPI[[LC]]_1@toc@ha +; CHECK: lfs 1, .LCPI[[LC]]_0@toc@l([[REG0]]) +; CHECK: lfs 2, .LCPI[[LC]]_1@toc@l([[REG1]]) ; CHECK: bl test define ppc_fp128 @result() {