mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-02 08:45:55 +00:00
finish pushing MachinePointerInfo through selectiondags. At this point,
I think I've audited all uses, so it should be dependable for address spaces, and the pointer+offset info should also be accurate when there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114464 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
fc448ff89b
commit
84bd98ac7b
@ -653,9 +653,6 @@ public:
|
||||
SDValue getStore(SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr,
|
||||
MachinePointerInfo PtrInfo, bool isVolatile,
|
||||
bool isNonTemporal, unsigned Alignment);
|
||||
SDValue getStore(SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr,
|
||||
const Value *V, int SVOffset, bool isVolatile,
|
||||
bool isNonTemporal, unsigned Alignment);
|
||||
SDValue getStore(SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr,
|
||||
MachineMemOperand *MMO);
|
||||
SDValue getTruncStore(SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr,
|
||||
|
@ -4019,16 +4019,6 @@ SDValue SelectionDAG::getStore(SDValue Chain, DebugLoc dl, SDValue Val,
|
||||
return getStore(Chain, dl, Val, Ptr, MMO);
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getStore(SDValue Chain, DebugLoc dl, SDValue Val,
|
||||
SDValue Ptr,
|
||||
const Value *SV, int SVOffset, bool isVolatile,
|
||||
bool isNonTemporal, unsigned Alignment) {
|
||||
|
||||
return getStore(Chain, dl, Val, Ptr, MachinePointerInfo(SV, SVOffset),
|
||||
isVolatile, isNonTemporal, Alignment);
|
||||
}
|
||||
|
||||
|
||||
SDValue SelectionDAG::getStore(SDValue Chain, DebugLoc dl, SDValue Val,
|
||||
SDValue Ptr, MachineMemOperand *MMO) {
|
||||
EVT VT = Val.getValueType();
|
||||
|
@ -1088,7 +1088,8 @@ void SelectionDAGBuilder::visitRet(const ReturnInst &I) {
|
||||
Chains[i] =
|
||||
DAG.getStore(Chain, getCurDebugLoc(),
|
||||
SDValue(RetOp.getNode(), RetOp.getResNo() + i),
|
||||
Add, NULL, Offsets[i], false, false, 0);
|
||||
// FIXME: better loc info would be nice.
|
||||
Add, MachinePointerInfo(), false, false, 0);
|
||||
}
|
||||
|
||||
Chain = DAG.getNode(ISD::TokenFactor, getCurDebugLoc(),
|
||||
@ -3000,8 +3001,8 @@ void SelectionDAGBuilder::visitStore(const StoreInst &I) {
|
||||
DAG.getConstant(Offsets[i], PtrVT));
|
||||
Chains[i] = DAG.getStore(Root, getCurDebugLoc(),
|
||||
SDValue(Src.getNode(), Src.getResNo() + i),
|
||||
Add, PtrV, Offsets[i], isVolatile,
|
||||
isNonTemporal, Alignment);
|
||||
Add, MachinePointerInfo(PtrV, Offsets[i]),
|
||||
isVolatile, isNonTemporal, Alignment);
|
||||
}
|
||||
|
||||
DAG.setRoot(DAG.getNode(ISD::TokenFactor, getCurDebugLoc(),
|
||||
@ -4448,8 +4449,8 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
|
||||
|
||||
// Store the stack protector onto the stack.
|
||||
Res = DAG.getStore(getRoot(), getCurDebugLoc(), Src, FIN,
|
||||
PseudoSourceValue::getFixedStack(FI),
|
||||
0, true, false, 0);
|
||||
MachinePointerInfo::getFixedStack(FI),
|
||||
true, false, 0);
|
||||
setValue(&I, Res);
|
||||
DAG.setRoot(Res);
|
||||
return 0;
|
||||
@ -5760,7 +5761,7 @@ void SelectionDAGBuilder::visitInlineAsm(ImmutableCallSite CS) {
|
||||
SDValue Val = DAG.getStore(Chain, getCurDebugLoc(),
|
||||
StoresToEmit[i].first,
|
||||
getValue(StoresToEmit[i].second),
|
||||
StoresToEmit[i].second, 0,
|
||||
MachinePointerInfo(StoresToEmit[i].second),
|
||||
false, false, 0);
|
||||
OutChains.push_back(Val);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user