mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
Revert "[DebugInfo] Add debug locations to constant SD nodes"
This breaks a test: http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/23870 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235987 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -384,7 +384,7 @@ SDValue SITargetLowering::LowerParameter(SelectionDAG &DAG, EVT VT, EVT MemVT,
|
||||
SDValue BasePtr = DAG.getCopyFromReg(Chain, SL,
|
||||
MRI.getLiveInVirtReg(InputPtrReg), MVT::i64);
|
||||
SDValue Ptr = DAG.getNode(ISD::ADD, SL, MVT::i64, BasePtr,
|
||||
DAG.getConstant(Offset, SL, MVT::i64));
|
||||
DAG.getConstant(Offset, MVT::i64));
|
||||
SDValue PtrOffset = DAG.getUNDEF(getPointerTy(AMDGPUAS::CONSTANT_ADDRESS));
|
||||
MachinePointerInfo PtrInfo(UndefValue::get(PtrTy));
|
||||
|
||||
@@ -826,14 +826,14 @@ SDValue SITargetLowering::LowerGlobalAddress(AMDGPUMachineFunction *MFI,
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, DL, MVT::i32);
|
||||
|
||||
SDValue PtrLo = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, MVT::i32, Ptr,
|
||||
DAG.getConstant(0, DL, MVT::i32));
|
||||
DAG.getConstant(0, MVT::i32));
|
||||
SDValue PtrHi = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, MVT::i32, Ptr,
|
||||
DAG.getConstant(1, DL, MVT::i32));
|
||||
DAG.getConstant(1, MVT::i32));
|
||||
|
||||
SDValue Lo = DAG.getNode(ISD::ADDC, DL, DAG.getVTList(MVT::i32, MVT::Glue),
|
||||
PtrLo, GA);
|
||||
SDValue Hi = DAG.getNode(ISD::ADDE, DL, DAG.getVTList(MVT::i32, MVT::Glue),
|
||||
PtrHi, DAG.getConstant(0, DL, MVT::i32),
|
||||
PtrHi, DAG.getConstant(0, MVT::i32),
|
||||
SDValue(Lo.getNode(), 1));
|
||||
return DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i64, Lo, Hi);
|
||||
}
|
||||
@@ -1018,8 +1018,8 @@ SDValue SITargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDLoc DL(Op);
|
||||
SDValue Cond = Op.getOperand(0);
|
||||
|
||||
SDValue Zero = DAG.getConstant(0, DL, MVT::i32);
|
||||
SDValue One = DAG.getConstant(1, DL, MVT::i32);
|
||||
SDValue Zero = DAG.getConstant(0, MVT::i32);
|
||||
SDValue One = DAG.getConstant(1, MVT::i32);
|
||||
|
||||
SDValue LHS = DAG.getNode(ISD::BITCAST, DL, MVT::v2i32, Op.getOperand(1));
|
||||
SDValue RHS = DAG.getNode(ISD::BITCAST, DL, MVT::v2i32, Op.getOperand(2));
|
||||
@@ -1094,12 +1094,12 @@ SDValue SITargetLowering::LowerFDIV32(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue r1 = DAG.getNode(ISD::FABS, SL, MVT::f32, RHS);
|
||||
|
||||
const APFloat K0Val(BitsToFloat(0x6f800000));
|
||||
const SDValue K0 = DAG.getConstantFP(K0Val, SL, MVT::f32);
|
||||
const SDValue K0 = DAG.getConstantFP(K0Val, MVT::f32);
|
||||
|
||||
const APFloat K1Val(BitsToFloat(0x2f800000));
|
||||
const SDValue K1 = DAG.getConstantFP(K1Val, SL, MVT::f32);
|
||||
const SDValue K1 = DAG.getConstantFP(K1Val, MVT::f32);
|
||||
|
||||
const SDValue One = DAG.getConstantFP(1.0, SL, MVT::f32);
|
||||
const SDValue One = DAG.getConstantFP(1.0, MVT::f32);
|
||||
|
||||
EVT SetCCVT = getSetCCResultType(*DAG.getContext(), MVT::f32);
|
||||
|
||||
@@ -1124,7 +1124,7 @@ SDValue SITargetLowering::LowerFDIV64(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue X = Op.getOperand(0);
|
||||
SDValue Y = Op.getOperand(1);
|
||||
|
||||
const SDValue One = DAG.getConstantFP(1.0, SL, MVT::f64);
|
||||
const SDValue One = DAG.getConstantFP(1.0, MVT::f64);
|
||||
|
||||
SDVTList ScaleVT = DAG.getVTList(MVT::f64, MVT::i1);
|
||||
|
||||
@@ -1154,7 +1154,7 @@ SDValue SITargetLowering::LowerFDIV64(SDValue Op, SelectionDAG &DAG) const {
|
||||
// Workaround a hardware bug on SI where the condition output from div_scale
|
||||
// is not usable.
|
||||
|
||||
const SDValue Hi = DAG.getConstant(1, SL, MVT::i32);
|
||||
const SDValue Hi = DAG.getConstant(1, MVT::i32);
|
||||
|
||||
// Figure out if the scale to use for div_fmas.
|
||||
SDValue NumBC = DAG.getNode(ISD::BITCAST, SL, MVT::v2i32, X);
|
||||
@@ -1223,13 +1223,11 @@ SDValue SITargetLowering::LowerSTORE(SDValue Op, SelectionDAG &DAG) const {
|
||||
}
|
||||
|
||||
SDValue SITargetLowering::LowerTrig(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDLoc DL(Op);
|
||||
EVT VT = Op.getValueType();
|
||||
SDValue Arg = Op.getOperand(0);
|
||||
SDValue FractPart = DAG.getNode(AMDGPUISD::FRACT, DL, VT,
|
||||
DAG.getNode(ISD::FMUL, DL, VT, Arg,
|
||||
DAG.getConstantFP(0.5/M_PI, DL,
|
||||
VT)));
|
||||
SDValue FractPart = DAG.getNode(AMDGPUISD::FRACT, SDLoc(Op), VT,
|
||||
DAG.getNode(ISD::FMUL, SDLoc(Op), VT, Arg,
|
||||
DAG.getConstantFP(0.5 / M_PI, VT)));
|
||||
|
||||
switch (Op.getOpcode()) {
|
||||
case ISD::FCOS:
|
||||
@@ -1419,7 +1417,7 @@ SDValue SITargetLowering::performSHLPtrCombine(SDNode *N,
|
||||
EVT VT = N->getValueType(0);
|
||||
|
||||
SDValue ShlX = DAG.getNode(ISD::SHL, SL, VT, N0.getOperand(0), N1);
|
||||
SDValue COffset = DAG.getConstant(Offset, SL, MVT::i32);
|
||||
SDValue COffset = DAG.getConstant(Offset, MVT::i32);
|
||||
|
||||
return DAG.getNode(ISD::ADD, SL, VT, ShlX, COffset);
|
||||
}
|
||||
@@ -1468,9 +1466,8 @@ SDValue SITargetLowering::performAndCombine(SDNode *N,
|
||||
SIInstrFlags::P_INFINITY)) & 0x3ff) == Mask,
|
||||
"mask not equal");
|
||||
|
||||
SDLoc DL(N);
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, DL, MVT::i1,
|
||||
X, DAG.getConstant(Mask, DL, MVT::i32));
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, SDLoc(N), MVT::i1,
|
||||
X, DAG.getConstant(Mask, MVT::i32));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1500,9 +1497,8 @@ SDValue SITargetLowering::performOrCombine(SDNode *N,
|
||||
static const uint32_t MaxMask = 0x3ff;
|
||||
|
||||
uint32_t NewMask = (CLHS->getZExtValue() | CRHS->getZExtValue()) & MaxMask;
|
||||
SDLoc DL(N);
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, DL, MVT::i1,
|
||||
Src, DAG.getConstant(NewMask, DL, MVT::i32));
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, SDLoc(N), MVT::i1,
|
||||
Src, DAG.getConstant(NewMask, MVT::i32));
|
||||
}
|
||||
|
||||
return SDValue();
|
||||
@@ -1516,7 +1512,7 @@ SDValue SITargetLowering::performClassCombine(SDNode *N,
|
||||
// fp_class x, 0 -> false
|
||||
if (const ConstantSDNode *CMask = dyn_cast<ConstantSDNode>(Mask)) {
|
||||
if (CMask->isNullValue())
|
||||
return DAG.getConstant(0, SDLoc(N), MVT::i1);
|
||||
return DAG.getConstant(0, MVT::i1);
|
||||
}
|
||||
|
||||
return SDValue();
|
||||
@@ -1600,8 +1596,8 @@ SDValue SITargetLowering::performSetCCCombine(SDNode *N,
|
||||
const APFloat &APF = CRHS->getValueAPF();
|
||||
if (APF.isInfinity() && !APF.isNegative()) {
|
||||
unsigned Mask = SIInstrFlags::P_INFINITY | SIInstrFlags::N_INFINITY;
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, SL, MVT::i1, LHS.getOperand(0),
|
||||
DAG.getConstant(Mask, SL, MVT::i32));
|
||||
return DAG.getNode(AMDGPUISD::FP_CLASS, SL, MVT::i1,
|
||||
LHS.getOperand(0), DAG.getConstant(Mask, MVT::i32));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1678,7 +1674,7 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
|
||||
if (LHS.getOpcode() == ISD::FADD) {
|
||||
SDValue A = LHS.getOperand(0);
|
||||
if (A == LHS.getOperand(1)) {
|
||||
const SDValue Two = DAG.getConstantFP(2.0, DL, MVT::f32);
|
||||
const SDValue Two = DAG.getConstantFP(2.0, MVT::f32);
|
||||
return DAG.getNode(ISD::FMAD, DL, VT, Two, A, RHS);
|
||||
}
|
||||
}
|
||||
@@ -1687,7 +1683,7 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
|
||||
if (RHS.getOpcode() == ISD::FADD) {
|
||||
SDValue A = RHS.getOperand(0);
|
||||
if (A == RHS.getOperand(1)) {
|
||||
const SDValue Two = DAG.getConstantFP(2.0, DL, MVT::f32);
|
||||
const SDValue Two = DAG.getConstantFP(2.0, MVT::f32);
|
||||
return DAG.getNode(ISD::FMAD, DL, VT, Two, A, LHS);
|
||||
}
|
||||
}
|
||||
@@ -1714,7 +1710,7 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
|
||||
|
||||
SDValue A = LHS.getOperand(0);
|
||||
if (A == LHS.getOperand(1)) {
|
||||
const SDValue Two = DAG.getConstantFP(2.0, DL, MVT::f32);
|
||||
const SDValue Two = DAG.getConstantFP(2.0, MVT::f32);
|
||||
SDValue NegRHS = DAG.getNode(ISD::FNEG, DL, VT, RHS);
|
||||
|
||||
return DAG.getNode(ISD::FMAD, DL, VT, Two, A, NegRHS);
|
||||
@@ -1726,7 +1722,7 @@ SDValue SITargetLowering::PerformDAGCombine(SDNode *N,
|
||||
|
||||
SDValue A = RHS.getOperand(0);
|
||||
if (A == RHS.getOperand(1)) {
|
||||
const SDValue NegTwo = DAG.getConstantFP(-2.0, DL, MVT::f32);
|
||||
const SDValue NegTwo = DAG.getConstantFP(-2.0, MVT::f32);
|
||||
return DAG.getNode(ISD::FMAD, DL, VT, NegTwo, A, LHS);
|
||||
}
|
||||
}
|
||||
@@ -1869,15 +1865,14 @@ void SITargetLowering::adjustWritemask(MachineSDNode *&Node,
|
||||
|
||||
// Adjust the writemask in the node
|
||||
std::vector<SDValue> Ops;
|
||||
Ops.push_back(DAG.getTargetConstant(NewDmask, SDLoc(Node), MVT::i32));
|
||||
Ops.push_back(DAG.getTargetConstant(NewDmask, MVT::i32));
|
||||
Ops.insert(Ops.end(), Node->op_begin() + 1, Node->op_end());
|
||||
Node = (MachineSDNode*)DAG.UpdateNodeOperands(Node, Ops);
|
||||
|
||||
// If we only got one lane, replace it with a copy
|
||||
// (if NewDmask has only one bit set...)
|
||||
if (NewDmask && (NewDmask & (NewDmask-1)) == 0) {
|
||||
SDValue RC = DAG.getTargetConstant(AMDGPU::VGPR_32RegClassID, SDLoc(),
|
||||
MVT::i32);
|
||||
SDValue RC = DAG.getTargetConstant(AMDGPU::VGPR_32RegClassID, MVT::i32);
|
||||
SDNode *Copy = DAG.getMachineNode(TargetOpcode::COPY_TO_REGCLASS,
|
||||
SDLoc(), Users[Lane]->getValueType(0),
|
||||
SDValue(Node, 0), RC);
|
||||
@@ -1892,7 +1887,7 @@ void SITargetLowering::adjustWritemask(MachineSDNode *&Node,
|
||||
if (!User)
|
||||
continue;
|
||||
|
||||
SDValue Op = DAG.getTargetConstant(Idx, SDLoc(User), MVT::i32);
|
||||
SDValue Op = DAG.getTargetConstant(Idx, MVT::i32);
|
||||
DAG.UpdateNodeOperands(User, User->getOperand(0), Op);
|
||||
|
||||
switch (Idx) {
|
||||
@@ -1987,7 +1982,7 @@ void SITargetLowering::AdjustInstrPostInstrSelection(MachineInstr *MI,
|
||||
}
|
||||
|
||||
static SDValue buildSMovImm32(SelectionDAG &DAG, SDLoc DL, uint64_t Val) {
|
||||
SDValue K = DAG.getTargetConstant(Val, DL, MVT::i32);
|
||||
SDValue K = DAG.getTargetConstant(Val, MVT::i32);
|
||||
return SDValue(DAG.getMachineNode(AMDGPU::S_MOV_B32, DL, MVT::i32, K), 0);
|
||||
}
|
||||
|
||||
@@ -2002,11 +1997,11 @@ MachineSDNode *SITargetLowering::wrapAddr64Rsrc(SelectionDAG &DAG,
|
||||
|
||||
// Build the half of the subregister with the constants.
|
||||
const SDValue Ops0[] = {
|
||||
DAG.getTargetConstant(AMDGPU::SGPR_64RegClassID, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::SGPR_64RegClassID, MVT::i32),
|
||||
buildSMovImm32(DAG, DL, 0),
|
||||
DAG.getTargetConstant(AMDGPU::sub0, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::sub0, MVT::i32),
|
||||
buildSMovImm32(DAG, DL, TII->getDefaultRsrcDataFormat() >> 32),
|
||||
DAG.getTargetConstant(AMDGPU::sub1, DL, MVT::i32)
|
||||
DAG.getTargetConstant(AMDGPU::sub1, MVT::i32)
|
||||
};
|
||||
|
||||
SDValue SubRegHi = SDValue(DAG.getMachineNode(AMDGPU::REG_SEQUENCE, DL,
|
||||
@@ -2014,11 +2009,11 @@ MachineSDNode *SITargetLowering::wrapAddr64Rsrc(SelectionDAG &DAG,
|
||||
|
||||
// Combine the constants and the pointer.
|
||||
const SDValue Ops1[] = {
|
||||
DAG.getTargetConstant(AMDGPU::SReg_128RegClassID, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::SReg_128RegClassID, MVT::i32),
|
||||
Ptr,
|
||||
DAG.getTargetConstant(AMDGPU::sub0_sub1, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::sub0_sub1, MVT::i32),
|
||||
SubRegHi,
|
||||
DAG.getTargetConstant(AMDGPU::sub2_sub3, DL, MVT::i32)
|
||||
DAG.getTargetConstant(AMDGPU::sub2_sub3, MVT::i32)
|
||||
};
|
||||
|
||||
return DAG.getMachineNode(AMDGPU::REG_SEQUENCE, DL, MVT::v4i32, Ops1);
|
||||
@@ -2051,8 +2046,7 @@ MachineSDNode *SITargetLowering::buildRSRC(SelectionDAG &DAG,
|
||||
SDValue PtrHi = DAG.getTargetExtractSubreg(AMDGPU::sub1, DL, MVT::i32, Ptr);
|
||||
if (RsrcDword1) {
|
||||
PtrHi = SDValue(DAG.getMachineNode(AMDGPU::S_OR_B32, DL, MVT::i32, PtrHi,
|
||||
DAG.getConstant(RsrcDword1, DL, MVT::i32)),
|
||||
0);
|
||||
DAG.getConstant(RsrcDword1, MVT::i32)), 0);
|
||||
}
|
||||
|
||||
SDValue DataLo = buildSMovImm32(DAG, DL,
|
||||
@@ -2060,15 +2054,15 @@ MachineSDNode *SITargetLowering::buildRSRC(SelectionDAG &DAG,
|
||||
SDValue DataHi = buildSMovImm32(DAG, DL, RsrcDword2And3 >> 32);
|
||||
|
||||
const SDValue Ops[] = {
|
||||
DAG.getTargetConstant(AMDGPU::SReg_128RegClassID, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::SReg_128RegClassID, MVT::i32),
|
||||
PtrLo,
|
||||
DAG.getTargetConstant(AMDGPU::sub0, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::sub0, MVT::i32),
|
||||
PtrHi,
|
||||
DAG.getTargetConstant(AMDGPU::sub1, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::sub1, MVT::i32),
|
||||
DataLo,
|
||||
DAG.getTargetConstant(AMDGPU::sub2, DL, MVT::i32),
|
||||
DAG.getTargetConstant(AMDGPU::sub2, MVT::i32),
|
||||
DataHi,
|
||||
DAG.getTargetConstant(AMDGPU::sub3, DL, MVT::i32)
|
||||
DAG.getTargetConstant(AMDGPU::sub3, MVT::i32)
|
||||
};
|
||||
|
||||
return DAG.getMachineNode(AMDGPU::REG_SEQUENCE, DL, MVT::v4i32, Ops);
|
||||
|
||||
Reference in New Issue
Block a user