mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-28 08:02:08 +00:00
eliminate last SelectionDAG::getLoad old entrypoint, on to stores.
llvm-svn: 114450
This commit is contained in:
parent
ea952f05a5
commit
5e39ffd02f
@ -638,11 +638,6 @@ public:
|
||||
bool isNonTemporal, unsigned Alignment);
|
||||
SDValue getIndexedLoad(SDValue OrigLoad, DebugLoc dl, SDValue Base,
|
||||
SDValue Offset, ISD::MemIndexedMode AM);
|
||||
SDValue getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
|
||||
EVT VT, DebugLoc dl,
|
||||
SDValue Chain, SDValue Ptr, SDValue Offset,
|
||||
const Value *SV, int SVOffset, EVT MemVT,
|
||||
bool isVolatile, bool isNonTemporal, unsigned Alignment);
|
||||
SDValue getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
|
||||
EVT VT, DebugLoc dl,
|
||||
SDValue Chain, SDValue Ptr, SDValue Offset,
|
||||
|
@ -455,7 +455,7 @@ SDValue DAGTypeLegalizer::SoftenFloatRes_LOAD(SDNode *N) {
|
||||
if (L->getExtensionType() == ISD::NON_EXTLOAD) {
|
||||
NewL = DAG.getLoad(L->getAddressingMode(), L->getExtensionType(),
|
||||
NVT, dl, L->getChain(), L->getBasePtr(), L->getOffset(),
|
||||
L->getSrcValue(), L->getSrcValueOffset(), NVT,
|
||||
L->getPointerInfo(), NVT,
|
||||
L->isVolatile(), L->isNonTemporal(), L->getAlignment());
|
||||
// Legalized the chain result - switch anything that used the old chain to
|
||||
// use the new one.
|
||||
@ -466,8 +466,7 @@ SDValue DAGTypeLegalizer::SoftenFloatRes_LOAD(SDNode *N) {
|
||||
// Do a non-extending load followed by FP_EXTEND.
|
||||
NewL = DAG.getLoad(L->getAddressingMode(), ISD::NON_EXTLOAD,
|
||||
L->getMemoryVT(), dl, L->getChain(),
|
||||
L->getBasePtr(), L->getOffset(),
|
||||
L->getSrcValue(), L->getSrcValueOffset(),
|
||||
L->getBasePtr(), L->getOffset(), L->getPointerInfo(),
|
||||
L->getMemoryVT(), L->isVolatile(),
|
||||
L->isNonTemporal(), L->getAlignment());
|
||||
// Legalized the chain result - switch anything that used the old chain to
|
||||
|
@ -171,7 +171,7 @@ SDValue DAGTypeLegalizer::ScalarizeVecRes_LOAD(LoadSDNode *N) {
|
||||
N->getDebugLoc(),
|
||||
N->getChain(), N->getBasePtr(),
|
||||
DAG.getUNDEF(N->getBasePtr().getValueType()),
|
||||
N->getSrcValue(), N->getSrcValueOffset(),
|
||||
N->getPointerInfo(),
|
||||
N->getMemoryVT().getVectorElementType(),
|
||||
N->isVolatile(), N->isNonTemporal(),
|
||||
N->getOriginalAlignment());
|
||||
@ -751,8 +751,6 @@ void DAGTypeLegalizer::SplitVecRes_LOAD(LoadSDNode *LD, SDValue &Lo,
|
||||
SDValue Ch = LD->getChain();
|
||||
SDValue Ptr = LD->getBasePtr();
|
||||
SDValue Offset = DAG.getUNDEF(Ptr.getValueType());
|
||||
const Value *SV = LD->getSrcValue();
|
||||
int SVOffset = LD->getSrcValueOffset();
|
||||
EVT MemoryVT = LD->getMemoryVT();
|
||||
unsigned Alignment = LD->getOriginalAlignment();
|
||||
bool isVolatile = LD->isVolatile();
|
||||
@ -762,14 +760,15 @@ void DAGTypeLegalizer::SplitVecRes_LOAD(LoadSDNode *LD, SDValue &Lo,
|
||||
GetSplitDestVTs(MemoryVT, LoMemVT, HiMemVT);
|
||||
|
||||
Lo = DAG.getLoad(ISD::UNINDEXED, ExtType, LoVT, dl, Ch, Ptr, Offset,
|
||||
SV, SVOffset, LoMemVT, isVolatile, isNonTemporal, Alignment);
|
||||
LD->getPointerInfo(), LoMemVT, isVolatile, isNonTemporal,
|
||||
Alignment);
|
||||
|
||||
unsigned IncrementSize = LoMemVT.getSizeInBits()/8;
|
||||
Ptr = DAG.getNode(ISD::ADD, dl, Ptr.getValueType(), Ptr,
|
||||
DAG.getIntPtrConstant(IncrementSize));
|
||||
SVOffset += IncrementSize;
|
||||
Hi = DAG.getLoad(ISD::UNINDEXED, ExtType, HiVT, dl, Ch, Ptr, Offset,
|
||||
SV, SVOffset, HiMemVT, isVolatile, isNonTemporal, Alignment);
|
||||
LD->getPointerInfo().getWithOffset(IncrementSize),
|
||||
HiMemVT, isVolatile, isNonTemporal, Alignment);
|
||||
|
||||
// Build a factor node to remember that this load is independent of the
|
||||
// other one.
|
||||
|
@ -3855,19 +3855,6 @@ SelectionDAG::getMemIntrinsicNode(unsigned Opcode, DebugLoc dl, SDVTList VTList,
|
||||
return SDValue(N, 0);
|
||||
}
|
||||
|
||||
SDValue
|
||||
SelectionDAG::getLoad(ISD::MemIndexedMode AM, ISD::LoadExtType ExtType,
|
||||
EVT VT, DebugLoc dl, SDValue Chain,
|
||||
SDValue Ptr, SDValue Offset,
|
||||
const Value *SV, int SVOffset, EVT MemVT,
|
||||
bool isVolatile, bool isNonTemporal,
|
||||
unsigned Alignment) {
|
||||
|
||||
return getLoad(AM, ExtType, VT, dl, Chain, Ptr, Offset,
|
||||
MachinePointerInfo(SV, SVOffset), MemVT, isVolatile,
|
||||
isNonTemporal, Alignment);
|
||||
}
|
||||
|
||||
/// InferPointerInfo - If the specified ptr/offset is a frame index, infer a
|
||||
/// MachinePointerInfo record from it. This is particularly useful because the
|
||||
/// code generator has many cases where it doesn't bother passing in a
|
||||
|
Loading…
Reference in New Issue
Block a user