forked from OSchip/llvm-project
remove dead code, mblaze uses SelectAddrRegImm/SelectAddrRegReg,
not SelectAddr llvm-svn: 113072
This commit is contained in:
parent
b1951ea1fe
commit
55118e7224
|
@ -81,10 +81,6 @@ private:
|
|||
SDNode *getGlobalBaseReg();
|
||||
SDNode *Select(SDNode *N);
|
||||
|
||||
// Complex Pattern.
|
||||
bool SelectAddr(SDNode *Op, SDValue N,
|
||||
SDValue &Base, SDValue &Offset);
|
||||
|
||||
// Address Selection
|
||||
bool SelectAddrRegReg(SDNode *Op, SDValue N, SDValue &Base, SDValue &Index);
|
||||
bool SelectAddrRegImm(SDNode *Op, SDValue N, SDValue &Disp, SDValue &Base);
|
||||
|
@ -190,56 +186,6 @@ SDNode *MBlazeDAGToDAGISel::getGlobalBaseReg() {
|
|||
return CurDAG->getRegister(GlobalBaseReg, TLI.getPointerTy()).getNode();
|
||||
}
|
||||
|
||||
/// ComplexPattern used on MBlazeInstrInfo
|
||||
/// Used on MBlaze Load/Store instructions
|
||||
bool MBlazeDAGToDAGISel::
|
||||
SelectAddr(SDNode *Op, SDValue Addr, SDValue &Offset, SDValue &Base) {
|
||||
// if Address is FI, get the TargetFrameIndex.
|
||||
if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>(Addr)) {
|
||||
Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
|
||||
Offset = CurDAG->getTargetConstant(0, MVT::i32);
|
||||
return true;
|
||||
}
|
||||
|
||||
// on PIC code Load GA
|
||||
if (TM.getRelocationModel() == Reloc::PIC_) {
|
||||
if ((Addr.getOpcode() == ISD::TargetGlobalAddress) ||
|
||||
(Addr.getOpcode() == ISD::TargetConstantPool) ||
|
||||
(Addr.getOpcode() == ISD::TargetJumpTable)){
|
||||
Base = CurDAG->getRegister(MBlaze::R15, MVT::i32);
|
||||
Offset = Addr;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if ((Addr.getOpcode() == ISD::TargetExternalSymbol ||
|
||||
Addr.getOpcode() == ISD::TargetGlobalAddress))
|
||||
return false;
|
||||
}
|
||||
|
||||
// Operand is a result from an ADD.
|
||||
if (Addr.getOpcode() == ISD::ADD) {
|
||||
if (ConstantSDNode *CN = dyn_cast<ConstantSDNode>(Addr.getOperand(1))) {
|
||||
if (isUInt<16>(CN->getZExtValue())) {
|
||||
|
||||
// If the first operand is a FI, get the TargetFI Node
|
||||
if (FrameIndexSDNode *FIN = dyn_cast<FrameIndexSDNode>
|
||||
(Addr.getOperand(0))) {
|
||||
Base = CurDAG->getTargetFrameIndex(FIN->getIndex(), MVT::i32);
|
||||
} else {
|
||||
Base = Addr.getOperand(0);
|
||||
}
|
||||
|
||||
Offset = CurDAG->getTargetConstant(CN->getZExtValue(), MVT::i32);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Base = Addr;
|
||||
Offset = CurDAG->getTargetConstant(0, MVT::i32);
|
||||
return true;
|
||||
}
|
||||
|
||||
/// Select instructions not customized! Used for
|
||||
/// expanded, promoted and normal instructions
|
||||
SDNode* MBlazeDAGToDAGISel::Select(SDNode *Node) {
|
||||
|
|
Loading…
Reference in New Issue