diff --git a/llvm/include/llvm/CodeGen/PseudoSourceValue.h b/llvm/include/llvm/CodeGen/PseudoSourceValue.h index 3eaf475a5777..6d7fb1fa81b2 100644 --- a/llvm/include/llvm/CodeGen/PseudoSourceValue.h +++ b/llvm/include/llvm/CodeGen/PseudoSourceValue.h @@ -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 diff --git a/llvm/lib/CodeGen/PseudoSourceValue.cpp b/llvm/lib/CodeGen/PseudoSourceValue.cpp index b7fb25e4f103..e1eb4e01a29a 100644 --- a/llvm/lib/CodeGen/PseudoSourceValue.cpp +++ b/llvm/lib/CodeGen/PseudoSourceValue.cpp @@ -18,11 +18,11 @@ namespace llvm { static ManagedStatic 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", diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 71633fe7cd5a..ce5716ba906b 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -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. diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 71c6b5589fab..b58138eb2b08 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -3548,7 +3548,7 @@ MemOperand LSBaseSDNode::getMemOperand() const { const FrameIndexSDNode *FI = dyn_cast(getBasePtr().Val); if (!getSrcValue() && FI) - return MemOperand(&PseudoSourceValue::getFixedStack(), Flags, + return MemOperand(PseudoSourceValue::getFixedStack(), Flags, FI->getIndex(), Size, Alignment); else return MemOperand(getSrcValue(), Flags, diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 28aa35c73752..f61ecce6312d 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -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, diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 5adce0584769..7ff4e556fcf2 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -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);