7 Commits

Author SHA1 Message Date
Chuanqi Xu
da00c60dae
[C++20] [Modules] Introduce reduced BMI (#75894)
Close https://github.com/llvm/llvm-project/issues/71034

See

https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755

This patch introduces reduced BMI, which doesn't contain the definitions
of functions and variables if its definitions won't contribute to the
ABI.

Testing is a big part of the patch. We want to make sure the reduced BMI
contains the same behavior with the existing and relatively stable
fatBMI. This is pretty helpful for further reduction.

The user interfaces part it left to following patches to ease the
reviewing.
2024-03-08 10:12:51 +08:00
Krasimir Georgiev
b2ebd8b897
clang serialization unittests: fix some leaks (#82773)
No functional changes intended.

Fixes some leaks found by running under asan with `--gtest_repeat=2`.
2024-02-26 16:58:39 +01:00
Kadir Cetinkaya
476e7c49ec
[clang][test] Use a physical copy of FS
Make use of a physical copy, rather than real FS in unittests that
change working-directory to get rid of the side effect of changing cwd for the
whole process. It's triggering crashes depending on the test order.

Differential Revision: https://reviews.llvm.org/D152265
2023-06-06 15:45:55 +02:00
Chuanqi Xu
1c9a8004ed Recommit [C++20] [Modules] Serialize the evaluated constant values for VarDecl
Close https://github.com/llvm/llvm-project/issues/62796.

Previously, we didn't serialize the evaluated result for VarDecl. This
caused the compilation of template metaprogramming become slower than
expect. This patch fixes the issue.

This is a recommit tested with asan built clang.
2023-05-24 15:45:16 +08:00
Chuanqi Xu
651b40e8ff Revert "[C++20] [Modules] Serialize the evaluated constant values for VarDecl"
This reverts commit c0d6f85e3ae8bcfdb7217d165314f01c1a4af9ae. The asan
bot detected a memory leak after this patch. Revert it for now.
2023-05-24 13:56:09 +08:00
Chuanqi Xu
597dd1f91d [NFC] Fix the warning for dangling pointer for c0d6f85e3ae8bc
The bot notes a warning-converted-error for the dangling pointer. And
the patch fixes that.
2023-05-24 11:42:55 +08:00
Chuanqi Xu
c0d6f85e3a [C++20] [Modules] Serialize the evaluated constant values for VarDecl
Close https://github.com/llvm/llvm-project/issues/62796.

Previously, we didn't serialize the evaluated result for VarDecl. This
caused the compilation of template metaprogramming become slower than
expect. This patch fixes the issue.
2023-05-24 10:17:33 +08:00