mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-04 19:38:22 +00:00
Don't send PHI nodes down to SelectionDAGBuilder of FastISel, since
they end up doing nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101904 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e08b320f15
commit
ba5be5c07b
@ -52,6 +52,7 @@
|
||||
#include "llvm/Target/TargetInstrInfo.h"
|
||||
#include "llvm/Target/TargetLowering.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include "FunctionLoweringInfo.h"
|
||||
using namespace llvm;
|
||||
|
||||
@ -692,10 +693,6 @@ FastISel::SelectOperator(const User *I, unsigned Opcode) {
|
||||
// Nothing to emit.
|
||||
return true;
|
||||
|
||||
case Instruction::PHI:
|
||||
// PHI nodes are already emitted.
|
||||
return true;
|
||||
|
||||
case Instruction::Alloca:
|
||||
// FunctionLowering has the static-sized case covered.
|
||||
if (StaticAllocaMap.count(cast<AllocaInst>(I)))
|
||||
@ -735,6 +732,9 @@ FastISel::SelectOperator(const User *I, unsigned Opcode) {
|
||||
return true;
|
||||
}
|
||||
|
||||
case Instruction::PHI:
|
||||
llvm_unreachable("FastISel shouldn't visit PHI nodes!");
|
||||
|
||||
default:
|
||||
// Unhandled instruction. Halt "fast" selection and bail.
|
||||
return false;
|
||||
|
@ -621,6 +621,10 @@ void SelectionDAGBuilder::visit(const Instruction &I) {
|
||||
CurDebugLoc = DebugLoc();
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visitPHI(const PHINode &) {
|
||||
llvm_unreachable("SelectionDAGBuilder shouldn't visit PHI nodes!");
|
||||
}
|
||||
|
||||
void SelectionDAGBuilder::visit(unsigned Opcode, const User &I) {
|
||||
// Note: this doesn't use InstVisitor, because it has to work with
|
||||
// ConstantExpr's in addition to instructions.
|
||||
|
@ -468,7 +468,7 @@ private:
|
||||
void visitAlloca(const AllocaInst &I);
|
||||
void visitLoad(const LoadInst &I);
|
||||
void visitStore(const StoreInst &I);
|
||||
void visitPHI(const PHINode &I) { } // PHI nodes are handled specially.
|
||||
void visitPHI(const PHINode &I);
|
||||
void visitCall(const CallInst &I);
|
||||
bool visitMemCmpCall(const CallInst &I);
|
||||
|
||||
|
@ -728,7 +728,7 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
|
||||
const BasicBlock *LLVMBB = &*I;
|
||||
MachineBasicBlock *BB = FuncInfo->MBBMap[LLVMBB];
|
||||
|
||||
BasicBlock::const_iterator const Begin = LLVMBB->begin();
|
||||
BasicBlock::const_iterator const Begin = LLVMBB->getFirstNonPHI();
|
||||
BasicBlock::const_iterator const End = LLVMBB->end();
|
||||
BasicBlock::const_iterator BI = Begin;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user