aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2023-07-25 10:21:58 +0100
committerSimon Pilgrim <llvm-dev@redking.me.uk>2023-07-25 10:22:08 +0100
commit3d83912c0c7be63d24e54792b300f394931a363b (patch)
tree4a883027d6fa349db52e14836e8b9a01e2989614 /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parent9e44ba650c8bef5cb0a0e3c2dfd2b9b8eef373a4 (diff)
downloadllvm-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.cpp46
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);