From 920536333c4c143a92b5c0ed4ce712e59188e5e0 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 13 Dec 2002 11:52:34 +0000 Subject: [PATCH] Insert phi code at top of block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5015 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/InstSelectSimple.cpp | 7 +++++-- lib/Target/X86/X86ISelSimple.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp index 4cb6562211d..cad8e0d912f 100644 --- a/lib/Target/X86/InstSelectSimple.cpp +++ b/lib/Target/X86/InstSelectSimple.cpp @@ -340,9 +340,12 @@ void ISel::SelectPHINodes() { // Get the incoming value into a virtual register. If it is not already // available in a virtual register, insert the computation code into // PredMBB - MachineBasicBlock::iterator PI = PredMBB->end()-1; + // + + MachineBasicBlock::iterator PI = PredMBB->begin(); + while ((*PI)->getOpcode() == X86::PHI) ++PI; + MI->addRegOperand(getReg(PN->getIncomingValue(i), PredMBB, PI)); - // FIXME: Pass in the MachineBasicBlocks instead of the basic blocks... MI->addPCDispOperand(PN->getIncomingBlock(i)); // PredMBB diff --git a/lib/Target/X86/X86ISelSimple.cpp b/lib/Target/X86/X86ISelSimple.cpp index 4cb6562211d..cad8e0d912f 100644 --- a/lib/Target/X86/X86ISelSimple.cpp +++ b/lib/Target/X86/X86ISelSimple.cpp @@ -340,9 +340,12 @@ void ISel::SelectPHINodes() { // Get the incoming value into a virtual register. If it is not already // available in a virtual register, insert the computation code into // PredMBB - MachineBasicBlock::iterator PI = PredMBB->end()-1; + // + + MachineBasicBlock::iterator PI = PredMBB->begin(); + while ((*PI)->getOpcode() == X86::PHI) ++PI; + MI->addRegOperand(getReg(PN->getIncomingValue(i), PredMBB, PI)); - // FIXME: Pass in the MachineBasicBlocks instead of the basic blocks... MI->addPCDispOperand(PN->getIncomingBlock(i)); // PredMBB