diff options
author | Evan Cheng <evan.cheng@apple.com> | 2009-10-17 07:53:04 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2009-10-17 07:53:04 +0000 |
commit | 6553155172a2e74feff1253837daa608123de54a (patch) | |
tree | 2c2b81a5ab0d17f1a636036ce1f85458d65e2ac5 /lib/CodeGen | |
parent | bf125583f8bd8196a34921276add7f304b7c1433 (diff) | |
download | llvm-6553155172a2e74feff1253837daa608123de54a.tar.gz llvm-6553155172a2e74feff1253837daa608123de54a.tar.bz2 llvm-6553155172a2e74feff1253837daa608123de54a.tar.xz |
Revert 84315 for now. Re-thinking the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/PseudoSourceValue.cpp | 19 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 14 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 10 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/StackSlotColoring.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/TargetInstrInfoImpl.cpp | 2 |
8 files changed, 26 insertions, 29 deletions
diff --git a/lib/CodeGen/PseudoSourceValue.cpp b/lib/CodeGen/PseudoSourceValue.cpp index e74479e7a1..00c5d46d21 100644 --- a/lib/CodeGen/PseudoSourceValue.cpp +++ b/lib/CodeGen/PseudoSourceValue.cpp @@ -52,31 +52,29 @@ void PseudoSourceValue::printCustom(raw_ostream &O) const { } namespace { - /// StackObjectPseudoSourceValue - A specialized PseudoSourceValue - /// for holding StackObject values, which must include a frame + /// FixedStackPseudoSourceValue - A specialized PseudoSourceValue + /// for holding FixedStack values, which must include a frame /// index. - class VISIBILITY_HIDDEN StackObjectPseudoSourceValue + class VISIBILITY_HIDDEN FixedStackPseudoSourceValue : public PseudoSourceValue { const int FI; public: - explicit StackObjectPseudoSourceValue(int fi) : FI(fi) {} + explicit FixedStackPseudoSourceValue(int fi) : FI(fi) {} virtual bool isConstant(const MachineFrameInfo *MFI) const; virtual void printCustom(raw_ostream &OS) const { - if (FI < 0) - OS << "Fixed"; - OS << "StackObject" << FI; + OS << "FixedStack" << FI; } }; } static ManagedStatic<std::map<int, const PseudoSourceValue *> > FSValues; -const PseudoSourceValue *PseudoSourceValue::getStackObject(int FI) { +const PseudoSourceValue *PseudoSourceValue::getFixedStack(int FI) { const PseudoSourceValue *&V = (*FSValues)[FI]; if (!V) - V = new StackObjectPseudoSourceValue(FI); + V = new FixedStackPseudoSourceValue(FI); return V; } @@ -91,7 +89,6 @@ bool PseudoSourceValue::isConstant(const MachineFrameInfo *) const { return false; } -bool -StackObjectPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const { +bool FixedStackPseudoSourceValue::isConstant(const MachineFrameInfo *MFI) const{ return MFI && MFI->isImmutableObjectIndex(FI); } diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 9b9e310f47..7138dd2546 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -643,7 +643,7 @@ PerformInsertVectorEltInMemory(SDValue Vec, SDValue Val, SDValue Idx, // Store the vector. SDValue Ch = DAG.getStore(DAG.getEntryNode(), dl, Tmp1, StackPtr, - PseudoSourceValue::getStackObject(SPFI), 0); + PseudoSourceValue::getFixedStack(SPFI), 0); // Truncate or zero extend offset to target pointer type. unsigned CastOpc = IdxVT.bitsGT(PtrVT) ? ISD::TRUNCATE : ISD::ZERO_EXTEND; @@ -654,10 +654,10 @@ PerformInsertVectorEltInMemory(SDValue Vec, SDValue Val, SDValue Idx, SDValue StackPtr2 = DAG.getNode(ISD::ADD, dl, IdxVT, Tmp3, StackPtr); // Store the scalar value. Ch = DAG.getTruncStore(Ch, dl, Tmp2, StackPtr2, - PseudoSourceValue::getStackObject(SPFI), 0, EltVT); + PseudoSourceValue::getFixedStack(SPFI), 0, EltVT); // Load the updated vector. return DAG.getLoad(VT, dl, Ch, StackPtr, - PseudoSourceValue::getStackObject(SPFI), 0); + PseudoSourceValue::getFixedStack(SPFI), 0); } @@ -1518,7 +1518,7 @@ SDValue SelectionDAGLegalize::ExpandVectorBuildThroughStack(SDNode* Node) { DebugLoc dl = Node->getDebugLoc(); SDValue FIPtr = DAG.CreateStackTemporary(VT); int FI = cast<FrameIndexSDNode>(FIPtr.getNode())->getIndex(); - const Value *SV = PseudoSourceValue::getStackObject(FI); + const Value *SV = PseudoSourceValue::getFixedStack(FI); // Emit a store of each element to the stack slot. SmallVector<SDValue, 8> Stores; @@ -1714,7 +1714,7 @@ SDValue SelectionDAGLegalize::EmitStackConvert(SDValue SrcOp, FrameIndexSDNode *StackPtrFI = cast<FrameIndexSDNode>(FIPtr); int SPFI = StackPtrFI->getIndex(); - const Value *SV = PseudoSourceValue::getStackObject(SPFI); + const Value *SV = PseudoSourceValue::getFixedStack(SPFI); unsigned SrcSize = SrcOp.getValueType().getSizeInBits(); unsigned SlotSize = SlotVT.getSizeInBits(); @@ -1755,10 +1755,10 @@ SDValue SelectionDAGLegalize::ExpandSCALAR_TO_VECTOR(SDNode *Node) { SDValue Ch = DAG.getTruncStore(DAG.getEntryNode(), dl, Node->getOperand(0), StackPtr, - PseudoSourceValue::getStackObject(SPFI), 0, + PseudoSourceValue::getFixedStack(SPFI), 0, Node->getValueType(0).getVectorElementType()); return DAG.getLoad(Node->getValueType(0), dl, Ch, StackPtr, - PseudoSourceValue::getStackObject(SPFI), 0); + PseudoSourceValue::getFixedStack(SPFI), 0); } diff --git a/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp b/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp index 90451db552..dbd3e39b54 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp @@ -119,7 +119,7 @@ void DAGTypeLegalizer::ExpandRes_BIT_CONVERT(SDNode *N, SDValue &Lo, getTypeForEVT(*DAG.getContext())); SDValue StackPtr = DAG.CreateStackTemporary(InVT, Alignment); int SPFI = cast<FrameIndexSDNode>(StackPtr.getNode())->getIndex(); - const Value *SV = PseudoSourceValue::getStackObject(SPFI); + const Value *SV = PseudoSourceValue::getFixedStack(SPFI); // Emit a store to the stack slot. SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, InOp, StackPtr, SV, 0); diff --git a/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp b/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp index bf394a8fd7..75e12395d8 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp @@ -1058,7 +1058,7 @@ SDValue DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT(SDNode *N) { DebugLoc dl = N->getDebugLoc(); SDValue StackPtr = DAG.CreateStackTemporary(VecVT); int SPFI = cast<FrameIndexSDNode>(StackPtr.getNode())->getIndex(); - const Value *SV = PseudoSourceValue::getStackObject(SPFI); + const Value *SV = PseudoSourceValue::getFixedStack(SPFI); SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, Vec, StackPtr, SV, 0); // Load back the required element. diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 32517ab56d..8bd0370cc6 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -3514,7 +3514,7 @@ SDValue SelectionDAG::getAtomic(unsigned Opcode, DebugLoc dl, EVT MemVT, if (!PtrVal) if (const FrameIndexSDNode *FI = dyn_cast<const FrameIndexSDNode>(Ptr.getNode())) - PtrVal = PseudoSourceValue::getStackObject(FI->getIndex()); + PtrVal = PseudoSourceValue::getFixedStack(FI->getIndex()); MachineFunction &MF = getMachineFunction(); unsigned Flags = MachineMemOperand::MOLoad | MachineMemOperand::MOStore; @@ -3567,7 +3567,7 @@ SDValue SelectionDAG::getAtomic(unsigned Opcode, DebugLoc dl, EVT MemVT, if (!PtrVal) if (const FrameIndexSDNode *FI = dyn_cast<const FrameIndexSDNode>(Ptr.getNode())) - PtrVal = PseudoSourceValue::getStackObject(FI->getIndex()); + PtrVal = PseudoSourceValue::getFixedStack(FI->getIndex()); MachineFunction &MF = getMachineFunction(); unsigned Flags = MachineMemOperand::MOLoad | MachineMemOperand::MOStore; @@ -3714,7 +3714,7 @@ SelectionDAG::getLoad(ISD::MemIndexedMode AM, DebugLoc dl, if (!SV) if (const FrameIndexSDNode *FI = dyn_cast<const FrameIndexSDNode>(Ptr.getNode())) - SV = PseudoSourceValue::getStackObject(FI->getIndex()); + SV = PseudoSourceValue::getFixedStack(FI->getIndex()); MachineFunction &MF = getMachineFunction(); unsigned Flags = MachineMemOperand::MOLoad; @@ -3813,7 +3813,7 @@ SDValue SelectionDAG::getStore(SDValue Chain, DebugLoc dl, SDValue Val, if (!SV) if (const FrameIndexSDNode *FI = dyn_cast<const FrameIndexSDNode>(Ptr.getNode())) - SV = PseudoSourceValue::getStackObject(FI->getIndex()); + SV = PseudoSourceValue::getFixedStack(FI->getIndex()); MachineFunction &MF = getMachineFunction(); unsigned Flags = MachineMemOperand::MOStore; @@ -3859,7 +3859,7 @@ SDValue SelectionDAG::getTruncStore(SDValue Chain, DebugLoc dl, SDValue Val, if (!SV) if (const FrameIndexSDNode *FI = dyn_cast<const FrameIndexSDNode>(Ptr.getNode())) - SV = PseudoSourceValue::getStackObject(FI->getIndex()); + SV = PseudoSourceValue::getFixedStack(FI->getIndex()); MachineFunction &MF = getMachineFunction(); unsigned Flags = MachineMemOperand::MOStore; diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp index f1bf737922..adcc532272 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp @@ -4197,7 +4197,7 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) { // Store the stack protector onto the stack. SDValue Result = DAG.getStore(getRoot(), getCurDebugLoc(), Src, FIN, - PseudoSourceValue::getStackObject(FI), + PseudoSourceValue::getFixedStack(FI), 0, true); setValue(&I, Result); DAG.setRoot(Result); diff --git a/lib/CodeGen/StackSlotColoring.cpp b/lib/CodeGen/StackSlotColoring.cpp index 242ff65635..fad0808c89 100644 --- a/lib/CodeGen/StackSlotColoring.cpp +++ b/lib/CodeGen/StackSlotColoring.cpp @@ -466,8 +466,8 @@ void StackSlotColoring::RewriteInstruction(MachineInstr *MI, int OldFI, // Update the memory references. This changes the MachineMemOperands // directly. They may be in use by multiple instructions, however all // instructions using OldFI are being rewritten to use NewFI. - const Value *OldSV = PseudoSourceValue::getStackObject(OldFI); - const Value *NewSV = PseudoSourceValue::getStackObject(NewFI); + const Value *OldSV = PseudoSourceValue::getFixedStack(OldFI); + const Value *NewSV = PseudoSourceValue::getFixedStack(NewFI); for (MachineInstr::mmo_iterator I = MI->memoperands_begin(), E = MI->memoperands_end(); I != E; ++I) if ((*I)->getValue() == OldSV) diff --git a/lib/CodeGen/TargetInstrInfoImpl.cpp b/lib/CodeGen/TargetInstrInfoImpl.cpp index b6107778c8..c646869e8a 100644 --- a/lib/CodeGen/TargetInstrInfoImpl.cpp +++ b/lib/CodeGen/TargetInstrInfoImpl.cpp @@ -187,7 +187,7 @@ TargetInstrInfo::foldMemoryOperand(MachineFunction &MF, const MachineFrameInfo &MFI = *MF.getFrameInfo(); assert(MFI.getObjectOffset(FrameIndex) != -1); MachineMemOperand *MMO = - MF.getMachineMemOperand(PseudoSourceValue::getStackObject(FrameIndex), + MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FrameIndex), Flags, /*Offset=*/0, MFI.getObjectSize(FrameIndex), MFI.getObjectAlignment(FrameIndex)); |