diff options
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp | 56 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 12 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp | 11 | ||||
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelLowering.cpp | 8 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 8 | 
7 files changed, 42 insertions, 57 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp index 34998d6fd85..6292f118d14 100644 --- a/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp @@ -181,7 +181,7 @@ namespace {      /// if things it uses can be simplified by bit propagation.      /// If so, return true.      bool SimplifyDemandedBits(SDValue Op) { -      unsigned BitWidth = Op.getValueType().getScalarSizeInBits(); +      unsigned BitWidth = Op.getScalarValueSizeInBits();        APInt Demanded = APInt::getAllOnesValue(BitWidth);        return SimplifyDemandedBits(Op, Demanded);      } @@ -3080,16 +3080,12 @@ SDValue DAGCombiner::visitAND(SDNode *N) {      // fold (and x, 0) -> 0, vector edition      if (ISD::isBuildVectorAllZeros(N0.getNode()))        // do not return N0, because undef node may exist in N0 -      return DAG.getConstant( -          APInt::getNullValue( -              N0.getValueType().getScalarSizeInBits()), -          SDLoc(N), N0.getValueType()); +      return DAG.getConstant(APInt::getNullValue(N0.getScalarValueSizeInBits()), +                             SDLoc(N), N0.getValueType());      if (ISD::isBuildVectorAllZeros(N1.getNode()))        // do not return N1, because undef node may exist in N1 -      return DAG.getConstant( -          APInt::getNullValue( -              N1.getValueType().getScalarSizeInBits()), -          SDLoc(N), N1.getValueType()); +      return DAG.getConstant(APInt::getNullValue(N1.getScalarValueSizeInBits()), +                             SDLoc(N), N1.getValueType());      // fold (and x, -1) -> x, vector edition      if (ISD::isBuildVectorAllOnes(N0.getNode())) @@ -3327,7 +3323,7 @@ SDValue DAGCombiner::visitAND(SDNode *N) {      EVT MemVT = LN0->getMemoryVT();      // If we zero all the possible extended bits, then we can turn this into      // a zextload if we are running before legalize or the operation is legal. -    unsigned BitWidth = N1.getValueType().getScalarSizeInBits(); +    unsigned BitWidth = N1.getScalarValueSizeInBits();      if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,                             BitWidth - MemVT.getScalarSizeInBits())) &&          ((!LegalOperations && !LN0->isVolatile()) || @@ -3347,7 +3343,7 @@ SDValue DAGCombiner::visitAND(SDNode *N) {      EVT MemVT = LN0->getMemoryVT();      // If we zero all the possible extended bits, then we can turn this into      // a zextload if we are running before legalize or the operation is legal. -    unsigned BitWidth = N1.getValueType().getScalarSizeInBits(); +    unsigned BitWidth = N1.getScalarValueSizeInBits();      if (DAG.MaskedValueIsZero(N1, APInt::getHighBitsSet(BitWidth,                             BitWidth - MemVT.getScalarSizeInBits())) &&          ((!LegalOperations && !LN0->isVolatile()) || @@ -3751,15 +3747,13 @@ SDValue DAGCombiner::visitOR(SDNode *N) {      if (ISD::isBuildVectorAllOnes(N0.getNode()))        // do not return N0, because undef node may exist in N0        return DAG.getConstant( -          APInt::getAllOnesValue( -              N0.getValueType().getScalarSizeInBits()), -          SDLoc(N), N0.getValueType()); +          APInt::getAllOnesValue(N0.getScalarValueSizeInBits()), SDLoc(N), +          N0.getValueType());      if (ISD::isBuildVectorAllOnes(N1.getNode()))        // do not return N1, because undef node may exist in N1        return DAG.getConstant( -          APInt::getAllOnesValue( -              N1.getValueType().getScalarSizeInBits()), -          SDLoc(N), N1.getValueType()); +          APInt::getAllOnesValue(N1.getScalarValueSizeInBits()), SDLoc(N), +          N1.getValueType());      // fold (or (shuf A, V_0, MA), (shuf B, V_0, MB)) -> (shuf A, B, Mask)      // Do this only if the resulting shuffle is legal. @@ -6102,8 +6096,8 @@ SDValue DAGCombiner::visitSIGN_EXTEND(SDNode *N) {      // See if the value being truncated is already sign extended.  If so, just      // eliminate the trunc/sext pair.      SDValue Op = N0.getOperand(0); -    unsigned OpBits   = Op.getValueType().getScalarSizeInBits(); -    unsigned MidBits  = N0.getValueType().getScalarSizeInBits(); +    unsigned OpBits   = Op.getScalarValueSizeInBits(); +    unsigned MidBits  = N0.getScalarValueSizeInBits();      unsigned DestBits = VT.getScalarSizeInBits();      unsigned NumSignBits = DAG.ComputeNumSignBits(Op); @@ -6265,7 +6259,7 @@ SDValue DAGCombiner::visitSIGN_EXTEND(SDNode *N) {      // sext(setcc x, y, cc) -> (select (setcc x, y, cc), T, 0)      // Here, T can be 1 or -1, depending on the type of the setcc and      // getBooleanContents(). -    unsigned SetCCWidth = N0.getValueType().getScalarSizeInBits(); +    unsigned SetCCWidth = N0.getScalarValueSizeInBits();      SDLoc DL(N);      // To determine the "true" side of the select, we need to know the high bit @@ -7041,7 +7035,7 @@ SDValue DAGCombiner::visitSIGN_EXTEND_INREG(SDNode *N) {    // if x is small enough.    if (N0.getOpcode() == ISD::SIGN_EXTEND || N0.getOpcode() == ISD::ANY_EXTEND) {      SDValue N00 = N0.getOperand(0); -    if (N00.getValueType().getScalarSizeInBits() <= EVTBits && +    if (N00.getScalarValueSizeInBits() <= EVTBits &&          (!LegalOperations || TLI.isOperationLegal(ISD::SIGN_EXTEND, VT)))        return DAG.getNode(ISD::SIGN_EXTEND, SDLoc(N), VT, N00, N1);    } @@ -9391,7 +9385,7 @@ SDValue DAGCombiner::visitFNEG(SDNode *N) {        if (N0.getValueType().isVector()) {          // For a vector, get a mask such as 0x80... per scalar element          // and splat it. -        SignMask = APInt::getSignBit(N0.getValueType().getScalarSizeInBits()); +        SignMask = APInt::getSignBit(N0.getScalarValueSizeInBits());          SignMask = APInt::getSplat(IntVT.getSizeInBits(), SignMask);        } else {          // For a scalar, just generate 0x80... @@ -9496,7 +9490,7 @@ SDValue DAGCombiner::visitFABS(SDNode *N) {        if (N0.getValueType().isVector()) {          // For a vector, get a mask such as 0x7f... per scalar element          // and splat it. -        SignMask = ~APInt::getSignBit(N0.getValueType().getScalarSizeInBits()); +        SignMask = ~APInt::getSignBit(N0.getScalarValueSizeInBits());          SignMask = APInt::getSplat(IntVT.getSizeInBits(), SignMask);        } else {          // For a scalar, just generate 0x7f... @@ -12159,11 +12153,9 @@ SDValue DAGCombiner::visitSTORE(SDNode *N) {      // See if we can simplify the input to this truncstore with knowledge that      // only the low bits are being used.  For example:      // "truncstore (or (shl x, 8), y), i8"  -> "truncstore y, i8" -    SDValue Shorter = -      GetDemandedBits(Value, -                      APInt::getLowBitsSet( -                        Value.getValueType().getScalarSizeInBits(), -                        ST->getMemoryVT().getScalarSizeInBits())); +    SDValue Shorter = GetDemandedBits( +        Value, APInt::getLowBitsSet(Value.getScalarValueSizeInBits(), +                                    ST->getMemoryVT().getScalarSizeInBits()));      AddToWorklist(Value.getNode());      if (Shorter.getNode())        return DAG.getTruncStore(Chain, SDLoc(N), Shorter, @@ -12171,10 +12163,10 @@ SDValue DAGCombiner::visitSTORE(SDNode *N) {      // Otherwise, see if we can simplify the operation with      // SimplifyDemandedBits, which only works if the value has a single use. -    if (SimplifyDemandedBits(Value, -                        APInt::getLowBitsSet( -                          Value.getValueType().getScalarSizeInBits(), -                          ST->getMemoryVT().getScalarSizeInBits()))) +    if (SimplifyDemandedBits( +            Value, +            APInt::getLowBitsSet(Value.getScalarValueSizeInBits(), +                                 ST->getMemoryVT().getScalarSizeInBits())))        return SDValue(N, 0);    } diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index d74fd104530..b54d245ccf4 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -1012,7 +1012,7 @@ SDValue SelectionDAG::getZeroExtendInReg(SDValue Op, const SDLoc &DL, EVT VT) {           "getZeroExtendInReg should use the vector element type instead of "           "the vector type!");    if (Op.getValueType() == VT) return Op; -  unsigned BitWidth = Op.getValueType().getScalarSizeInBits(); +  unsigned BitWidth = Op.getScalarValueSizeInBits();    APInt Imm = APInt::getLowBitsSet(BitWidth,                                     VT.getSizeInBits());    return getNode(ISD::AND, DL, Op.getValueType(), Op, @@ -1984,7 +1984,7 @@ bool SelectionDAG::SignBitIsZero(SDValue Op, unsigned Depth) const {    if (Op.getValueType().isVector())      return false; -  unsigned BitWidth = Op.getValueType().getScalarSizeInBits(); +  unsigned BitWidth = Op.getScalarValueSizeInBits();    return MaskedValueIsZero(Op, APInt::getSignBit(BitWidth), Depth);  } @@ -2002,7 +2002,7 @@ bool SelectionDAG::MaskedValueIsZero(SDValue Op, const APInt &Mask,  /// them in the KnownZero/KnownOne bitsets.  void SelectionDAG::computeKnownBits(SDValue Op, APInt &KnownZero,                                      APInt &KnownOne, unsigned Depth) const { -  unsigned BitWidth = Op.getValueType().getScalarSizeInBits(); +  unsigned BitWidth = Op.getScalarValueSizeInBits();    KnownZero = KnownOne = APInt(BitWidth, 0);   // Don't know anything.    if (Depth == 6) @@ -2549,14 +2549,12 @@ unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, unsigned Depth) const {    }    case ISD::SIGN_EXTEND: -    Tmp = -        VTBits-Op.getOperand(0).getValueType().getScalarSizeInBits(); +    Tmp = VTBits - Op.getOperand(0).getScalarValueSizeInBits();      return ComputeNumSignBits(Op.getOperand(0), Depth+1) + Tmp;    case ISD::SIGN_EXTEND_INREG:      // Max of the input and what this extends. -    Tmp = -      cast<VTSDNode>(Op.getOperand(1))->getVT().getScalarSizeInBits(); +    Tmp = cast<VTSDNode>(Op.getOperand(1))->getVT().getScalarSizeInBits();      Tmp = VTBits-Tmp+1;      Tmp2 = ComputeNumSignBits(Op.getOperand(0), Depth+1); diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp index 10128982085..62784154fa0 100644 --- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp @@ -432,7 +432,7 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,                                            TargetLoweringOpt &TLO,                                            unsigned Depth) const {    unsigned BitWidth = DemandedMask.getBitWidth(); -  assert(Op.getValueType().getScalarSizeInBits() == BitWidth && +  assert(Op.getScalarValueSizeInBits() == BitWidth &&           "Mask size mismatches value type size!");    APInt NewMask = DemandedMask;    SDLoc dl(Op); @@ -984,8 +984,7 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,      break;    }    case ISD::ZERO_EXTEND: { -    unsigned OperandBitWidth = -      Op.getOperand(0).getValueType().getScalarSizeInBits(); +    unsigned OperandBitWidth = Op.getOperand(0).getScalarValueSizeInBits();      APInt InMask = NewMask.trunc(OperandBitWidth);      // If none of the top bits are demanded, convert this into an any_extend. @@ -1047,8 +1046,7 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,      break;    }    case ISD::ANY_EXTEND: { -    unsigned OperandBitWidth = -      Op.getOperand(0).getValueType().getScalarSizeInBits(); +    unsigned OperandBitWidth = Op.getOperand(0).getScalarValueSizeInBits();      APInt InMask = NewMask.trunc(OperandBitWidth);      if (SimplifyDemandedBits(Op.getOperand(0), InMask,                               KnownZero, KnownOne, TLO, Depth+1)) @@ -1061,8 +1059,7 @@ bool TargetLowering::SimplifyDemandedBits(SDValue Op,    case ISD::TRUNCATE: {      // Simplify the input, using demanded bit information, and compute the known      // zero/one bits live out. -    unsigned OperandBitWidth = -      Op.getOperand(0).getValueType().getScalarSizeInBits(); +    unsigned OperandBitWidth = Op.getOperand(0).getScalarValueSizeInBits();      APInt TruncMask = NewMask.zext(OperandBitWidth);      if (SimplifyDemandedBits(Op.getOperand(0), TruncMask,                               KnownZero, KnownOne, TLO, Depth+1)) diff --git a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp index 66159f09859..0c98687b23e 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp +++ b/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp @@ -1931,7 +1931,7 @@ static void getUsefulBits(SDValue Op, APInt &UsefulBits, unsigned Depth) {      return;    // Initialize UsefulBits    if (!Depth) { -    unsigned Bitwidth = Op.getValueType().getScalarSizeInBits(); +    unsigned Bitwidth = Op.getScalarValueSizeInBits();      // At the beginning, assume every produced bits is useful      UsefulBits = APInt(Bitwidth, 0);      UsefulBits.flipAllBits(); diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp index 386f6ea2e46..41c0387c6ce 100644 --- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp @@ -11022,11 +11022,9 @@ SDValue PPCTargetLowering::PerformDAGCombine(SDNode *N,          int Bits = IID == Intrinsic::ppc_qpx_qvlpcld ?                     5 /* 32 byte alignment */ : 4 /* 16 byte alignment */; -        if (DAG.MaskedValueIsZero( -                Add->getOperand(1), -                APInt::getAllOnesValue(Bits /* alignment */) -                    .zext( -                        Add.getValueType().getScalarSizeInBits()))) { +        if (DAG.MaskedValueIsZero(Add->getOperand(1), +                                  APInt::getAllOnesValue(Bits /* alignment */) +                                      .zext(Add.getScalarValueSizeInBits()))) {            SDNode *BasePtr = Add->getOperand(0).getNode();            for (SDNode::use_iterator UI = BasePtr->use_begin(),                                      UE = BasePtr->use_end(); diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index e0ec983edac..5ae74e72ab5 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -1435,7 +1435,7 @@ bool X86DAGToDAGISel::selectVectorAddr(SDNode *Parent, SDValue N, SDValue &Base,    SDLoc DL(N);    Base = Mgs->getBasePtr();    Index = Mgs->getIndex(); -  unsigned ScalarSize = Mgs->getValue().getValueType().getScalarSizeInBits(); +  unsigned ScalarSize = Mgs->getValue().getScalarValueSizeInBits();    Scale = getI8Imm(ScalarSize/8, DL);    // If Base is 0, the whole address is in index and the Scale is 1 diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index a710d6413a0..f46dbe46cea 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -24782,7 +24782,7 @@ unsigned X86TargetLowering::ComputeNumSignBitsForTargetNode(    unsigned Depth) const {    // SETCC_CARRY sets the dest to ~0 for true or 0 for false.    if (Op.getOpcode() == X86ISD::SETCC_CARRY) -    return Op.getValueType().getScalarSizeInBits(); +    return Op.getScalarValueSizeInBits();    // Fallback case.    return 1; @@ -27421,7 +27421,7 @@ static SDValue combineSelect(SDNode *N, SelectionDAG &DAG,    if (N->getOpcode() == ISD::VSELECT && DCI.isBeforeLegalizeOps() &&        !DCI.isBeforeLegalize() &&        !ISD::isBuildVectorOfConstantSDNodes(Cond.getNode())) { -    unsigned BitWidth = Cond.getValueType().getScalarSizeInBits(); +    unsigned BitWidth = Cond.getScalarValueSizeInBits();      // Don't optimize vector selects that map to mask-registers.      if (BitWidth == 1) @@ -28682,7 +28682,7 @@ static SDValue combineVectorZext(SDNode *N, SelectionDAG &DAG,                                  SplatBitSize, HasAnyUndefs))      return SDValue(); -  unsigned ResSize = N1.getValueType().getScalarSizeInBits(); +  unsigned ResSize = N1.getScalarValueSizeInBits();    // Make sure the splat matches the mask we expect    if (SplatBitSize > ResSize ||        (SplatValue + 1).exactLogBase2() != (int)SrcSize) @@ -30356,7 +30356,7 @@ static SDValue isFNEG(SDNode *N) {    SDValue Op0 = peekThroughBitcasts(Op.getOperand(0)); -  unsigned EltBits = Op1.getValueType().getScalarSizeInBits(); +  unsigned EltBits = Op1.getScalarValueSizeInBits();    auto isSignBitValue = [&](const ConstantFP *C) {      return C->getValueAPF().bitcastToAPInt() == APInt::getSignBit(EltBits);    };  | 

