[llvm-branch-commits] [Remarks] Restructure bitstream remarks to be fully standalone (PR #156715)
Jon Roelofs via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Sep 11 07:45:24 PDT 2025
================
@@ -256,14 +251,57 @@ Error BitstreamParserHelper::parseBlockInfoBlock() {
return Error::success();
}
-Error BitstreamParserHelper::advanceToMetaBlock() {
+Error BitstreamParserHelper::parseMeta() {
if (Error E = expectMagic())
return E;
if (Error E = parseBlockInfoBlock())
return E;
+
+ // Parse early meta block
+ if (Error E = MetaHelper.expectBlock())
+ return E;
+ if (Error E = MetaHelper.parseBlock())
+ return E;
+
+ // Skip all Remarks blocks
+ while (!Stream.AtEndOfStream()) {
+ auto MaybeBlockID = expectSubBlock(Stream);
+ if (!MaybeBlockID)
+ return MaybeBlockID.takeError();
+ if (*MaybeBlockID == META_BLOCK_ID)
+ break;
+ if (*MaybeBlockID != REMARK_BLOCK_ID)
+ return error("Unexpected block between meta blocks.");
+ // Remember first remark block
+ if (!RemarkStartBitPos)
+ RemarkStartBitPos = Stream.GetCurrentBitNo();
+ if (Error E = Stream.SkipBlock())
+ return E;
+ }
+
+ // Late meta block is optional if there are no remarks.
+ if (Stream.AtEndOfStream())
+ return Error::success();
+
+ // Parse late meta block
+ if (Error E = MetaHelper.parseBlock())
+ return E;
return Error::success();
}
+Error BitstreamParserHelper::parseRemark() {
+ if (RemarkStartBitPos) {
+ RemarkStartBitPos.reset();
+ } else {
----------------
jroelofs wrote:
```suggestion
if (RemarkStartBitPos)
RemarkStartBitPos.reset();
else {
```
https://github.com/llvm/llvm-project/pull/156715
More information about the llvm-branch-commits
mailing list