diff options
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(); } |