Skip to content

[C++20] [Modules] Try to introduce thin BMI to exclude the things not necessary in an interface #71034

Closed
@ChuanqiXu9

Description

@ChuanqiXu9

Let's call the current BMI for named modules as fat BMI. Since it contains all the information needed to compile the BMI itself to an object file. And this is the foundation of 2 phase compilations.

However, it is a waste of time and space if we're using one phase compilations.

Then let's call the BMI which doesn't contain all the information to produce an object file, but is able to satisfy the requirement of consumers of the modules as thin BMI. Then it is clear that we should use thin BMI then fat BMI in one phase compilation.

Also in 2 phase compilations, the thin BMI may be helpful too if the build systems want to use a compare-and-swap strategy to generate the BMI based on the BMIDeclsHash (See #71618).

Metadata

Metadata

Assignees

Labels

clang:modulesC++20 modules and Clang Header Modules

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions