================
@@ -111,6 +109,28 @@ void *Decl::operator new(std::size_t Size, const
ASTContext &Ctx,
return ::operator new(Size + Extra, Ctx);
}
+GlobalDeclID Decl::getGlobalID() const {
+ if (!isFromASTFile())
+ return GlobalDeclID();
+ uint64_t ID = *((const uint64_t *)this - 1);
----------------
ChuanqiXu9 wrote:
Previously, for deserialized declaration, clang would apply an additional 64
bits for it. And clang would store the global declaration ID at the lower 32
bits and store the module index at the higher 32 bits.
And after this patch, we extend the global declaration ID to 64 bits and I
don't want to apply additional spaces. So I decided to use the lower 48 bits to
store the declaration ID and the higher 16 bits to store the module index.
I added a comment here to clarify that.
And as I mentioned in the message, it looks like there are relationships
between module index and module file index (the upper 16 bits of the new
declaration ID). But on the one hand, I want to make the patch as simple as
possible to make it land faster. On the other hand, it looks like 16 bits is
enough for both module index and module file index. And we can't get any
improvements by merge it. So I just leave it as is.
https://github.com/llvm/llvm-project/pull/92083
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits