32 R.push_back(RecordID);
56 auto Abbrev = std::make_shared<BitCodeAbbrev>();
68 auto Abbrev = std::make_shared<BitCodeAbbrev>();
80 R.push_back(RemarkVersion);
87 auto Abbrev = std::make_shared<BitCodeAbbrev>();
111 auto Abbrev = std::make_shared<BitCodeAbbrev>();
133 auto Abbrev = std::make_shared<BitCodeAbbrev>();
147 auto Abbrev = std::make_shared<BitCodeAbbrev>();
160 auto Abbrev = std::make_shared<BitCodeAbbrev>();
172 auto Abbrev = std::make_shared<BitCodeAbbrev>();
188 auto Abbrev = std::make_shared<BitCodeAbbrev>();
235 uint64_t ContainerVersion, std::optional<uint64_t> RemarkVersion,
236 std::optional<const StringTable *> StrTab,
237 std::optional<StringRef> Filename) {
244 R.push_back(ContainerVersion);
250 assert(StrTab != std::nullopt && *StrTab !=
nullptr);
252 assert(Filename != std::nullopt);
256 assert(RemarkVersion != std::nullopt);
260 assert(RemarkVersion != std::nullopt);
262 assert(StrTab != std::nullopt && *StrTab !=
nullptr);
282 if (
const std::optional<RemarkLocation> &
Loc =
Remark.
Loc) {
285 R.push_back(StrTab.
add(
Loc->SourceFilePath).first);
286 R.push_back(
Loc->SourceLine);
287 R.push_back(
Loc->SourceColumn);
294 R.push_back(*Hotness);
300 unsigned Key = StrTab.
add(Arg.
Key).first;
301 unsigned Val = StrTab.
add(Arg.
Val).first;
302 bool HasDebugLoc = Arg.
Loc != std::nullopt;
308 R.push_back(StrTab.
add(Arg.
Loc->SourceFilePath).first);
309 R.push_back(Arg.
Loc->SourceLine);
310 R.push_back(Arg.
Loc->SourceColumn);
312 Bitstream.EmitRecordWithAbbrev(HasDebugLoc
334 "For SerializerMode::Standalone, a pre-filled string table needs to "
347 StrTab = std::move(StrTabIn);
359 : std::optional<const StringTable *>(std::nullopt));
365 "The Block info block and the meta block were not emitted yet.");
372 raw_ostream &
OS, std::optional<StringRef> ExternalFilename) {
377 return std::make_unique<BitstreamMetaSerializer>(
381 &*
StrTab, ExternalFilename);
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
BitCodeAbbrevOp - This describes one or more operands in an abbreviation.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
StringRef - Represent a constant reference to a string, i.e.
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & write(unsigned char C)
A raw_ostream that writes to an std::string.
std::string & str()
Returns the string's reference.
@ C
The default llvm calling convention, compatible with C.
@ BLOCKINFO_CODE_BLOCKNAME
@ BLOCKINFO_CODE_SETRECORDNAME
This is an optimization pass for GlobalISel generic memory operations.
void append_range(Container &C, Range &&R)
Wrapper function to append range R to container C.
LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key