Skip to content

Commit 8dfc609

Browse files
committed
store string in function summary
1 parent 8739704 commit 8dfc609

File tree

2 files changed

+21
-21
lines changed

2 files changed

+21
-21
lines changed

clang/include/clang/Summary/SummaryContext.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77

88
namespace clang {
99
class FunctionSummary {
10-
SmallVector<char> ID;
10+
std::string ID;
1111
std::set<const SummaryAttr *> Attrs;
12-
std::set<SmallVector<char>> Calls;
12+
std::set<std::string> Calls;
1313
bool CallsOpaque;
1414

1515
public:
16-
FunctionSummary(SmallVector<char> ID, std::set<const SummaryAttr *> Attrs,
17-
std::set<SmallVector<char>> Calls, bool CallsOpaque);
16+
FunctionSummary(std::string ID, std::set<const SummaryAttr *> Attrs,
17+
std::set<std::string> Calls, bool CallsOpaque);
1818

19-
SmallVector<char> getID() const { return ID; }
19+
StringRef getID() const { return ID; }
2020
const std::set<const SummaryAttr *> &getAttributes() const { return Attrs; }
21-
const std::set<SmallVector<char>> &getCalls() const { return Calls; }
21+
const std::set<std::string> &getCalls() const { return Calls; }
2222
bool callsOpaqueObject() const { return CallsOpaque; }
2323

2424
template <typename T> bool hasAttribute() const {
@@ -37,14 +37,14 @@ class FunctionSummary {
3737

3838
class SummaryContext {
3939
public:
40-
std::map<SmallVector<char>, const FunctionSummary *> IDToSummary;
40+
std::map<StringRef, const FunctionSummary *> IDToSummary;
4141
std::vector<std::unique_ptr<FunctionSummary>> FunctionSummaries;
4242

4343
std::map<SummaryAttrKind, const SummaryAttr *> KindToAttribute;
4444
std::vector<std::unique_ptr<SummaryAttr>> Attributes;
4545

46-
void CreateSummary(SmallVector<char> ID, std::set<const SummaryAttr *> Attrs,
47-
std::set<SmallVector<char>> Calls, bool CallsOpaque);
46+
void CreateSummary(std::string ID, std::set<const SummaryAttr *> Attrs,
47+
std::set<std::string> Calls, bool CallsOpaque);
4848
bool ReduceFunctionSummary(FunctionSummary &FunctionSummary);
4949

5050
template <typename T> void registerAttr();

clang/lib/Summary/SummaryContext.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
namespace clang {
99
namespace {
10-
SmallVector<char> GetUSR(const FunctionDecl *FD) {
11-
SmallVector<char> USR;
10+
std::string GetUSR(const FunctionDecl *FD) {
11+
SmallString<32> USR;
1212
index::generateUSRForDecl(FD, USR);
13-
return USR;
13+
return USR.str().str();
1414
}
1515

1616
class CallCollector : public ast_matchers::MatchFinder::MatchCallback {
17-
std::set<SmallVector<char>> Calls;
17+
std::set<std::string> Calls;
1818
bool callsOpaqueSymbol = false;
1919

2020
virtual void
@@ -44,7 +44,7 @@ class CallCollector : public ast_matchers::MatchFinder::MatchCallback {
4444
}
4545

4646
public:
47-
std::pair<std::set<SmallVector<char>>, bool> collect(const FunctionDecl *FD) {
47+
std::pair<std::set<std::string>, bool> collect(const FunctionDecl *FD) {
4848
using namespace ast_matchers;
4949
MatchFinder Finder;
5050

@@ -57,9 +57,9 @@ class CallCollector : public ast_matchers::MatchFinder::MatchCallback {
5757
};
5858
} // namespace
5959

60-
FunctionSummary::FunctionSummary(SmallVector<char> ID,
60+
FunctionSummary::FunctionSummary(std::string ID,
6161
std::set<const SummaryAttr *> FunctionAttrs,
62-
std::set<SmallVector<char>> Calls,
62+
std::set<std::string> Calls,
6363
bool CallsOpaque)
6464
: ID(std::move(ID)), Attrs(std::move(FunctionAttrs)),
6565
Calls(std::move(Calls)), CallsOpaque(CallsOpaque) {}
@@ -79,9 +79,9 @@ SummaryContext::SummaryContext() {
7979
registerAttr<NoWritePtrParameterAttr>();
8080
}
8181

82-
void SummaryContext::CreateSummary(SmallVector<char> ID,
82+
void SummaryContext::CreateSummary(std::string ID,
8383
std::set<const SummaryAttr *> Attrs,
84-
std::set<SmallVector<char>> Calls,
84+
std::set<std::string> Calls,
8585
bool CallsOpaque) {
8686
if (IDToSummary.count(ID))
8787
return;
@@ -116,7 +116,7 @@ void SummaryContext::ParseSummaryFromJSON(const llvm::json::Array &Summary) {
116116
for (auto it = Summary.begin(); it != Summary.end(); ++it) {
117117
const llvm::json::Object *FunctionSummary = it->getAsObject();
118118

119-
SmallString<128> ID(*FunctionSummary->getString("id"));
119+
std::string ID = FunctionSummary->getString("id")->str();
120120
std::set<const SummaryAttr *> FunctionAttrs;
121121
const llvm::json::Array *FunctionAttributes =
122122
FunctionSummary->getObject("attrs")->getArray("function");
@@ -128,15 +128,15 @@ void SummaryContext::ParseSummaryFromJSON(const llvm::json::Array &Summary) {
128128
}
129129
}
130130

131-
std::set<SmallVector<char>> Calls;
131+
std::set<std::string> Calls;
132132
const llvm::json::Object *CallsObject = FunctionSummary->getObject("calls");
133133
bool callsOpaue = *CallsObject->getBoolean("opaque");
134134

135135
const llvm::json::Array *CallEntries = CallsObject->getArray("functions");
136136
for (auto callIt = CallEntries->begin(); callIt != CallEntries->end();
137137
++callIt) {
138138
auto *Obj = callIt->getAsObject();
139-
Calls.emplace(SmallString<128>(*Obj->getString("id")));
139+
Calls.emplace(Obj->getString("id")->str());
140140
}
141141

142142
CreateSummary(std::move(ID), std::move(FunctionAttrs), std::move(Calls),

0 commit comments

Comments
 (0)