diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-07-25 10:21:58 +0100 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2023-07-25 10:22:08 +0100 |
commit | 3d83912c0c7be63d24e54792b300f394931a363b (patch) | |
tree | 4a883027d6fa349db52e14836e8b9a01e2989614 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | |
parent | 9e44ba650c8bef5cb0a0e3c2dfd2b9b8eef373a4 (diff) | |
download | llvm-3d83912c0c7be63d24e54792b300f394931a363b.zip llvm-3d83912c0c7be63d24e54792b300f394931a363b.tar.gz llvm-3d83912c0c7be63d24e54792b300f394931a363b.tar.bz2 |
Revert rGfae7b98c221b5b28797f7b56b656b6b819d99f27 "[Support] Change SetVector's default template parameter to SmallVector<*, 0>"
This is failing on Windows MSVC builds:
llvm\unittests\Support\ThreadPool.cpp(380): error C2440: 'return': cannot convert from 'Vector' to 'std::vector<llvm::BitVector,std::allocator<llvm::BitVector>>'
with
[
Vector=llvm::SmallVector<llvm::BitVector,0>
]
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/ModuleSummaryAnalysis.cpp | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp index 775bb95..2076ed4 100644 --- a/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp +++ b/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp @@ -93,7 +93,7 @@ extern cl::opt<bool> ScalePartialSampleProfileWorkingSetSize; // instruction in it takes an address of any basic block, because instruction // can only take an address of basic block located in the same function. static bool findRefEdges(ModuleSummaryIndex &Index, const User *CurUser, - SetVector<ValueInfo, std::vector<ValueInfo>> &RefEdges, + SetVector<ValueInfo> &RefEdges, SmallPtrSet<const User *, 8> &Visited) { bool HasBlockAddress = false; SmallVector<const User *, 32> Worklist; @@ -144,12 +144,9 @@ static bool isNonRenamableLocal(const GlobalValue &GV) { /// Determine whether this call has all constant integer arguments (excluding /// "this") and summarize it to VCalls or ConstVCalls as appropriate. -static void addVCallToSet( - DevirtCallSite Call, GlobalValue::GUID Guid, - SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> - &VCalls, - SetVector<FunctionSummary::ConstVCall, - std::vector<FunctionSummary::ConstVCall>> &ConstVCalls) { +static void addVCallToSet(DevirtCallSite Call, GlobalValue::GUID Guid, + SetVector<FunctionSummary::VFuncId> &VCalls, + SetVector<FunctionSummary::ConstVCall> &ConstVCalls) { std::vector<uint64_t> Args; // Start from the second argument to skip the "this" pointer. for (auto &Arg : drop_begin(Call.CB.args())) { @@ -166,18 +163,11 @@ static void addVCallToSet( /// If this intrinsic call requires that we add information to the function /// summary, do so via the non-constant reference arguments. static void addIntrinsicToSummary( - const CallInst *CI, - SetVector<GlobalValue::GUID, std::vector<GlobalValue::GUID>> &TypeTests, - SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> - &TypeTestAssumeVCalls, - SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> - &TypeCheckedLoadVCalls, - SetVector<FunctionSummary::ConstVCall, - std::vector<FunctionSummary::ConstVCall>> - &TypeTestAssumeConstVCalls, - SetVector<FunctionSummary::ConstVCall, - std::vector<FunctionSummary::ConstVCall>> - &TypeCheckedLoadConstVCalls, + const CallInst *CI, SetVector<GlobalValue::GUID> &TypeTests, + SetVector<FunctionSummary::VFuncId> &TypeTestAssumeVCalls, + SetVector<FunctionSummary::VFuncId> &TypeCheckedLoadVCalls, + SetVector<FunctionSummary::ConstVCall> &TypeTestAssumeConstVCalls, + SetVector<FunctionSummary::ConstVCall> &TypeCheckedLoadConstVCalls, DominatorTree &DT) { switch (CI->getCalledFunction()->getIntrinsicID()) { case Intrinsic::type_test: @@ -279,14 +269,12 @@ static void computeFunctionSummary( MapVector<ValueInfo, CalleeInfo, DenseMap<ValueInfo, unsigned>, std::vector<std::pair<ValueInfo, CalleeInfo>>> CallGraphEdges; - SetVector<ValueInfo, std::vector<ValueInfo>> RefEdges, LoadRefEdges, - StoreRefEdges; - SetVector<GlobalValue::GUID, std::vector<GlobalValue::GUID>> TypeTests; - SetVector<FunctionSummary::VFuncId, std::vector<FunctionSummary::VFuncId>> - TypeTestAssumeVCalls, TypeCheckedLoadVCalls; - SetVector<FunctionSummary::ConstVCall, - std::vector<FunctionSummary::ConstVCall>> - TypeTestAssumeConstVCalls, TypeCheckedLoadConstVCalls; + SetVector<ValueInfo> RefEdges, LoadRefEdges, StoreRefEdges; + SetVector<GlobalValue::GUID> TypeTests; + SetVector<FunctionSummary::VFuncId> TypeTestAssumeVCalls, + TypeCheckedLoadVCalls; + SetVector<FunctionSummary::ConstVCall> TypeTestAssumeConstVCalls, + TypeCheckedLoadConstVCalls; ICallPromotionAnalysis ICallAnalysis; SmallPtrSet<const User *, 8> Visited; @@ -517,7 +505,7 @@ static void computeFunctionSummary( std::vector<ValueInfo> Refs; if (IsThinLTO) { auto AddRefEdges = [&](const std::vector<const Instruction *> &Instrs, - SetVector<ValueInfo, std::vector<ValueInfo>> &Edges, + SetVector<ValueInfo> &Edges, SmallPtrSet<const User *, 8> &Cache) { for (const auto *I : Instrs) { Cache.erase(I); @@ -722,7 +710,7 @@ static void computeVariableSummary(ModuleSummaryIndex &Index, DenseSet<GlobalValue::GUID> &CantBePromoted, const Module &M, SmallVectorImpl<MDNode *> &Types) { - SetVector<ValueInfo, std::vector<ValueInfo>> RefEdges; + SetVector<ValueInfo> RefEdges; SmallPtrSet<const User *, 8> Visited; bool HasBlockAddress = findRefEdges(Index, &V, RefEdges, Visited); bool NonRenamableLocal = isNonRenamableLocal(V); |