rnk wrote:

It is true that the MSVC mangler doesn't generally canonicalize types, but I 
think we can canonicalize in the `mangleTypeName` entry point, because it 
exists to create unique type names for TBAA and CFI. You can audit the callers, 
they all relate to either of those two things.

Unrelatedly, we should not mangle names inside a sort comparator like this:
https://github.com/llvm/llvm-project/blob/5d95d27e50c1f5ce4803039d942ff3c25401c77f/clang/lib/CodeGen/CGVTables.cpp#L1319

This is wildly inefficient, we should be using a decorated sorting pattern 
instead, i.e. compute the hash upfront, make a pair with AddressPoint, and 
compare like that. I see the comparator dates to the initial CFI implementation:
https://github.com/llvm/llvm-project/commit/2c7f7e31c4c0afc84f8614a48ef7e1449b458c58#diff-1f66c1bfb33dd4d7809249cc89f056ab5688937c31c79b7ffc28bcb3d350a184R914

https://github.com/llvm/llvm-project/pull/66816
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to