mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 01:24:30 +00:00
Track IR ordering of SelectionDAG nodes 2/4.
Change SelectionDAG::getXXXNode() interfaces as well as call sites of these functions to pass in SDLoc instead of DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182703 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1235,7 +1235,7 @@ SDValue
|
||||
ARMTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
|
||||
CallingConv::ID CallConv, bool isVarArg,
|
||||
const SmallVectorImpl<ISD::InputArg> &Ins,
|
||||
DebugLoc dl, SelectionDAG &DAG,
|
||||
SDLoc dl, SelectionDAG &DAG,
|
||||
SmallVectorImpl<SDValue> &InVals,
|
||||
bool isThisReturn, SDValue ThisVal) const {
|
||||
|
||||
@ -1316,7 +1316,7 @@ ARMTargetLowering::LowerCallResult(SDValue Chain, SDValue InFlag,
|
||||
SDValue
|
||||
ARMTargetLowering::LowerMemOpCallTo(SDValue Chain,
|
||||
SDValue StackPtr, SDValue Arg,
|
||||
DebugLoc dl, SelectionDAG &DAG,
|
||||
SDLoc dl, SelectionDAG &DAG,
|
||||
const CCValAssign &VA,
|
||||
ISD::ArgFlagsTy Flags) const {
|
||||
unsigned LocMemOffset = VA.getLocMemOffset();
|
||||
@ -1327,7 +1327,7 @@ ARMTargetLowering::LowerMemOpCallTo(SDValue Chain,
|
||||
false, false, 0);
|
||||
}
|
||||
|
||||
void ARMTargetLowering::PassF64ArgInRegs(DebugLoc dl, SelectionDAG &DAG,
|
||||
void ARMTargetLowering::PassF64ArgInRegs(SDLoc dl, SelectionDAG &DAG,
|
||||
SDValue Chain, SDValue &Arg,
|
||||
RegsToPassVector &RegsToPass,
|
||||
CCValAssign &VA, CCValAssign &NextVA,
|
||||
@ -1359,7 +1359,7 @@ SDValue
|
||||
ARMTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
||||
SmallVectorImpl<SDValue> &InVals) const {
|
||||
SelectionDAG &DAG = CLI.DAG;
|
||||
DebugLoc &dl = CLI.DL;
|
||||
SDLoc &dl = CLI.DL;
|
||||
SmallVector<ISD::OutputArg, 32> &Outs = CLI.Outs;
|
||||
SmallVector<SDValue, 32> &OutVals = CLI.OutVals;
|
||||
SmallVector<ISD::InputArg, 32> &Ins = CLI.Ins;
|
||||
@ -2021,7 +2021,7 @@ ARMTargetLowering::LowerReturn(SDValue Chain,
|
||||
CallingConv::ID CallConv, bool isVarArg,
|
||||
const SmallVectorImpl<ISD::OutputArg> &Outs,
|
||||
const SmallVectorImpl<SDValue> &OutVals,
|
||||
DebugLoc dl, SelectionDAG &DAG) const {
|
||||
SDLoc dl, SelectionDAG &DAG) const {
|
||||
|
||||
// CCValAssign - represent the assignment of the return value to a location.
|
||||
SmallVector<CCValAssign, 16> RVLocs;
|
||||
@ -2188,7 +2188,7 @@ bool ARMTargetLowering::mayBeEmittedAsTailCall(CallInst *CI) const {
|
||||
static SDValue LowerConstantPool(SDValue Op, SelectionDAG &DAG) {
|
||||
EVT PtrVT = Op.getValueType();
|
||||
// FIXME there is no actual debug info here
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
ConstantPoolSDNode *CP = cast<ConstantPoolSDNode>(Op);
|
||||
SDValue Res;
|
||||
if (CP->isMachineConstantPoolEntry())
|
||||
@ -2209,7 +2209,7 @@ SDValue ARMTargetLowering::LowerBlockAddress(SDValue Op,
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
unsigned ARMPCLabelIndex = 0;
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
EVT PtrVT = getPointerTy();
|
||||
const BlockAddress *BA = cast<BlockAddressSDNode>(Op)->getBlockAddress();
|
||||
Reloc::Model RelocM = getTargetMachine().getRelocationModel();
|
||||
@ -2238,7 +2238,7 @@ SDValue ARMTargetLowering::LowerBlockAddress(SDValue Op,
|
||||
SDValue
|
||||
ARMTargetLowering::LowerToTLSGeneralDynamicModel(GlobalAddressSDNode *GA,
|
||||
SelectionDAG &DAG) const {
|
||||
DebugLoc dl = GA->getDebugLoc();
|
||||
SDLoc dl(GA);
|
||||
EVT PtrVT = getPointerTy();
|
||||
unsigned char PCAdj = Subtarget->isThumb() ? 4 : 8;
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
@ -2281,7 +2281,7 @@ ARMTargetLowering::LowerToTLSExecModels(GlobalAddressSDNode *GA,
|
||||
SelectionDAG &DAG,
|
||||
TLSModel::Model model) const {
|
||||
const GlobalValue *GV = GA->getGlobal();
|
||||
DebugLoc dl = GA->getDebugLoc();
|
||||
SDLoc dl(GA);
|
||||
SDValue Offset;
|
||||
SDValue Chain = DAG.getEntryNode();
|
||||
EVT PtrVT = getPointerTy();
|
||||
@ -2351,7 +2351,7 @@ ARMTargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue ARMTargetLowering::LowerGlobalAddressELF(SDValue Op,
|
||||
SelectionDAG &DAG) const {
|
||||
EVT PtrVT = getPointerTy();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
if (getTargetMachine().getRelocationModel() == Reloc::PIC_) {
|
||||
bool UseGOTOFF = GV->hasLocalLinkage() || GV->hasHiddenVisibility();
|
||||
@ -2394,7 +2394,7 @@ SDValue ARMTargetLowering::LowerGlobalAddressELF(SDValue Op,
|
||||
SDValue ARMTargetLowering::LowerGlobalAddressDarwin(SDValue Op,
|
||||
SelectionDAG &DAG) const {
|
||||
EVT PtrVT = getPointerTy();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
Reloc::Model RelocM = getTargetMachine().getRelocationModel();
|
||||
|
||||
@ -2459,7 +2459,7 @@ SDValue ARMTargetLowering::LowerGLOBAL_OFFSET_TABLE(SDValue Op,
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
unsigned ARMPCLabelIndex = AFI->createPICLabelUId();
|
||||
EVT PtrVT = getPointerTy();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
unsigned PCAdj = Subtarget->isThumb() ? 4 : 8;
|
||||
ARMConstantPoolValue *CPV =
|
||||
ARMConstantPoolSymbol::Create(*DAG.getContext(), "_GLOBAL_OFFSET_TABLE_",
|
||||
@ -2475,7 +2475,7 @@ SDValue ARMTargetLowering::LowerGLOBAL_OFFSET_TABLE(SDValue Op,
|
||||
|
||||
SDValue
|
||||
ARMTargetLowering::LowerEH_SJLJ_SETJMP(SDValue Op, SelectionDAG &DAG) const {
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue Val = DAG.getConstant(0, MVT::i32);
|
||||
return DAG.getNode(ARMISD::EH_SJLJ_SETJMP, dl,
|
||||
DAG.getVTList(MVT::i32, MVT::Other), Op.getOperand(0),
|
||||
@ -2484,7 +2484,7 @@ ARMTargetLowering::LowerEH_SJLJ_SETJMP(SDValue Op, SelectionDAG &DAG) const {
|
||||
|
||||
SDValue
|
||||
ARMTargetLowering::LowerEH_SJLJ_LONGJMP(SDValue Op, SelectionDAG &DAG) const {
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
return DAG.getNode(ARMISD::EH_SJLJ_LONGJMP, dl, MVT::Other, Op.getOperand(0),
|
||||
Op.getOperand(1), DAG.getConstant(0, MVT::i32));
|
||||
}
|
||||
@ -2493,7 +2493,7 @@ SDValue
|
||||
ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,
|
||||
const ARMSubtarget *Subtarget) const {
|
||||
unsigned IntNo = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
switch (IntNo) {
|
||||
default: return SDValue(); // Don't custom lower most intrinsics.
|
||||
case Intrinsic::arm_thread_pointer: {
|
||||
@ -2529,7 +2529,7 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,
|
||||
case Intrinsic::arm_neon_vmullu: {
|
||||
unsigned NewOpc = (IntNo == Intrinsic::arm_neon_vmulls)
|
||||
? ARMISD::VMULLs : ARMISD::VMULLu;
|
||||
return DAG.getNode(NewOpc, Op.getDebugLoc(), Op.getValueType(),
|
||||
return DAG.getNode(NewOpc, SDLoc(Op), Op.getValueType(),
|
||||
Op.getOperand(1), Op.getOperand(2));
|
||||
}
|
||||
}
|
||||
@ -2538,7 +2538,7 @@ ARMTargetLowering::LowerINTRINSIC_WO_CHAIN(SDValue Op, SelectionDAG &DAG,
|
||||
static SDValue LowerATOMIC_FENCE(SDValue Op, SelectionDAG &DAG,
|
||||
const ARMSubtarget *Subtarget) {
|
||||
// FIXME: handle "fence singlethread" more efficiently.
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
if (!Subtarget->hasDataBarrier()) {
|
||||
// Some ARMv6 cpus can support data barriers with an mcr instruction.
|
||||
// Thumb1 and pre-v6 ARM mode use a libcall instead and should never get
|
||||
@ -2561,7 +2561,7 @@ static SDValue LowerPREFETCH(SDValue Op, SelectionDAG &DAG,
|
||||
// Just preserve the chain.
|
||||
return Op.getOperand(0);
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
unsigned isRead = ~cast<ConstantSDNode>(Op.getOperand(2))->getZExtValue() & 1;
|
||||
if (!isRead &&
|
||||
(!Subtarget->hasV7Ops() || !Subtarget->hasMPExtension()))
|
||||
@ -2586,7 +2586,7 @@ static SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG) {
|
||||
|
||||
// vastart just stores the address of the VarArgsFrameIndex slot into the
|
||||
// memory location argument.
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
EVT PtrVT = DAG.getTargetLoweringInfo().getPointerTy();
|
||||
SDValue FR = DAG.getFrameIndex(FuncInfo->getVarArgsFrameIndex(), PtrVT);
|
||||
const Value *SV = cast<SrcValueSDNode>(Op.getOperand(2))->getValue();
|
||||
@ -2597,7 +2597,7 @@ static SDValue LowerVASTART(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue
|
||||
ARMTargetLowering::GetF64FormalArgument(CCValAssign &VA, CCValAssign &NextVA,
|
||||
SDValue &Root, SelectionDAG &DAG,
|
||||
DebugLoc dl) const {
|
||||
SDLoc dl) const {
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
ARMFunctionInfo *AFI = MF.getInfo<ARMFunctionInfo>();
|
||||
|
||||
@ -2686,7 +2686,7 @@ ARMTargetLowering::computeRegArea(CCState &CCInfo, MachineFunction &MF,
|
||||
// Return: The frame index registers were stored into.
|
||||
int
|
||||
ARMTargetLowering::StoreByValRegs(CCState &CCInfo, SelectionDAG &DAG,
|
||||
DebugLoc dl, SDValue &Chain,
|
||||
SDLoc dl, SDValue &Chain,
|
||||
const Value *OrigArg,
|
||||
unsigned InRegsParamRecordIdx,
|
||||
unsigned OffsetFromOrigArg,
|
||||
@ -2779,7 +2779,7 @@ ARMTargetLowering::StoreByValRegs(CCState &CCInfo, SelectionDAG &DAG,
|
||||
// Setup stack frame, the va_list pointer will start from.
|
||||
void
|
||||
ARMTargetLowering::VarArgStyleRegisters(CCState &CCInfo, SelectionDAG &DAG,
|
||||
DebugLoc dl, SDValue &Chain,
|
||||
SDLoc dl, SDValue &Chain,
|
||||
unsigned ArgOffset,
|
||||
bool ForceMutable) const {
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
@ -2802,7 +2802,7 @@ ARMTargetLowering::LowerFormalArguments(SDValue Chain,
|
||||
CallingConv::ID CallConv, bool isVarArg,
|
||||
const SmallVectorImpl<ISD::InputArg>
|
||||
&Ins,
|
||||
DebugLoc dl, SelectionDAG &DAG,
|
||||
SDLoc dl, SelectionDAG &DAG,
|
||||
SmallVectorImpl<SDValue> &InVals)
|
||||
const {
|
||||
MachineFunction &MF = DAG.getMachineFunction();
|
||||
@ -2982,7 +2982,7 @@ static bool isFloatingPointZero(SDValue Op) {
|
||||
SDValue
|
||||
ARMTargetLowering::getARMCmp(SDValue LHS, SDValue RHS, ISD::CondCode CC,
|
||||
SDValue &ARMcc, SelectionDAG &DAG,
|
||||
DebugLoc dl) const {
|
||||
SDLoc dl) const {
|
||||
if (ConstantSDNode *RHSC = dyn_cast<ConstantSDNode>(RHS.getNode())) {
|
||||
unsigned C = RHSC->getZExtValue();
|
||||
if (!isLegalICmpImmediate(C)) {
|
||||
@ -3040,7 +3040,7 @@ ARMTargetLowering::getARMCmp(SDValue LHS, SDValue RHS, ISD::CondCode CC,
|
||||
/// Returns a appropriate VFP CMP (fcmp{s|d}+fmstat) for the given operands.
|
||||
SDValue
|
||||
ARMTargetLowering::getVFPCmp(SDValue LHS, SDValue RHS, SelectionDAG &DAG,
|
||||
DebugLoc dl) const {
|
||||
SDLoc dl) const {
|
||||
SDValue Cmp;
|
||||
if (!isFloatingPointZero(RHS))
|
||||
Cmp = DAG.getNode(ARMISD::CMPFP, dl, MVT::Glue, LHS, RHS);
|
||||
@ -3054,7 +3054,7 @@ ARMTargetLowering::getVFPCmp(SDValue LHS, SDValue RHS, SelectionDAG &DAG,
|
||||
SDValue
|
||||
ARMTargetLowering::duplicateCmp(SDValue Cmp, SelectionDAG &DAG) const {
|
||||
unsigned Opc = Cmp.getOpcode();
|
||||
DebugLoc DL = Cmp.getDebugLoc();
|
||||
SDLoc DL(Cmp);
|
||||
if (Opc == ARMISD::CMP || Opc == ARMISD::CMPZ)
|
||||
return DAG.getNode(Opc, DL, MVT::Glue, Cmp.getOperand(0),Cmp.getOperand(1));
|
||||
|
||||
@ -3074,7 +3074,7 @@ SDValue ARMTargetLowering::LowerSELECT(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue Cond = Op.getOperand(0);
|
||||
SDValue SelectTrue = Op.getOperand(1);
|
||||
SDValue SelectFalse = Op.getOperand(2);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
// Convert:
|
||||
//
|
||||
@ -3129,7 +3129,7 @@ SDValue ARMTargetLowering::LowerSELECT_CC(SDValue Op, SelectionDAG &DAG) const {
|
||||
ISD::CondCode CC = cast<CondCodeSDNode>(Op.getOperand(4))->get();
|
||||
SDValue TrueVal = Op.getOperand(2);
|
||||
SDValue FalseVal = Op.getOperand(3);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (LHS.getValueType() == MVT::i32) {
|
||||
SDValue ARMcc;
|
||||
@ -3184,7 +3184,7 @@ static SDValue bitcastf32Toi32(SDValue Op, SelectionDAG &DAG) {
|
||||
return DAG.getConstant(0, MVT::i32);
|
||||
|
||||
if (LoadSDNode *Ld = dyn_cast<LoadSDNode>(Op))
|
||||
return DAG.getLoad(MVT::i32, Op.getDebugLoc(),
|
||||
return DAG.getLoad(MVT::i32, SDLoc(Op),
|
||||
Ld->getChain(), Ld->getBasePtr(), Ld->getPointerInfo(),
|
||||
Ld->isVolatile(), Ld->isNonTemporal(),
|
||||
Ld->isInvariant(), Ld->getAlignment());
|
||||
@ -3202,7 +3202,7 @@ static void expandf64Toi32(SDValue Op, SelectionDAG &DAG,
|
||||
|
||||
if (LoadSDNode *Ld = dyn_cast<LoadSDNode>(Op)) {
|
||||
SDValue Ptr = Ld->getBasePtr();
|
||||
RetVal1 = DAG.getLoad(MVT::i32, Op.getDebugLoc(),
|
||||
RetVal1 = DAG.getLoad(MVT::i32, SDLoc(Op),
|
||||
Ld->getChain(), Ptr,
|
||||
Ld->getPointerInfo(),
|
||||
Ld->isVolatile(), Ld->isNonTemporal(),
|
||||
@ -3210,9 +3210,9 @@ static void expandf64Toi32(SDValue Op, SelectionDAG &DAG,
|
||||
|
||||
EVT PtrType = Ptr.getValueType();
|
||||
unsigned NewAlign = MinAlign(Ld->getAlignment(), 4);
|
||||
SDValue NewPtr = DAG.getNode(ISD::ADD, Op.getDebugLoc(),
|
||||
SDValue NewPtr = DAG.getNode(ISD::ADD, SDLoc(Op),
|
||||
PtrType, Ptr, DAG.getConstant(4, PtrType));
|
||||
RetVal2 = DAG.getLoad(MVT::i32, Op.getDebugLoc(),
|
||||
RetVal2 = DAG.getLoad(MVT::i32, SDLoc(Op),
|
||||
Ld->getChain(), NewPtr,
|
||||
Ld->getPointerInfo().getWithOffset(4),
|
||||
Ld->isVolatile(), Ld->isNonTemporal(),
|
||||
@ -3232,7 +3232,7 @@ ARMTargetLowering::OptimizeVFPBrcond(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue LHS = Op.getOperand(2);
|
||||
SDValue RHS = Op.getOperand(3);
|
||||
SDValue Dest = Op.getOperand(4);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
bool LHSSeenZero = false;
|
||||
bool LHSOk = canChangeToInt(LHS, LHSSeenZero, Subtarget);
|
||||
@ -3282,7 +3282,7 @@ SDValue ARMTargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue LHS = Op.getOperand(2);
|
||||
SDValue RHS = Op.getOperand(3);
|
||||
SDValue Dest = Op.getOperand(4);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (LHS.getValueType() == MVT::i32) {
|
||||
SDValue ARMcc;
|
||||
@ -3323,7 +3323,7 @@ SDValue ARMTargetLowering::LowerBR_JT(SDValue Op, SelectionDAG &DAG) const {
|
||||
SDValue Chain = Op.getOperand(0);
|
||||
SDValue Table = Op.getOperand(1);
|
||||
SDValue Index = Op.getOperand(2);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
EVT PTy = getPointerTy();
|
||||
JumpTableSDNode *JT = cast<JumpTableSDNode>(Table);
|
||||
@ -3359,7 +3359,7 @@ SDValue ARMTargetLowering::LowerBR_JT(SDValue Op, SelectionDAG &DAG) const {
|
||||
|
||||
static SDValue LowerVectorFP_TO_INT(SDValue Op, SelectionDAG &DAG) {
|
||||
EVT VT = Op.getValueType();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (Op.getValueType().getVectorElementType() == MVT::i32) {
|
||||
if (Op.getOperand(0).getValueType().getVectorElementType() == MVT::f32)
|
||||
@ -3381,7 +3381,7 @@ static SDValue LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG) {
|
||||
if (VT.isVector())
|
||||
return LowerVectorFP_TO_INT(Op, DAG);
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
unsigned Opc;
|
||||
|
||||
switch (Op.getOpcode()) {
|
||||
@ -3399,7 +3399,7 @@ static SDValue LowerFP_TO_INT(SDValue Op, SelectionDAG &DAG) {
|
||||
|
||||
static SDValue LowerVectorINT_TO_FP(SDValue Op, SelectionDAG &DAG) {
|
||||
EVT VT = Op.getValueType();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (Op.getOperand(0).getValueType().getVectorElementType() == MVT::i32) {
|
||||
if (VT.getVectorElementType() == MVT::f32)
|
||||
@ -3435,7 +3435,7 @@ static SDValue LowerINT_TO_FP(SDValue Op, SelectionDAG &DAG) {
|
||||
if (VT.isVector())
|
||||
return LowerVectorINT_TO_FP(Op, DAG);
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
unsigned Opc;
|
||||
|
||||
switch (Op.getOpcode()) {
|
||||
@ -3456,7 +3456,7 @@ SDValue ARMTargetLowering::LowerFCOPYSIGN(SDValue Op, SelectionDAG &DAG) const {
|
||||
// Implement fcopysign with a fabs and a conditional fneg.
|
||||
SDValue Tmp0 = Op.getOperand(0);
|
||||
SDValue Tmp1 = Op.getOperand(1);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
EVT VT = Op.getValueType();
|
||||
EVT SrcVT = Tmp1.getValueType();
|
||||
bool InGPR = Tmp0.getOpcode() == ISD::BITCAST ||
|
||||
@ -3540,7 +3540,7 @@ SDValue ARMTargetLowering::LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const{
|
||||
MFI->setReturnAddressIsTaken(true);
|
||||
|
||||
EVT VT = Op.getValueType();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
unsigned Depth = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
|
||||
if (Depth) {
|
||||
SDValue FrameAddr = LowerFRAMEADDR(Op, DAG);
|
||||
@ -3560,7 +3560,7 @@ SDValue ARMTargetLowering::LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const {
|
||||
MFI->setFrameAddressIsTaken(true);
|
||||
|
||||
EVT VT = Op.getValueType();
|
||||
DebugLoc dl = Op.getDebugLoc(); // FIXME probably not meaningful
|
||||
SDLoc dl(Op); // FIXME probably not meaningful
|
||||
unsigned Depth = cast<ConstantSDNode>(Op.getOperand(0))->getZExtValue();
|
||||
unsigned FrameReg = (Subtarget->isThumb() || Subtarget->isTargetDarwin())
|
||||
? ARM::R7 : ARM::R11;
|
||||
@ -3589,7 +3589,7 @@ static SDValue ExpandVectorExtension(SDNode *N, SelectionDAG &DAG) {
|
||||
SrcVT.getSizeInBits()*8 != DestVT.getSizeInBits())
|
||||
return SDValue();
|
||||
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
unsigned SrcEltSize = SrcVT.getVectorElementType().getSizeInBits();
|
||||
unsigned DestEltSize = DestVT.getVectorElementType().getSizeInBits();
|
||||
unsigned NumElts = SrcVT.getVectorNumElements();
|
||||
@ -3620,7 +3620,7 @@ static SDValue ExpandVectorExtension(SDNode *N, SelectionDAG &DAG) {
|
||||
/// vectors), since the legalizer won't know what to do with that.
|
||||
static SDValue ExpandBITCAST(SDNode *N, SelectionDAG &DAG) {
|
||||
const TargetLowering &TLI = DAG.getTargetLoweringInfo();
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
SDValue Op = N->getOperand(0);
|
||||
|
||||
// This function is only supposed to be called for i64 types, either as the
|
||||
@ -3657,7 +3657,7 @@ static SDValue ExpandBITCAST(SDNode *N, SelectionDAG &DAG) {
|
||||
/// not support i64 elements, so sometimes the zero vectors will need to be
|
||||
/// explicitly constructed. Regardless, use a canonical VMOV to create the
|
||||
/// zero vector.
|
||||
static SDValue getZeroVector(EVT VT, SelectionDAG &DAG, DebugLoc dl) {
|
||||
static SDValue getZeroVector(EVT VT, SelectionDAG &DAG, SDLoc dl) {
|
||||
assert(VT.isVector() && "Expected a vector type");
|
||||
// The canonical modified immediate encoding of a zero vector is....0!
|
||||
SDValue EncodedVal = DAG.getTargetConstant(0, MVT::i32);
|
||||
@ -3673,7 +3673,7 @@ SDValue ARMTargetLowering::LowerShiftRightParts(SDValue Op,
|
||||
assert(Op.getNumOperands() == 3 && "Not a double-shift!");
|
||||
EVT VT = Op.getValueType();
|
||||
unsigned VTBits = VT.getSizeInBits();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue ShOpLo = Op.getOperand(0);
|
||||
SDValue ShOpHi = Op.getOperand(1);
|
||||
SDValue ShAmt = Op.getOperand(2);
|
||||
@ -3709,7 +3709,7 @@ SDValue ARMTargetLowering::LowerShiftLeftParts(SDValue Op,
|
||||
assert(Op.getNumOperands() == 3 && "Not a double-shift!");
|
||||
EVT VT = Op.getValueType();
|
||||
unsigned VTBits = VT.getSizeInBits();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue ShOpLo = Op.getOperand(0);
|
||||
SDValue ShOpHi = Op.getOperand(1);
|
||||
SDValue ShAmt = Op.getOperand(2);
|
||||
@ -3742,7 +3742,7 @@ SDValue ARMTargetLowering::LowerFLT_ROUNDS_(SDValue Op,
|
||||
// The ARM rounding mode value to FLT_ROUNDS mapping is 0->1, 1->2, 2->3, 3->0
|
||||
// The formula we use to implement this is (((FPSCR + 1 << 22) >> 22) & 3)
|
||||
// so that the shift + and get folded into a bitfield extract.
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue FPSCR = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, dl, MVT::i32,
|
||||
DAG.getConstant(Intrinsic::arm_get_fpscr,
|
||||
MVT::i32));
|
||||
@ -3757,7 +3757,7 @@ SDValue ARMTargetLowering::LowerFLT_ROUNDS_(SDValue Op,
|
||||
static SDValue LowerCTTZ(SDNode *N, SelectionDAG &DAG,
|
||||
const ARMSubtarget *ST) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
|
||||
if (!ST->hasV6T2Ops())
|
||||
return SDValue();
|
||||
@ -3781,7 +3781,7 @@ static SDValue LowerCTTZ(SDNode *N, SelectionDAG &DAG,
|
||||
/// vuzp: = [k0 k1 k2 k3 k0 k1 k2 k3] each ki is 8-bits)
|
||||
static SDValue getCTPOP16BitCounts(SDNode *N, SelectionDAG &DAG) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
|
||||
EVT VT8Bit = VT.is64BitVector() ? MVT::v8i8 : MVT::v16i8;
|
||||
SDValue N0 = DAG.getNode(ISD::BITCAST, DL, VT8Bit, N->getOperand(0));
|
||||
@ -3803,7 +3803,7 @@ static SDValue getCTPOP16BitCounts(SDNode *N, SelectionDAG &DAG) {
|
||||
/// v4i16:Extracted = [k0 k1 k2 k3 ]
|
||||
static SDValue lowerCTPOP16BitElements(SDNode *N, SelectionDAG &DAG) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
|
||||
SDValue BitCounts = getCTPOP16BitCounts(N, DAG);
|
||||
if (VT.is64BitVector()) {
|
||||
@ -3838,7 +3838,7 @@ static SDValue lowerCTPOP16BitElements(SDNode *N, SelectionDAG &DAG) {
|
||||
///
|
||||
static SDValue lowerCTPOP32BitElements(SDNode *N, SelectionDAG &DAG) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
|
||||
EVT VT16Bit = VT.is64BitVector() ? MVT::v4i16 : MVT::v8i16;
|
||||
|
||||
@ -3877,7 +3877,7 @@ static SDValue LowerCTPOP(SDNode *N, SelectionDAG &DAG,
|
||||
static SDValue LowerShift(SDNode *N, SelectionDAG &DAG,
|
||||
const ARMSubtarget *ST) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
|
||||
if (!VT.isVector())
|
||||
return SDValue();
|
||||
@ -3912,7 +3912,7 @@ static SDValue LowerShift(SDNode *N, SelectionDAG &DAG,
|
||||
static SDValue Expand64BitShift(SDNode *N, SelectionDAG &DAG,
|
||||
const ARMSubtarget *ST) {
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
|
||||
// We can get here for a node like i32 = ISD::SHL i32, i64
|
||||
if (VT != MVT::i64)
|
||||
@ -3958,7 +3958,7 @@ static SDValue LowerVSETCC(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue CC = Op.getOperand(2);
|
||||
EVT VT = Op.getValueType();
|
||||
ISD::CondCode SetCCOpcode = cast<CondCodeSDNode>(CC)->get();
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
|
||||
if (Op.getOperand(1).getValueType().isFloatingPoint()) {
|
||||
switch (SetCCOpcode) {
|
||||
@ -4227,7 +4227,7 @@ SDValue ARMTargetLowering::LowerConstantFP(SDValue Op, SelectionDAG &DAG,
|
||||
APFloat FPVal = CFP->getValueAPF();
|
||||
int ImmVal = ARM_AM::getFP32Imm(FPVal);
|
||||
if (ImmVal != -1) {
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
SDValue NewVal = DAG.getTargetConstant(ImmVal, MVT::i32);
|
||||
SDValue VecConstant = DAG.getNode(ARMISD::VMOVFPIMM, DL, MVT::v2f32,
|
||||
NewVal);
|
||||
@ -4241,7 +4241,7 @@ SDValue ARMTargetLowering::LowerConstantFP(SDValue Op, SelectionDAG &DAG,
|
||||
SDValue NewVal = isNEONModifiedImm(iVal, 0, 32, DAG, VMovVT, false,
|
||||
VMOVModImm);
|
||||
if (NewVal != SDValue()) {
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
SDValue VecConstant = DAG.getNode(ARMISD::VMOVIMM, DL, VMovVT,
|
||||
NewVal);
|
||||
SDValue VecFConstant = DAG.getNode(ISD::BITCAST, DL, MVT::v2f32,
|
||||
@ -4254,7 +4254,7 @@ SDValue ARMTargetLowering::LowerConstantFP(SDValue Op, SelectionDAG &DAG,
|
||||
NewVal = isNEONModifiedImm(~iVal & 0xffffffff, 0, 32, DAG, VMovVT, false,
|
||||
VMVNModImm);
|
||||
if (NewVal != SDValue()) {
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
SDValue VecConstant = DAG.getNode(ARMISD::VMVNIMM, DL, VMovVT, NewVal);
|
||||
SDValue VecFConstant = DAG.getNode(ISD::BITCAST, DL, MVT::v2f32,
|
||||
VecConstant);
|
||||
@ -4514,7 +4514,7 @@ static bool isReverseMask(ArrayRef<int> M, EVT VT) {
|
||||
// instruction, return an SDValue of such a constant (will become a MOV
|
||||
// instruction). Otherwise return null.
|
||||
static SDValue IsSingleInstrConstant(SDValue N, SelectionDAG &DAG,
|
||||
const ARMSubtarget *ST, DebugLoc dl) {
|
||||
const ARMSubtarget *ST, SDLoc dl) {
|
||||
uint64_t Val;
|
||||
if (!isa<ConstantSDNode>(N))
|
||||
return SDValue();
|
||||
@ -4535,7 +4535,7 @@ static SDValue IsSingleInstrConstant(SDValue N, SelectionDAG &DAG,
|
||||
SDValue ARMTargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
|
||||
const ARMSubtarget *ST) const {
|
||||
BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
EVT VT = Op.getValueType();
|
||||
|
||||
APInt SplatBits, SplatUndef;
|
||||
@ -4725,7 +4725,7 @@ SDValue ARMTargetLowering::LowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG,
|
||||
// shuffle in combination with VEXTs.
|
||||
SDValue ARMTargetLowering::ReconstructShuffle(SDValue Op,
|
||||
SelectionDAG &DAG) const {
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
EVT VT = Op.getValueType();
|
||||
unsigned NumElts = VT.getVectorNumElements();
|
||||
|
||||
@ -4914,7 +4914,7 @@ ARMTargetLowering::isShuffleMaskLegal(const SmallVectorImpl<int> &M,
|
||||
/// the specified operations to build the shuffle.
|
||||
static SDValue GeneratePerfectShuffle(unsigned PFEntry, SDValue LHS,
|
||||
SDValue RHS, SelectionDAG &DAG,
|
||||
DebugLoc dl) {
|
||||
SDLoc dl) {
|
||||
unsigned OpNum = (PFEntry >> 26) & 0x0F;
|
||||
unsigned LHSID = (PFEntry >> 13) & ((1 << 13)-1);
|
||||
unsigned RHSID = (PFEntry >> 0) & ((1 << 13)-1);
|
||||
@ -4994,7 +4994,7 @@ static SDValue LowerVECTOR_SHUFFLEv8i8(SDValue Op,
|
||||
// Check to see if we can use the VTBL instruction.
|
||||
SDValue V1 = Op.getOperand(0);
|
||||
SDValue V2 = Op.getOperand(1);
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
|
||||
SmallVector<SDValue, 8> VTBLMask;
|
||||
for (ArrayRef<int>::iterator
|
||||
@ -5013,7 +5013,7 @@ static SDValue LowerVECTOR_SHUFFLEv8i8(SDValue Op,
|
||||
|
||||
static SDValue LowerReverse_VECTOR_SHUFFLEv16i8_v8i16(SDValue Op,
|
||||
SelectionDAG &DAG) {
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
SDValue OpLHS = Op.getOperand(0);
|
||||
EVT VT = OpLHS.getValueType();
|
||||
|
||||
@ -5031,7 +5031,7 @@ static SDValue LowerReverse_VECTOR_SHUFFLEv16i8_v8i16(SDValue Op,
|
||||
static SDValue LowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue V1 = Op.getOperand(0);
|
||||
SDValue V2 = Op.getOperand(1);
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
EVT VT = Op.getValueType();
|
||||
ShuffleVectorSDNode *SVN = cast<ShuffleVectorSDNode>(Op.getNode());
|
||||
|
||||
@ -5195,7 +5195,7 @@ static SDValue LowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) {
|
||||
SDValue Vec = Op.getOperand(0);
|
||||
if (Op.getValueType() == MVT::i32 &&
|
||||
Vec.getValueType().getVectorElementType().getSizeInBits() < 32) {
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
return DAG.getNode(ARMISD::VGETLANEu, dl, MVT::i32, Vec, Lane);
|
||||
}
|
||||
|
||||
@ -5207,7 +5207,7 @@ static SDValue LowerCONCAT_VECTORS(SDValue Op, SelectionDAG &DAG) {
|
||||
// two 64-bit vectors are concatenated to a 128-bit vector.
|
||||
assert(Op.getValueType().is128BitVector() && Op.getNumOperands() == 2 &&
|
||||
"unexpected CONCAT_VECTORS");
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue Val = DAG.getUNDEF(MVT::v2f64);
|
||||
SDValue Op0 = Op.getOperand(0);
|
||||
SDValue Op1 = Op.getOperand(1);
|
||||
@ -5330,7 +5330,7 @@ static SDValue AddRequiredExtensionForVMULL(SDValue N, SelectionDAG &DAG,
|
||||
// Must extend size to at least 64 bits to be used as an operand for VMULL.
|
||||
EVT NewVT = getExtensionTo64Bits(OrigTy);
|
||||
|
||||
return DAG.getNode(ExtOpcode, N->getDebugLoc(), NewVT, N);
|
||||
return DAG.getNode(ExtOpcode, SDLoc(N), NewVT, N);
|
||||
}
|
||||
|
||||
/// SkipLoadExtensionForVMULL - return a load of the original vector size that
|
||||
@ -5343,7 +5343,7 @@ static SDValue SkipLoadExtensionForVMULL(LoadSDNode *LD, SelectionDAG& DAG) {
|
||||
|
||||
// The load already has the right type.
|
||||
if (ExtendedTy == LD->getMemoryVT())
|
||||
return DAG.getLoad(LD->getMemoryVT(), LD->getDebugLoc(), LD->getChain(),
|
||||
return DAG.getLoad(LD->getMemoryVT(), SDLoc(LD), LD->getChain(),
|
||||
LD->getBasePtr(), LD->getPointerInfo(), LD->isVolatile(),
|
||||
LD->isNonTemporal(), LD->isInvariant(),
|
||||
LD->getAlignment());
|
||||
@ -5351,7 +5351,7 @@ static SDValue SkipLoadExtensionForVMULL(LoadSDNode *LD, SelectionDAG& DAG) {
|
||||
// We need to create a zextload/sextload. We cannot just create a load
|
||||
// followed by a zext/zext node because LowerMUL is also run during normal
|
||||
// operation legalization where we can't create illegal types.
|
||||
return DAG.getExtLoad(LD->getExtensionType(), LD->getDebugLoc(), ExtendedTy,
|
||||
return DAG.getExtLoad(LD->getExtensionType(), SDLoc(LD), ExtendedTy,
|
||||
LD->getChain(), LD->getBasePtr(), LD->getPointerInfo(),
|
||||
LD->getMemoryVT(), LD->isVolatile(),
|
||||
LD->isNonTemporal(), LD->getAlignment());
|
||||
@ -5380,7 +5380,7 @@ static SDValue SkipExtensionForVMULL(SDNode *N, SelectionDAG &DAG) {
|
||||
assert(BVN->getOpcode() == ISD::BUILD_VECTOR &&
|
||||
BVN->getValueType(0) == MVT::v4i32 && "expected v4i32 BUILD_VECTOR");
|
||||
unsigned LowElt = DAG.getTargetLoweringInfo().isBigEndian() ? 1 : 0;
|
||||
return DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(), MVT::v2i32,
|
||||
return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N), MVT::v2i32,
|
||||
BVN->getOperand(LowElt), BVN->getOperand(LowElt+2));
|
||||
}
|
||||
// Construct a new BUILD_VECTOR with elements truncated to half the size.
|
||||
@ -5397,7 +5397,7 @@ static SDValue SkipExtensionForVMULL(SDNode *N, SelectionDAG &DAG) {
|
||||
// The values are implicitly truncated so sext vs. zext doesn't matter.
|
||||
Ops.push_back(DAG.getConstant(CInt.zextOrTrunc(32), MVT::i32));
|
||||
}
|
||||
return DAG.getNode(ISD::BUILD_VECTOR, N->getDebugLoc(),
|
||||
return DAG.getNode(ISD::BUILD_VECTOR, SDLoc(N),
|
||||
MVT::getVectorVT(TruncVT, NumElts), Ops.data(), NumElts);
|
||||
}
|
||||
|
||||
@ -5469,7 +5469,7 @@ static SDValue LowerMUL(SDValue Op, SelectionDAG &DAG) {
|
||||
}
|
||||
|
||||
// Legalize to a VMULL instruction.
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDLoc DL(Op);
|
||||
SDValue Op0;
|
||||
SDValue Op1 = SkipExtensionForVMULL(N1, DAG);
|
||||
if (!isMLA) {
|
||||
@ -5499,7 +5499,7 @@ static SDValue LowerMUL(SDValue Op, SelectionDAG &DAG) {
|
||||
}
|
||||
|
||||
static SDValue
|
||||
LowerSDIV_v4i8(SDValue X, SDValue Y, DebugLoc dl, SelectionDAG &DAG) {
|
||||
LowerSDIV_v4i8(SDValue X, SDValue Y, SDLoc dl, SelectionDAG &DAG) {
|
||||
// Convert to float
|
||||
// float4 xf = vcvt_f32_s32(vmovl_s16(a.lo));
|
||||
// float4 yf = vcvt_f32_s32(vmovl_s16(b.lo));
|
||||
@ -5528,7 +5528,7 @@ LowerSDIV_v4i8(SDValue X, SDValue Y, DebugLoc dl, SelectionDAG &DAG) {
|
||||
}
|
||||
|
||||
static SDValue
|
||||
LowerSDIV_v4i16(SDValue N0, SDValue N1, DebugLoc dl, SelectionDAG &DAG) {
|
||||
LowerSDIV_v4i16(SDValue N0, SDValue N1, SDLoc dl, SelectionDAG &DAG) {
|
||||
SDValue N2;
|
||||
// Convert to float.
|
||||
// float4 yf = vcvt_f32_s32(vmovl_s16(y));
|
||||
@ -5569,7 +5569,7 @@ static SDValue LowerSDIV(SDValue Op, SelectionDAG &DAG) {
|
||||
assert((VT == MVT::v4i16 || VT == MVT::v8i8) &&
|
||||
"unexpected type for custom-lowering ISD::SDIV");
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue N0 = Op.getOperand(0);
|
||||
SDValue N1 = Op.getOperand(1);
|
||||
SDValue N2, N3;
|
||||
@ -5604,7 +5604,7 @@ static SDValue LowerUDIV(SDValue Op, SelectionDAG &DAG) {
|
||||
assert((VT == MVT::v4i16 || VT == MVT::v8i8) &&
|
||||
"unexpected type for custom-lowering ISD::UDIV");
|
||||
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDLoc dl(Op);
|
||||
SDValue N0 = Op.getOperand(0);
|
||||
SDValue N1 = Op.getOperand(1);
|
||||
SDValue N2, N3;
|
||||
@ -5688,9 +5688,9 @@ static SDValue LowerADDC_ADDE_SUBC_SUBE(SDValue Op, SelectionDAG &DAG) {
|
||||
}
|
||||
|
||||
if (!ExtraOp)
|
||||
return DAG.getNode(Opc, Op->getDebugLoc(), VTs, Op.getOperand(0),
|
||||
return DAG.getNode(Opc, SDLoc(Op), VTs, Op.getOperand(0),
|
||||
Op.getOperand(1));
|
||||
return DAG.getNode(Opc, Op->getDebugLoc(), VTs, Op.getOperand(0),
|
||||
return DAG.getNode(Opc, SDLoc(Op), VTs, Op.getOperand(0),
|
||||
Op.getOperand(1), Op.getOperand(2));
|
||||
}
|
||||
|
||||
@ -5707,7 +5707,7 @@ static SDValue LowerAtomicLoadStore(SDValue Op, SelectionDAG &DAG) {
|
||||
static void
|
||||
ReplaceATOMIC_OP_64(SDNode *Node, SmallVectorImpl<SDValue>& Results,
|
||||
SelectionDAG &DAG, unsigned NewOp) {
|
||||
DebugLoc dl = Node->getDebugLoc();
|
||||
SDLoc dl(Node);
|
||||
assert (Node->getValueType(0) == MVT::i64 &&
|
||||
"Only know how to expand i64 atomics");
|
||||
|
||||
@ -5741,7 +5741,7 @@ static void ReplaceREADCYCLECOUNTER(SDNode *N,
|
||||
SmallVectorImpl<SDValue> &Results,
|
||||
SelectionDAG &DAG,
|
||||
const ARMSubtarget *Subtarget) {
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
SDValue Cycles32, OutChain;
|
||||
|
||||
if (Subtarget->hasPerfMon()) {
|
||||
@ -7789,13 +7789,13 @@ SDValue combineSelectAndUse(SDNode *N, SDValue Slct, SDValue OtherOp,
|
||||
|
||||
// Slct is now know to be the desired identity constant when CC is true.
|
||||
SDValue TrueVal = OtherOp;
|
||||
SDValue FalseVal = DAG.getNode(N->getOpcode(), N->getDebugLoc(), VT,
|
||||
SDValue FalseVal = DAG.getNode(N->getOpcode(), SDLoc(N), VT,
|
||||
OtherOp, NonConstantVal);
|
||||
// Unless SwapSelectOps says CC should be false.
|
||||
if (SwapSelectOps)
|
||||
std::swap(TrueVal, FalseVal);
|
||||
|
||||
return DAG.getNode(ISD::SELECT, N->getDebugLoc(), VT,
|
||||
return DAG.getNode(ISD::SELECT, SDLoc(N), VT,
|
||||
CCOp, TrueVal, FalseVal);
|
||||
}
|
||||
|
||||
@ -7902,9 +7902,9 @@ static SDValue AddCombineToVPADDL(SDNode *N, SDValue N0, SDValue N1,
|
||||
llvm_unreachable("Invalid vector element type for padd optimization.");
|
||||
}
|
||||
|
||||
SDValue tmp = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, N->getDebugLoc(),
|
||||
SDValue tmp = DAG.getNode(ISD::INTRINSIC_WO_CHAIN, SDLoc(N),
|
||||
widenType, &Ops[0], Ops.size());
|
||||
return DAG.getNode(ISD::TRUNCATE, N->getDebugLoc(), VT, tmp);
|
||||
return DAG.getNode(ISD::TRUNCATE, SDLoc(N), VT, tmp);
|
||||
}
|
||||
|
||||
static SDValue findMUL_LOHI(SDValue V) {
|
||||
@ -8029,7 +8029,7 @@ static SDValue AddCombineTo64bitMLAL(SDNode *AddcNode,
|
||||
Ops.push_back(*LowAdd);
|
||||
Ops.push_back(*HiAdd);
|
||||
|
||||
SDValue MLALNode = DAG.getNode(FinalOpc, AddcNode->getDebugLoc(),
|
||||
SDValue MLALNode = DAG.getNode(FinalOpc, SDLoc(AddcNode),
|
||||
DAG.getVTList(MVT::i32, MVT::i32),
|
||||
&Ops[0], Ops.size());
|
||||
|
||||
@ -8137,7 +8137,7 @@ static SDValue PerformVMULCombine(SDNode *N,
|
||||
}
|
||||
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
SDValue N00 = N0->getOperand(0);
|
||||
SDValue N01 = N0->getOperand(1);
|
||||
return DAG.getNode(Opcode, DL, VT,
|
||||
@ -8171,7 +8171,7 @@ static SDValue PerformMULCombine(SDNode *N,
|
||||
|
||||
ShiftAmt = ShiftAmt & (32 - 1);
|
||||
SDValue V = N->getOperand(0);
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
|
||||
SDValue Res;
|
||||
MulAmt >>= ShiftAmt;
|
||||
@ -8235,7 +8235,7 @@ static SDValue PerformANDCombine(SDNode *N,
|
||||
|
||||
// Attempt to use immediate-form VBIC
|
||||
BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
EVT VT = N->getValueType(0);
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
|
||||
@ -8278,7 +8278,7 @@ static SDValue PerformORCombine(SDNode *N,
|
||||
const ARMSubtarget *Subtarget) {
|
||||
// Attempt to use immediate-form VORR
|
||||
BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
EVT VT = N->getValueType(0);
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
|
||||
@ -8353,7 +8353,7 @@ static SDValue PerformORCombine(SDNode *N,
|
||||
if (Subtarget->isThumb1Only() || !Subtarget->hasV6T2Ops())
|
||||
return SDValue();
|
||||
|
||||
DebugLoc DL = N->getDebugLoc();
|
||||
SDLoc DL(N);
|
||||
// 1) or (and A, mask), val => ARMbfi A, val, mask
|
||||
// iff (val & mask) == val
|
||||
//
|
||||
@ -8497,7 +8497,7 @@ static SDValue PerformBFICombine(SDNode *N,
|
||||
unsigned Mask = (1 << Width)-1;
|
||||
unsigned Mask2 = N11C->getZExtValue();
|
||||
if ((Mask & (~Mask2)) == 0)
|
||||
return DCI.DAG.getNode(ARMISD::BFI, N->getDebugLoc(), N->getValueType(0),
|
||||
return DCI.DAG.getNode(ARMISD::BFI, SDLoc(N), N->getValueType(0),
|
||||
N->getOperand(0), N1.getOperand(0),
|
||||
N->getOperand(2));
|
||||
}
|
||||
@ -8523,7 +8523,7 @@ static SDValue PerformVMOVRRDCombine(SDNode *N,
|
||||
LoadSDNode *LD = cast<LoadSDNode>(InNode);
|
||||
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
DebugLoc DL = LD->getDebugLoc();
|
||||
SDLoc DL(LD);
|
||||
SDValue BasePtr = LD->getBasePtr();
|
||||
SDValue NewLD1 = DAG.getLoad(MVT::i32, DL, LD->getChain(), BasePtr,
|
||||
LD->getPointerInfo(), LD->isVolatile(),
|
||||
@ -8560,7 +8560,7 @@ static SDValue PerformVMOVDRRCombine(SDNode *N, SelectionDAG &DAG) {
|
||||
if (Op0.getOpcode() == ARMISD::VMOVRRD &&
|
||||
Op0.getNode() == Op1.getNode() &&
|
||||
Op0.getResNo() == 0 && Op1.getResNo() == 1)
|
||||
return DAG.getNode(ISD::BITCAST, N->getDebugLoc(),
|
||||
return DAG.getNode(ISD::BITCAST, SDLoc(N),
|
||||
N->getValueType(0), Op0.getOperand(0));
|
||||
return SDValue();
|
||||
}
|
||||
@ -8602,7 +8602,7 @@ static SDValue PerformSTORECombine(SDNode *N,
|
||||
NumElems*SizeRatio);
|
||||
assert(WideVecVT.getSizeInBits() == VT.getSizeInBits());
|
||||
|
||||
DebugLoc DL = St->getDebugLoc();
|
||||
SDLoc DL(St);
|
||||
SDValue WideVec = DAG.getNode(ISD::BITCAST, DL, WideVecVT, StVal);
|
||||
SmallVector<int, 8> ShuffleVec(NumElems * SizeRatio, -1);
|
||||
for (unsigned i = 0; i < NumElems; ++i) ShuffleVec[i] = i * SizeRatio;
|
||||
@ -8663,7 +8663,7 @@ static SDValue PerformSTORECombine(SDNode *N,
|
||||
if (StVal.getNode()->getOpcode() == ARMISD::VMOVDRR &&
|
||||
StVal.getNode()->hasOneUse()) {
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
DebugLoc DL = St->getDebugLoc();
|
||||
SDLoc DL(St);
|
||||
SDValue BasePtr = St->getBasePtr();
|
||||
SDValue NewST1 = DAG.getStore(St->getChain(), DL,
|
||||
StVal.getNode()->getOperand(0), BasePtr,
|
||||
@ -8685,14 +8685,14 @@ static SDValue PerformSTORECombine(SDNode *N,
|
||||
// Bitcast an i64 store extracted from a vector to f64.
|
||||
// Otherwise, the i64 value will be legalized to a pair of i32 values.
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
DebugLoc dl = StVal.getDebugLoc();
|
||||
SDLoc dl(StVal);
|
||||
SDValue IntVec = StVal.getOperand(0);
|
||||
EVT FloatVT = EVT::getVectorVT(*DAG.getContext(), MVT::f64,
|
||||
IntVec.getValueType().getVectorNumElements());
|
||||
SDValue Vec = DAG.getNode(ISD::BITCAST, dl, FloatVT, IntVec);
|
||||
SDValue ExtElt = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::f64,
|
||||
Vec, StVal.getOperand(1));
|
||||
dl = N->getDebugLoc();
|
||||
dl = SDLoc(N);
|
||||
SDValue V = DAG.getNode(ISD::BITCAST, dl, MVT::i64, ExtElt);
|
||||
// Make the DAGCombiner fold the bitcasts.
|
||||
DCI.AddToWorklist(Vec.getNode());
|
||||
@ -8738,7 +8738,7 @@ static SDValue PerformBUILD_VECTORCombine(SDNode *N,
|
||||
EVT VT = N->getValueType(0);
|
||||
if (VT.getVectorElementType() != MVT::i64 || !hasNormalLoadOperand(N))
|
||||
return SDValue();
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
SmallVector<SDValue, 8> Ops;
|
||||
unsigned NumElts = VT.getVectorNumElements();
|
||||
for (unsigned i = 0; i < NumElts; ++i) {
|
||||
@ -8765,7 +8765,7 @@ static SDValue PerformInsertEltCombine(SDNode *N,
|
||||
return SDValue();
|
||||
|
||||
SelectionDAG &DAG = DCI.DAG;
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
EVT FloatVT = EVT::getVectorVT(*DAG.getContext(), MVT::f64,
|
||||
VT.getVectorNumElements());
|
||||
SDValue Vec = DAG.getNode(ISD::BITCAST, dl, FloatVT, N->getOperand(0));
|
||||
@ -8811,7 +8811,7 @@ static SDValue PerformVECTOR_SHUFFLECombine(SDNode *N, SelectionDAG &DAG) {
|
||||
!TLI.isTypeLegal(Concat1Op1.getValueType()))
|
||||
return SDValue();
|
||||
|
||||
SDValue NewConcat = DAG.getNode(ISD::CONCAT_VECTORS, N->getDebugLoc(), VT,
|
||||
SDValue NewConcat = DAG.getNode(ISD::CONCAT_VECTORS, SDLoc(N), VT,
|
||||
Op0.getOperand(0), Op1.getOperand(0));
|
||||
// Translate the shuffle mask.
|
||||
SmallVector<int, 16> NewMask;
|
||||
@ -8827,7 +8827,7 @@ static SDValue PerformVECTOR_SHUFFLECombine(SDNode *N, SelectionDAG &DAG) {
|
||||
NewElt = HalfElts + MaskElt - NumElts;
|
||||
NewMask.push_back(NewElt);
|
||||
}
|
||||
return DAG.getVectorShuffle(VT, N->getDebugLoc(), NewConcat,
|
||||
return DAG.getVectorShuffle(VT, SDLoc(N), NewConcat,
|
||||
DAG.getUNDEF(VT), NewMask.data());
|
||||
}
|
||||
|
||||
@ -8944,7 +8944,7 @@ static SDValue CombineBaseUpdate(SDNode *N,
|
||||
Ops.push_back(N->getOperand(i));
|
||||
}
|
||||
MemIntrinsicSDNode *MemInt = cast<MemIntrinsicSDNode>(N);
|
||||
SDValue UpdN = DAG.getMemIntrinsicNode(NewOpc, N->getDebugLoc(), SDTys,
|
||||
SDValue UpdN = DAG.getMemIntrinsicNode(NewOpc, SDLoc(N), SDTys,
|
||||
Ops.data(), Ops.size(),
|
||||
MemInt->getMemoryVT(),
|
||||
MemInt->getMemOperand());
|
||||
@ -9018,7 +9018,7 @@ static bool CombineVLDDUP(SDNode *N, TargetLowering::DAGCombinerInfo &DCI) {
|
||||
SDVTList SDTys = DAG.getVTList(Tys, NumVecs+1);
|
||||
SDValue Ops[] = { VLD->getOperand(0), VLD->getOperand(2) };
|
||||
MemIntrinsicSDNode *VLDMemInt = cast<MemIntrinsicSDNode>(VLD);
|
||||
SDValue VLDDup = DAG.getMemIntrinsicNode(NewOpc, VLD->getDebugLoc(), SDTys,
|
||||
SDValue VLDDup = DAG.getMemIntrinsicNode(NewOpc, SDLoc(VLD), SDTys,
|
||||
Ops, 2, VLDMemInt->getMemoryVT(),
|
||||
VLDMemInt->getMemOperand());
|
||||
|
||||
@ -9073,7 +9073,7 @@ static SDValue PerformVDUPLANECombine(SDNode *N,
|
||||
if (EltSize > VT.getVectorElementType().getSizeInBits())
|
||||
return SDValue();
|
||||
|
||||
return DCI.DAG.getNode(ISD::BITCAST, N->getDebugLoc(), VT, Op);
|
||||
return DCI.DAG.getNode(ISD::BITCAST, SDLoc(N), VT, Op);
|
||||
}
|
||||
|
||||
// isConstVecPow2 - Return true if each vector element is a power of 2, all
|
||||
@ -9132,7 +9132,7 @@ static SDValue PerformVCVTCombine(SDNode *N,
|
||||
|
||||
unsigned IntrinsicOpcode = isSigned ? Intrinsic::arm_neon_vcvtfp2fxs :
|
||||
Intrinsic::arm_neon_vcvtfp2fxu;
|
||||
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, N->getDebugLoc(),
|
||||
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, SDLoc(N),
|
||||
N->getValueType(0),
|
||||
DAG.getConstant(IntrinsicOpcode, MVT::i32), N0,
|
||||
DAG.getConstant(Log2_64(C), MVT::i32));
|
||||
@ -9168,7 +9168,7 @@ static SDValue PerformVDIVCombine(SDNode *N,
|
||||
|
||||
unsigned IntrinsicOpcode = isSigned ? Intrinsic::arm_neon_vcvtfxs2fp :
|
||||
Intrinsic::arm_neon_vcvtfxu2fp;
|
||||
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, N->getDebugLoc(),
|
||||
return DAG.getNode(ISD::INTRINSIC_WO_CHAIN, SDLoc(N),
|
||||
Op.getValueType(),
|
||||
DAG.getConstant(IntrinsicOpcode, MVT::i32),
|
||||
Op.getOperand(0), DAG.getConstant(Log2_64(C), MVT::i32));
|
||||
@ -9352,7 +9352,7 @@ static SDValue PerformIntrinsicCombine(SDNode *N, SelectionDAG &DAG) {
|
||||
VShiftOpc = ARMISD::VQRSHRNsu; break;
|
||||
}
|
||||
|
||||
return DAG.getNode(VShiftOpc, N->getDebugLoc(), N->getValueType(0),
|
||||
return DAG.getNode(VShiftOpc, SDLoc(N), N->getValueType(0),
|
||||
N->getOperand(1), DAG.getConstant(Cnt, MVT::i32));
|
||||
}
|
||||
|
||||
@ -9369,7 +9369,7 @@ static SDValue PerformIntrinsicCombine(SDNode *N, SelectionDAG &DAG) {
|
||||
llvm_unreachable("invalid shift count for vsli/vsri intrinsic");
|
||||
}
|
||||
|
||||
return DAG.getNode(VShiftOpc, N->getDebugLoc(), N->getValueType(0),
|
||||
return DAG.getNode(VShiftOpc, SDLoc(N), N->getValueType(0),
|
||||
N->getOperand(1), N->getOperand(2),
|
||||
DAG.getConstant(Cnt, MVT::i32));
|
||||
}
|
||||
@ -9400,7 +9400,7 @@ static SDValue PerformShiftCombine(SDNode *N, SelectionDAG &DAG,
|
||||
if (C->getZExtValue() == 16 && N0.getOpcode() == ISD::BSWAP &&
|
||||
DAG.MaskedValueIsZero(N0.getOperand(0),
|
||||
APInt::getHighBitsSet(32, 16)))
|
||||
return DAG.getNode(ISD::ROTR, N->getDebugLoc(), VT, N0, N1);
|
||||
return DAG.getNode(ISD::ROTR, SDLoc(N), VT, N0, N1);
|
||||
}
|
||||
}
|
||||
|
||||
@ -9417,7 +9417,7 @@ static SDValue PerformShiftCombine(SDNode *N, SelectionDAG &DAG,
|
||||
|
||||
case ISD::SHL:
|
||||
if (isVShiftLImm(N->getOperand(1), VT, false, Cnt))
|
||||
return DAG.getNode(ARMISD::VSHL, N->getDebugLoc(), VT, N->getOperand(0),
|
||||
return DAG.getNode(ARMISD::VSHL, SDLoc(N), VT, N->getOperand(0),
|
||||
DAG.getConstant(Cnt, MVT::i32));
|
||||
break;
|
||||
|
||||
@ -9426,7 +9426,7 @@ static SDValue PerformShiftCombine(SDNode *N, SelectionDAG &DAG,
|
||||
if (isVShiftRImm(N->getOperand(1), VT, false, false, Cnt)) {
|
||||
unsigned VShiftOpc = (N->getOpcode() == ISD::SRA ?
|
||||
ARMISD::VSHRs : ARMISD::VSHRu);
|
||||
return DAG.getNode(VShiftOpc, N->getDebugLoc(), VT, N->getOperand(0),
|
||||
return DAG.getNode(VShiftOpc, SDLoc(N), VT, N->getOperand(0),
|
||||
DAG.getConstant(Cnt, MVT::i32));
|
||||
}
|
||||
}
|
||||
@ -9466,7 +9466,7 @@ static SDValue PerformExtendCombine(SDNode *N, SelectionDAG &DAG,
|
||||
Opc = ARMISD::VGETLANEu;
|
||||
break;
|
||||
}
|
||||
return DAG.getNode(Opc, N->getDebugLoc(), VT, Vec, Lane);
|
||||
return DAG.getNode(Opc, SDLoc(N), VT, Vec, Lane);
|
||||
}
|
||||
}
|
||||
|
||||
@ -9555,7 +9555,7 @@ static SDValue PerformSELECT_CCCombine(SDNode *N, SelectionDAG &DAG,
|
||||
|
||||
if (!Opcode)
|
||||
return SDValue();
|
||||
return DAG.getNode(Opcode, N->getDebugLoc(), N->getValueType(0), LHS, RHS);
|
||||
return DAG.getNode(Opcode, SDLoc(N), N->getValueType(0), LHS, RHS);
|
||||
}
|
||||
|
||||
/// PerformCMOVCombine - Target-specific DAG combining for ARMISD::CMOV.
|
||||
@ -9567,7 +9567,7 @@ ARMTargetLowering::PerformCMOVCombine(SDNode *N, SelectionDAG &DAG) const {
|
||||
return SDValue();
|
||||
|
||||
EVT VT = N->getValueType(0);
|
||||
DebugLoc dl = N->getDebugLoc();
|
||||
SDLoc dl(N);
|
||||
SDValue LHS = Cmp.getOperand(0);
|
||||
SDValue RHS = Cmp.getOperand(1);
|
||||
SDValue FalseVal = N->getOperand(0);
|
||||
|
Reference in New Issue
Block a user