[clang] [Doc] Update documentation for no-transitive-change (PR #96453)
Ilya Biryukov via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 25 08:33:23 PDT 2024
================
@@ -652,6 +652,134 @@ in the future. The expected roadmap for Reduced BMIs as of Clang 19.x is:
comes, the term BMI will refer to the Reduced BMI and the Full BMI will only
be meaningful to build systems which elect to support two-phase compilation.
+Experimental No Transitive Change
+---------------------------------
+
+Starting with clang19.x, we introduced an experimental feature: the non-transitive
+change for modules, aimed at reducing unnecessary recompilations. For example,
----------------
ilya-biryukov wrote:
NIT: Maybe call it "Avoiding unnecessary recompilations"?
It should carry the information people are interested in, but is more grounded in the terms that users are likely to recognize. We could introduce what it does right away:
```
Before Clang 19, a change in BMI of any (transitive) dependency would case the outputs of the BMI to change. Starting with Clang 19, changes to non-direct dependencies should not directly affect the output BMI, unless they affect the results of the compilations.
We expect that there are many more opportunities for this optimization than we currently have realized and would appreaciate feedback about missed optimization opportunities.
...
```
Having an example after that should clarify this even more.
Does that seems reasonable? (Sorry if I got something wrong, I've probably speculated a bit beyond my undestanding in the comment I wrote)
https://github.com/llvm/llvm-project/pull/96453
More information about the cfe-commits
mailing list