ilya-biryukov added inline comments.

================
Comment at: clang/lib/Serialization/ASTWriter.cpp:2181
+      // Common cases are covered by abbreviations.
+      unsigned Abbrev = [&]() -> unsigned {
+        if (!Expansion.isExpansionTokenRange()) // Token splits.
----------------
NIT: maybe avoid the lambda? The code is short enough to be readable without 
early returns:
```
unsigned Abbrev = 0;
if (Expansion.isExpansionTokenRange()) {
  if (Expansion.isMacroArgExpansion())
    Abbrev = SLocArgExpansionAbbrv;
  else if (EndIsRelative && Expansion.isFunctionMacroExpansion())
    Abbrev = SLocFunctionExpansionAbbrv;
  else if (EndIsRelative)
    Abbrev = SLocObjectExpansionAbbrv;
}
```


================
Comment at: clang/lib/Serialization/ASTWriter.cpp:2195
+      else
+        Stream.EmitRecord(SM_SLOC_EXPANSION_ENTRY,
+                          // To emit without abbrev, we must omit the code.
----------------
It's probably obvious, but I'm not an expert in bitcode format.

Can we have larger records now than before? Are any records emitted without 
abbreviations larger than with abbreviations?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D124420/new/

https://reviews.llvm.org/D124420

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to