Follow Chris' suggestion; change the PseudoSourceValue accessors

to return pointers instead of references, since this is always what
is needed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46857 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-02-07 18:41:25 +00:00
parent 4fdad172de
commit 3069b87437
6 changed files with 44 additions and 44 deletions

View File

@ -37,21 +37,21 @@ namespace llvm {
/// A pseudo source value referencing to the stack frame of a function,
/// e.g., a spill slot.
static const PseudoSourceValue &getFixedStack();
static const PseudoSourceValue *getFixedStack();
/// A source value referencing the area below the stack frame of a function,
/// e.g., the argument space.
static const PseudoSourceValue &getStack();
static const PseudoSourceValue *getStack();
/// A source value referencing the global offset table (or something the
/// like).
static const PseudoSourceValue &getGOT();
static const PseudoSourceValue *getGOT();
/// A SV referencing the constant pool
static const PseudoSourceValue &getConstantPool();
static const PseudoSourceValue *getConstantPool();
/// A SV referencing the jump table
static const PseudoSourceValue &getJumpTable();
static const PseudoSourceValue *getJumpTable();
};
} // End llvm namespace

View File

@ -18,11 +18,11 @@
namespace llvm {
static ManagedStatic<PseudoSourceValue[5]> PSVs;
const PseudoSourceValue &PseudoSourceValue::getFixedStack() { return (*PSVs)[0]; }
const PseudoSourceValue &PseudoSourceValue::getStack() { return (*PSVs)[1]; }
const PseudoSourceValue &PseudoSourceValue::getGOT() { return (*PSVs)[2]; }
const PseudoSourceValue &PseudoSourceValue::getConstantPool() { return (*PSVs)[3]; }
const PseudoSourceValue &PseudoSourceValue::getJumpTable() { return (*PSVs)[4]; }
const PseudoSourceValue *PseudoSourceValue::getFixedStack() { return &(*PSVs)[0]; }
const PseudoSourceValue *PseudoSourceValue::getStack() { return &(*PSVs)[1]; }
const PseudoSourceValue *PseudoSourceValue::getGOT() { return &(*PSVs)[2]; }
const PseudoSourceValue *PseudoSourceValue::getConstantPool() { return &(*PSVs)[3]; }
const PseudoSourceValue *PseudoSourceValue::getJumpTable() { return &(*PSVs)[4]; }
static const char *PSVNames[] = {
"FixedStack",

View File

@ -510,11 +510,11 @@ static SDOperand ExpandConstantFP(ConstantFPSDNode *CFP, bool UseCP,
SDOperand CPIdx = DAG.getConstantPool(LLVMC, TLI.getPointerTy());
if (Extend) {
return DAG.getExtLoad(ISD::EXTLOAD, MVT::f64, DAG.getEntryNode(),
CPIdx, &PseudoSourceValue::getConstantPool(),
CPIdx, PseudoSourceValue::getConstantPool(),
0, MVT::f32);
} else {
return DAG.getLoad(VT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0);
PseudoSourceValue::getConstantPool(), 0);
}
}
@ -1327,7 +1327,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
// Store the vector.
SDOperand Ch = DAG.getStore(DAG.getEntryNode(), Tmp1, StackPtr,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
SPFI);
// Truncate or zero extend offset to target pointer type.
@ -1339,10 +1339,10 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
SDOperand StackPtr2 = DAG.getNode(ISD::ADD, IdxVT, Tmp3, StackPtr);
// Store the scalar value.
Ch = DAG.getStore(Ch, Tmp2, StackPtr2,
&PseudoSourceValue::getFixedStack(), SPFI);
PseudoSourceValue::getFixedStack(), SPFI);
// Load the updated vector.
Result = DAG.getLoad(VT, Ch, StackPtr,
&PseudoSourceValue::getFixedStack(), SPFI);
PseudoSourceValue::getFixedStack(), SPFI);
break;
}
}
@ -1692,9 +1692,9 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
switch (EntrySize) {
default: assert(0 && "Size of jump table not supported yet."); break;
case 4: LD = DAG.getLoad(MVT::i32, Chain, Addr,
&PseudoSourceValue::getJumpTable(), 0); break;
PseudoSourceValue::getJumpTable(), 0); break;
case 8: LD = DAG.getLoad(MVT::i64, Chain, Addr,
&PseudoSourceValue::getJumpTable(), 0); break;
PseudoSourceValue::getJumpTable(), 0); break;
}
Addr = LD;
@ -4772,12 +4772,12 @@ SDOperand SelectionDAGLegalize::EmitStackConvert(SDOperand SrcOp,
SDOperand Store;
if (SrcSize > SlotSize)
Store = DAG.getTruncStore(DAG.getEntryNode(), SrcOp, FIPtr,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
SPFI, SlotVT);
else {
assert(SrcSize == SlotSize && "Invalid store");
Store = DAG.getStore(DAG.getEntryNode(), SrcOp, FIPtr,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
SPFI, SlotVT);
}
@ -4799,9 +4799,9 @@ SDOperand SelectionDAGLegalize::ExpandSCALAR_TO_VECTOR(SDNode *Node) {
int SPFI = StackPtrFI->getIndex();
SDOperand Ch = DAG.getStore(DAG.getEntryNode(), Node->getOperand(0), StackPtr,
&PseudoSourceValue::getFixedStack(), SPFI);
PseudoSourceValue::getFixedStack(), SPFI);
return DAG.getLoad(Node->getValueType(0), Ch, StackPtr,
&PseudoSourceValue::getFixedStack(), SPFI);
PseudoSourceValue::getFixedStack(), SPFI);
}
@ -4866,7 +4866,7 @@ SDOperand SelectionDAGLegalize::ExpandBUILD_VECTOR(SDNode *Node) {
Constant *CP = ConstantVector::get(CV);
SDOperand CPIdx = DAG.getConstantPool(CP, TLI.getPointerTy());
return DAG.getLoad(VT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0);
PseudoSourceValue::getConstantPool(), 0);
}
if (SplatValue.Val) { // Splat of one value?
@ -5209,12 +5209,12 @@ ExpandIntToFP(bool isSigned, MVT::ValueType DestTy, SDOperand Source) {
SDOperand FudgeInReg;
if (DestTy == MVT::f32)
FudgeInReg = DAG.getLoad(MVT::f32, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0);
PseudoSourceValue::getConstantPool(), 0);
else if (MVT::getSizeInBits(DestTy) > MVT::getSizeInBits(MVT::f32))
// FIXME: Avoid the extend by construction the right constantpool?
FudgeInReg = DAG.getExtLoad(ISD::EXTLOAD, DestTy, DAG.getEntryNode(),
CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
MVT::f32);
else
assert(0 && "Unexpected conversion");
@ -5358,12 +5358,12 @@ SDOperand SelectionDAGLegalize::ExpandLegalINT_TO_FP(bool isSigned,
SDOperand FudgeInReg;
if (DestVT == MVT::f32)
FudgeInReg = DAG.getLoad(MVT::f32, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0);
PseudoSourceValue::getConstantPool(), 0);
else {
FudgeInReg =
LegalizeOp(DAG.getExtLoad(ISD::EXTLOAD, DestVT,
DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
MVT::f32));
}
@ -6778,10 +6778,10 @@ void SelectionDAGLegalize::SplitVectorOp(SDOperand Op, SDOperand &Lo,
SDOperand St = DAG.getStore(DAG.getEntryNode(),
InOp, Ptr,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
FI->getIndex());
InOp = DAG.getLoad(Op.getValueType(), St, Ptr,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
FI->getIndex());
}
// Split the vector and convert each of the pieces now.

View File

@ -3548,7 +3548,7 @@ MemOperand LSBaseSDNode::getMemOperand() const {
const FrameIndexSDNode *FI =
dyn_cast<const FrameIndexSDNode>(getBasePtr().Val);
if (!getSrcValue() && FI)
return MemOperand(&PseudoSourceValue::getFixedStack(), Flags,
return MemOperand(PseudoSourceValue::getFixedStack(), Flags,
FI->getIndex(), Size, Alignment);
else
return MemOperand(getSrcValue(), Flags,

View File

@ -2203,7 +2203,7 @@ static SDOperand LowerSINT_TO_FP(SDOperand Op, SelectionDAG &DAG) {
Op.getOperand(0));
// STD the extended value into the stack slot.
MemOperand MO(&PseudoSourceValue::getFixedStack(),
MemOperand MO(PseudoSourceValue::getFixedStack(),
MemOperand::MOStore, FrameIdx, 8, 8);
SDOperand Store = DAG.getNode(PPCISD::STD_32, MVT::Other,
DAG.getEntryNode(), Ext64, FIdx,

View File

@ -1091,7 +1091,7 @@ SDOperand X86TargetLowering::LowerMemArgument(SDOperand Op, SelectionDAG &DAG,
if (isByVal)
return FIN;
return DAG.getLoad(VA.getValVT(), Root, FIN,
&PseudoSourceValue::getFixedStack(), FI);
PseudoSourceValue::getFixedStack(), FI);
}
SDOperand
@ -1221,7 +1221,7 @@ X86TargetLowering::LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG) {
SDOperand Val = DAG.getCopyFromReg(Root, VReg, MVT::i64);
SDOperand Store =
DAG.getStore(Val.getValue(1), Val, FIN,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
RegSaveFrameIndex);
MemOps.push_back(Store);
FIN = DAG.getNode(ISD::ADD, getPointerTy(), FIN,
@ -1237,7 +1237,7 @@ X86TargetLowering::LowerFORMAL_ARGUMENTS(SDOperand Op, SelectionDAG &DAG) {
SDOperand Val = DAG.getCopyFromReg(Root, VReg, MVT::v4f32);
SDOperand Store =
DAG.getStore(Val.getValue(1), Val, FIN,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
RegSaveFrameIndex);
MemOps.push_back(Store);
FIN = DAG.getNode(ISD::ADD, getPointerTy(), FIN,
@ -1299,7 +1299,7 @@ X86TargetLowering::LowerMemOpCallTo(SDOperand Op, SelectionDAG &DAG,
return CreateCopyOfByValArgument(Arg, PtrOff, Chain, Flags, DAG);
}
return DAG.getStore(Chain, Arg, PtrOff,
&PseudoSourceValue::getStack(), LocMemOffset);
PseudoSourceValue::getStack(), LocMemOffset);
}
/// ClassifyX86_64SRetCallReturn - Classify how to implement a x86-64
@ -1571,7 +1571,7 @@ SDOperand X86TargetLowering::LowerCALL(SDOperand Op, SelectionDAG &DAG) {
// Store relative to framepointer.
MemOpChains2.push_back(
DAG.getStore(Chain, Source, FIN,
&PseudoSourceValue::getFixedStack(), FI));
PseudoSourceValue::getFixedStack(), FI));
}
}
}
@ -3801,7 +3801,7 @@ X86TargetLowering::LowerGlobalAddress(SDOperand Op, SelectionDAG &DAG) {
// The same applies for external symbols during PIC codegen
if (Subtarget->GVRequiresExtraLoad(GV, getTargetMachine(), false))
Result = DAG.getLoad(getPointerTy(), DAG.getEntryNode(), Result,
&PseudoSourceValue::getGOT(), 0);
PseudoSourceValue::getGOT(), 0);
return Result;
}
@ -3860,7 +3860,7 @@ LowerToTLSExecModel(GlobalAddressSDNode *GA, SelectionDAG &DAG,
if (GA->getGlobal()->isDeclaration()) // initial exec TLS model
Offset = DAG.getLoad(PtrVT, DAG.getEntryNode(), Offset,
&PseudoSourceValue::getGOT(), 0);
PseudoSourceValue::getGOT(), 0);
// The address of the thread local variable is the add of the thread
// pointer with the offset of the variable.
@ -3993,7 +3993,7 @@ SDOperand X86TargetLowering::LowerSINT_TO_FP(SDOperand Op, SelectionDAG &DAG) {
SDOperand StackSlot = DAG.getFrameIndex(SSFI, getPointerTy());
SDOperand Chain = DAG.getStore(DAG.getEntryNode(), Op.getOperand(0),
StackSlot,
&PseudoSourceValue::getFixedStack(),
PseudoSourceValue::getFixedStack(),
SSFI);
// These are really Legal; caller falls through into that case.
@ -4036,7 +4036,7 @@ SDOperand X86TargetLowering::LowerSINT_TO_FP(SDOperand Op, SelectionDAG &DAG) {
Ops.push_back(InFlag);
Chain = DAG.getNode(X86ISD::FST, Tys, &Ops[0], Ops.size());
Result = DAG.getLoad(Op.getValueType(), Chain, StackSlot,
&PseudoSourceValue::getFixedStack(), SSFI);
PseudoSourceValue::getFixedStack(), SSFI);
}
return Result;
@ -4075,7 +4075,7 @@ FP_TO_SINTHelper(SDOperand Op, SelectionDAG &DAG) {
if (isScalarFPTypeInSSEReg(Op.getOperand(0).getValueType())) {
assert(Op.getValueType() == MVT::i64 && "Invalid FP_TO_SINT to lower!");
Chain = DAG.getStore(Chain, Value, StackSlot,
&PseudoSourceValue::getFixedStack(), SSFI);
PseudoSourceValue::getFixedStack(), SSFI);
SDVTList Tys = DAG.getVTList(Op.getOperand(0).getValueType(), MVT::Other);
SDOperand Ops[] = {
Chain, StackSlot, DAG.getValueType(Op.getOperand(0).getValueType())
@ -4135,7 +4135,7 @@ SDOperand X86TargetLowering::LowerFABS(SDOperand Op, SelectionDAG &DAG) {
Constant *C = ConstantVector::get(CV);
SDOperand CPIdx = DAG.getConstantPool(C, getPointerTy(), 4);
SDOperand Mask = DAG.getLoad(VT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
false, 16);
return DAG.getNode(X86ISD::FAND, VT, Op.getOperand(0), Mask);
}
@ -4164,7 +4164,7 @@ SDOperand X86TargetLowering::LowerFNEG(SDOperand Op, SelectionDAG &DAG) {
Constant *C = ConstantVector::get(CV);
SDOperand CPIdx = DAG.getConstantPool(C, getPointerTy(), 4);
SDOperand Mask = DAG.getLoad(VT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
false, 16);
if (MVT::isVector(VT)) {
return DAG.getNode(ISD::BIT_CONVERT, VT,
@ -4213,7 +4213,7 @@ SDOperand X86TargetLowering::LowerFCOPYSIGN(SDOperand Op, SelectionDAG &DAG) {
Constant *C = ConstantVector::get(CV);
SDOperand CPIdx = DAG.getConstantPool(C, getPointerTy(), 4);
SDOperand Mask1 = DAG.getLoad(SrcVT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
false, 16);
SDOperand SignBit = DAG.getNode(X86ISD::FAND, SrcVT, Op1, Mask1);
@ -4242,7 +4242,7 @@ SDOperand X86TargetLowering::LowerFCOPYSIGN(SDOperand Op, SelectionDAG &DAG) {
C = ConstantVector::get(CV);
CPIdx = DAG.getConstantPool(C, getPointerTy(), 4);
SDOperand Mask2 = DAG.getLoad(VT, DAG.getEntryNode(), CPIdx,
&PseudoSourceValue::getConstantPool(), 0,
PseudoSourceValue::getConstantPool(), 0,
false, 16);
SDOperand Val = DAG.getNode(X86ISD::FAND, VT, Op0, Mask2);