diff options
author | Vitaly Buka <vitalybuka@google.com> | 2020-08-14 12:42:21 -0700 |
---|---|---|
committer | Vitaly Buka <vitalybuka@google.com> | 2020-08-14 12:42:44 -0700 |
commit | fc4fd898522afac2d54003f34a4656d898358b03 (patch) | |
tree | cc922607bac10a4bdc50155803e34d63c3201326 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
parent | 79ce64ea0872b81ca73e26c4c8ec1680439064bd (diff) | |
download | llvm-fc4fd898522afac2d54003f34a4656d898358b03.zip llvm-fc4fd898522afac2d54003f34a4656d898358b03.tar.gz llvm-fc4fd898522afac2d54003f34a4656d898358b03.tar.bz2 |
[StackSafety] Use ValueInfo in ParamAccess::Call
This avoid GUID lookup in Index.findSummaryInModule.
Follow up for D81242.
Reviewed By: tejohnson
Differential Revision: https://reviews.llvm.org/D85269
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r-- | llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index 82b6f20..0fa502f 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -835,6 +835,8 @@ private: void parseTypeIdCompatibleVtableSummaryRecord(ArrayRef<uint64_t> Record); void parseTypeIdCompatibleVtableInfo(ArrayRef<uint64_t> Record, size_t &Slot, TypeIdCompatibleVtableInfo &TypeId); + std::vector<FunctionSummary::ParamAccess> + parseParamAccesses(ArrayRef<uint64_t> Record); std::pair<ValueInfo, GlobalValue::GUID> getValueInfoFromValueId(unsigned ValueId); @@ -5856,8 +5858,8 @@ static void parseTypeIdSummaryRecord(ArrayRef<uint64_t> Record, parseWholeProgramDevirtResolution(Record, Strtab, Slot, TypeId); } -static std::vector<FunctionSummary::ParamAccess> -parseParamAccesses(ArrayRef<uint64_t> Record) { +std::vector<FunctionSummary::ParamAccess> +ModuleSummaryIndexBitcodeReader::parseParamAccesses(ArrayRef<uint64_t> Record) { auto ReadRange = [&]() { APInt Lower(FunctionSummary::ParamAccess::RangeWidth, BitcodeReader::decodeSignRotatedValue(Record.front())); @@ -5883,7 +5885,7 @@ parseParamAccesses(ArrayRef<uint64_t> Record) { for (auto &Call : ParamAccess.Calls) { Call.ParamNo = Record.front(); Record = Record.drop_front(); - Call.Callee = Record.front(); + Call.Callee = getValueInfoFromValueId(Record.front()).first; Record = Record.drop_front(); Call.Offsets = ReadRange(); } |