From 1c932baeaafbd4c9051ed4836f320db9003f4068 Mon Sep 17 00:00:00 2001 From: Leonard Chan Date: Wed, 10 Feb 2021 10:48:22 -0800 Subject: [llvm][Bitcode] Add bitcode reader/writer for DSOLocalEquivalent This is necessary for compilation with [thin]lto. Differential Revision: https://reviews.llvm.org/D96170 --- llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp') diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index f88c371..fd24329 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -2888,6 +2888,20 @@ Error BitcodeReader::parseConstants() { V = BlockAddress::get(Fn, BB); break; } + case bitc::CST_CODE_DSO_LOCAL_EQUIVALENT: { + if (Record.size() < 2) + return error("Invalid record"); + Type *GVTy = getTypeByID(Record[0]); + if (!GVTy) + return error("Invalid record"); + GlobalValue *GV = dyn_cast_or_null( + ValueList.getConstantFwdRef(Record[1], GVTy)); + if (!GV) + return error("Invalid record"); + + V = DSOLocalEquivalent::get(GV); + break; + } } assert(V->getType() == flattenPointerTypes(CurFullTy) && -- cgit v1.1