24 for (
unsigned i = 0, e =
Other.size(); i < e; ++i)
32 size_t NextID = StrTab.size();
33 auto KV = StrTab.insert({Str, NextID});
36 SerializedSize += KV.first->first().size() + 1;
38 return {KV.first->second, KV.first->first()};
42 auto Impl = [&](
StringRef &S) { S = add(S).second; };
47 Impl(R.Loc->SourceFilePath);
52 Impl(Arg.
Loc->SourceFilePath);
66 std::vector<StringRef> Strings{StrTab.size()};
67 for (
const auto &KV : StrTab)
68 Strings[KV.second] = KV.first();
std::optional< std::vector< StOtherPiece > > Other
Tagged union holding either a T or a Error.
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)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
This is an optimization pass for GlobalISel generic memory operations.