diff options
Diffstat (limited to 'include/llvm/IR/ModuleSummaryIndex.h')
-rw-r--r-- | include/llvm/IR/ModuleSummaryIndex.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/include/llvm/IR/ModuleSummaryIndex.h b/include/llvm/IR/ModuleSummaryIndex.h index aacf8cfc089f..be60447abd87 100644 --- a/include/llvm/IR/ModuleSummaryIndex.h +++ b/include/llvm/IR/ModuleSummaryIndex.h @@ -119,7 +119,7 @@ class GlobalValueSummary; using GlobalValueSummaryList = std::vector<std::unique_ptr<GlobalValueSummary>>; -struct LLVM_ALIGNAS(8) GlobalValueSummaryInfo { +struct alignas(8) GlobalValueSummaryInfo { union NameOrGV { NameOrGV(bool HaveGVs) { if (HaveGVs) @@ -603,7 +603,7 @@ public: if (!TypeTests.empty() || !TypeTestAssumeVCalls.empty() || !TypeCheckedLoadVCalls.empty() || !TypeTestAssumeConstVCalls.empty() || !TypeCheckedLoadConstVCalls.empty()) - TIdInfo = llvm::make_unique<TypeIdInfo>(TypeIdInfo{ + TIdInfo = std::make_unique<TypeIdInfo>(TypeIdInfo{ std::move(TypeTests), std::move(TypeTestAssumeVCalls), std::move(TypeCheckedLoadVCalls), std::move(TypeTestAssumeConstVCalls), @@ -632,6 +632,8 @@ public: /// Return the list of <CalleeValueInfo, CalleeInfo> pairs. ArrayRef<EdgeTy> calls() const { return CallGraphEdgeList; } + void addCall(EdgeTy E) { CallGraphEdgeList.push_back(E); } + /// Returns the list of type identifiers used by this function in /// llvm.type.test intrinsics other than by an llvm.assume intrinsic, /// represented as GUIDs. @@ -680,7 +682,7 @@ public: /// were unable to devirtualize a checked call. void addTypeTest(GlobalValue::GUID Guid) { if (!TIdInfo) - TIdInfo = llvm::make_unique<TypeIdInfo>(); + TIdInfo = std::make_unique<TypeIdInfo>(); TIdInfo->TypeTests.push_back(Guid); } @@ -780,7 +782,7 @@ public: void setVTableFuncs(VTableFuncList Funcs) { assert(!VTableFuncs); - VTableFuncs = llvm::make_unique<VTableFuncList>(std::move(Funcs)); + VTableFuncs = std::make_unique<VTableFuncList>(std::move(Funcs)); } ArrayRef<VirtFuncOffset> vTableFuncs() const { @@ -1293,6 +1295,12 @@ public: return nullptr; } + TypeIdSummary *getTypeIdSummary(StringRef TypeId) { + return const_cast<TypeIdSummary *>( + static_cast<const ModuleSummaryIndex *>(this)->getTypeIdSummary( + TypeId)); + } + const std::map<std::string, TypeIdCompatibleVtableInfo> & typeIdCompatibleVtableMap() const { return TypeIdCompatibleVtableMap; @@ -1411,7 +1419,7 @@ template <> struct GraphTraits<ModuleSummaryIndex *> : public GraphTraits<ValueInfo> { static NodeRef getEntryNode(ModuleSummaryIndex *I) { std::unique_ptr<GlobalValueSummary> Root = - make_unique<FunctionSummary>(I->calculateCallGraphRoot()); + std::make_unique<FunctionSummary>(I->calculateCallGraphRoot()); GlobalValueSummaryInfo G(I->haveGVs()); G.SummaryList.push_back(std::move(Root)); static auto P = |