diff options
Diffstat (limited to 'llvm/lib/IR')
| -rw-r--r-- | llvm/lib/IR/AutoUpgrade.cpp | 13 | ||||
| -rw-r--r-- | llvm/lib/IR/ConstantsContext.h | 2 | ||||
| -rw-r--r-- | llvm/lib/IR/ModuleSummaryIndex.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/IR/Value.cpp | 8 | 
4 files changed, 12 insertions, 15 deletions
diff --git a/llvm/lib/IR/AutoUpgrade.cpp b/llvm/lib/IR/AutoUpgrade.cpp index b838e36..58b7ddd 100644 --- a/llvm/lib/IR/AutoUpgrade.cpp +++ b/llvm/lib/IR/AutoUpgrade.cpp @@ -730,7 +730,7 @@ static bool upgradeArmOrAarch64IntrinsicFunction(bool IsArm, Function *F,        // (arm|aarch64).neon.bfdot.*'.        Intrinsic::ID ID =            StringSwitch<Intrinsic::ID>(Name) -              .Cases("v2f32.v8i8", "v4f32.v16i8", +              .Cases({"v2f32.v8i8", "v4f32.v16i8"},                       IsArm ? (Intrinsic::ID)Intrinsic::arm_neon_bfdot                             : (Intrinsic::ID)Intrinsic::aarch64_neon_bfdot)                .Default(Intrinsic::not_intrinsic); @@ -1456,7 +1456,7 @@ static bool upgradeIntrinsicFunction1(Function *F, Function *&NewFn,        if (F->arg_size() == 1) {          Intrinsic::ID IID =              StringSwitch<Intrinsic::ID>(Name) -                .Cases("brev32", "brev64", Intrinsic::bitreverse) +                .Cases({"brev32", "brev64"}, Intrinsic::bitreverse)                  .Case("clz.i", Intrinsic::ctlz)                  .Case("popc.i", Intrinsic::ctpop)                  .Default(Intrinsic::not_intrinsic); @@ -1504,6 +1504,10 @@ static bool upgradeIntrinsicFunction1(Function *F, Function *&NewFn,        else if (Name.consume_front("fabs."))          // nvvm.fabs.{f,ftz.f,d}          Expand = Name == "f" || Name == "ftz.f" || Name == "d"; +      else if (Name.consume_front("ex2.approx.")) +        // nvvm.ex2.approx.{f,ftz.f,d,f16x2} +        Expand = +            Name == "f" || Name == "ftz.f" || Name == "d" || Name == "f16x2";        else if (Name.consume_front("max.") || Name.consume_front("min."))          // nvvm.{min,max}.{i,ii,ui,ull}          Expand = Name == "s" || Name == "i" || Name == "ll" || Name == "us" || @@ -2550,6 +2554,11 @@ static Value *upgradeNVVMIntrinsicCall(StringRef Name, CallBase *CI,      Intrinsic::ID IID = (Name == "fabs.ftz.f") ? Intrinsic::nvvm_fabs_ftz                                                 : Intrinsic::nvvm_fabs;      Rep = Builder.CreateUnaryIntrinsic(IID, CI->getArgOperand(0)); +  } else if (Name.consume_front("ex2.approx.")) { +    // nvvm.ex2.approx.{f,ftz.f,d,f16x2} +    Intrinsic::ID IID = Name.starts_with("ftz") ? Intrinsic::nvvm_ex2_approx_ftz +                                                : Intrinsic::nvvm_ex2_approx; +    Rep = Builder.CreateUnaryIntrinsic(IID, CI->getArgOperand(0));    } else if (Name.starts_with("atomic.load.add.f32.p") ||               Name.starts_with("atomic.load.add.f64.p")) {      Value *Ptr = CI->getArgOperand(0); diff --git a/llvm/lib/IR/ConstantsContext.h b/llvm/lib/IR/ConstantsContext.h index 51fb40b..e3e8d89 100644 --- a/llvm/lib/IR/ConstantsContext.h +++ b/llvm/lib/IR/ConstantsContext.h @@ -535,7 +535,7 @@ struct ConstantPtrAuthKeyType {    unsigned getHash() const { return hash_combine_range(Operands); } -  using TypeClass = typename ConstantInfo<ConstantPtrAuth>::TypeClass; +  using TypeClass = ConstantInfo<ConstantPtrAuth>::TypeClass;    ConstantPtrAuth *create(TypeClass *Ty) const {      return new ConstantPtrAuth(Operands[0], cast<ConstantInt>(Operands[1]), diff --git a/llvm/lib/IR/ModuleSummaryIndex.cpp b/llvm/lib/IR/ModuleSummaryIndex.cpp index 62fd62c..3394754 100644 --- a/llvm/lib/IR/ModuleSummaryIndex.cpp +++ b/llvm/lib/IR/ModuleSummaryIndex.cpp @@ -34,8 +34,6 @@ static cl::opt<bool> ImportConstantsWithRefs(      "import-constants-with-refs", cl::init(true), cl::Hidden,      cl::desc("Import constant global variables with references")); -constexpr uint32_t FunctionSummary::ParamAccess::RangeWidth; -  FunctionSummary FunctionSummary::ExternalNode =      FunctionSummary::makeDummyFunctionSummary(          SmallVector<FunctionSummary::EdgeTy, 0>()); @@ -88,8 +86,6 @@ std::pair<unsigned, unsigned> FunctionSummary::specialRefCounts() const {    return {RORefCnt, WORefCnt};  } -constexpr uint64_t ModuleSummaryIndex::BitcodeSummaryVersion; -  uint64_t ModuleSummaryIndex::getFlags() const {    uint64_t Flags = 0;    // Flags & 0x4 is reserved. DO NOT REUSE. diff --git a/llvm/lib/IR/Value.cpp b/llvm/lib/IR/Value.cpp index b775cbb..95d61a9 100644 --- a/llvm/lib/IR/Value.cpp +++ b/llvm/lib/IR/Value.cpp @@ -148,18 +148,10 @@ void Value::destroyValueName() {  }  bool Value::hasNUses(unsigned N) const { -  if (!UseList) -    return N == 0; - -  // TODO: Disallow for ConstantData and remove !UseList check?    return hasNItems(use_begin(), use_end(), N);  }  bool Value::hasNUsesOrMore(unsigned N) const { -  // TODO: Disallow for ConstantData and remove !UseList check? -  if (!UseList) -    return N == 0; -    return hasNItemsOrMore(use_begin(), use_end(), N);  }  | 
