diff options
| author | Justin Bogner <mail@justinbogner.com> | 2014-04-23 18:50:16 +0000 |
|---|---|---|
| committer | Justin Bogner <mail@justinbogner.com> | 2014-04-23 18:50:16 +0000 |
| commit | fa5b013d48ac2da63eaaa6627291c649752e5ade (patch) | |
| tree | e05786d26bb590c9f4af789aa72c2dec81746cd9 /llvm | |
| parent | e9591b33e29cf72c6b3bab60d9625c706dc00d87 (diff) | |
| download | bcm5719-llvm-fa5b013d48ac2da63eaaa6627291c649752e5ade.tar.gz bcm5719-llvm-fa5b013d48ac2da63eaaa6627291c649752e5ade.zip | |
ProfileData: Avoid unnecessary copies of CounterData
We're currently copying CounterData from InstrProfWriter into the
OnDiskHashTable, even though we don't need to, and then carelessly
leaking those copies. A const pointer is much better here.
llvm-svn: 207009
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/ProfileData/InstrProfWriter.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/ProfileData/InstrProfWriter.cpp b/llvm/lib/ProfileData/InstrProfWriter.cpp index 83d03d6a287..83c41d93bb1 100644 --- a/llvm/lib/ProfileData/InstrProfWriter.cpp +++ b/llvm/lib/ProfileData/InstrProfWriter.cpp @@ -27,8 +27,8 @@ public: typedef StringRef key_type; typedef StringRef key_type_ref; - typedef InstrProfWriter::CounterData data_type; - typedef const InstrProfWriter::CounterData &data_type_ref; + typedef const InstrProfWriter::CounterData *const data_type; + typedef const InstrProfWriter::CounterData *const data_type_ref; typedef uint64_t hash_value_type; typedef uint64_t offset_type; @@ -45,7 +45,7 @@ public: offset_type N = K.size(); LE.write<offset_type>(N); - offset_type M = (1 + V.Counts.size()) * sizeof(uint64_t); + offset_type M = (1 + V->Counts.size()) * sizeof(uint64_t); LE.write<offset_type>(M); return std::make_pair(N, M); @@ -59,8 +59,8 @@ public: offset_type) { using namespace llvm::support; endian::Writer<little> LE(Out); - LE.write<uint64_t>(V.Hash); - for (uint64_t I : V.Counts) + LE.write<uint64_t>(V->Hash); + for (uint64_t I : V->Counts) LE.write<uint64_t>(I); } }; @@ -100,7 +100,7 @@ void InstrProfWriter::write(raw_fd_ostream &OS) { // Populate the hash table generator. for (const auto &I : FunctionData) { - Generator.insert(I.getKey(), I.getValue()); + Generator.insert(I.getKey(), &I.getValue()); if (I.getValue().Counts[0] > MaxFunctionCount) MaxFunctionCount = I.getValue().Counts[0]; } |

