[clang] D41416: [modules] [pch] Do not deserialize all lazy template specializations when looking for one. (PR #83108)

2024-07-10 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/83108 >From 1f7c6650f739092a1b8908de3793aa8bbdc7de34 Mon Sep 17 00:00:00 2001 From: Vassil Vassilev Date: Sun, 7 Jan 2018 15:16:11 +0200 Subject: [PATCH 1/2] D41416: [modules] [pch] Do not deserialize all lazy

[clang] 62a7562 - [docs] [C++20] [Modules] Add a workaround document for missing vtables

2024-07-09 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-07-10T11:23:14+08:00 New Revision: 62a7562b828ee9df6a41b6ce3dfda7c5511816a6 URL: https://github.com/llvm/llvm-project/commit/62a7562b828ee9df6a41b6ce3dfda7c5511816a6 DIFF: https://github.com/llvm/llvm-project/commit/62a7562b828ee9df6a41b6ce3dfda7c5511816a6.diff

[clang] 91d40ef - Revert "[C++20] [Modules] [Itanium ABI] Generate the vtable in the module unit of dynamic classes (#75912)"

2024-07-09 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-07-10T10:58:18+08:00 New Revision: 91d40ef6e369a73b0147d9153a95c3bc63e14102 URL: https://github.com/llvm/llvm-project/commit/91d40ef6e369a73b0147d9153a95c3bc63e14102 DIFF: https://github.com/llvm/llvm-project/commit/91d40ef6e369a73b0147d9153a95c3bc63e14102.diff

[clang] [C++20] [Modules] [Itanium ABI] Generate the vtable in the module unit of dynamic classes (PR #75912)

2024-07-09 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Given this patch has another unexpected behavior in windows (https://github.com/llvm/llvm-project/issues/97447), I'd like to revert this temporarily to wait for the response from Windows devs and your reproducer @mizvekov https://github.com/llvm/llvm-project/pull/75912

[clang] [C++20] [Modules] [Itanium ABI] Generate the vtable in the module unit of dynamic classes (PR #75912)

2024-07-09 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > FYI, the commit > [99873b3](https://github.com/llvm/llvm-project/commit/99873b35da7ecb905143c8a6b8deca4d4416f1a9), > which lists this PR as a motivator, causes breakage building a project, > which I am still looking for a reduced test case. > > The commit is not NFC

[clang-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2024-07-09 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Given we are going to branch clang19 in the end of the month, it is highly possible that we can't land sufficient patches before that. Note that even if we land this patch before that, the support of modules in clangd is expected to very slow for real world applications. See

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-07 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-07 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/96453 >From a035ae25314f3168f73108988f2bb7671e7d9e7f Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Mon, 24 Jun 2024 11:41:23 +0800 Subject: [PATCH 1/5] [Doc] Update documentation for no-transitive-change ---

[clang] D41416: [modules] [pch] Do not deserialize all lazy template specializations when looking for one. (PR #83108)

2024-07-05 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/83108 >From 270cdac974482a9852fa8c1bff517d444a5f51f2 Mon Sep 17 00:00:00 2001 From: Vassil Vassilev Date: Sun, 7 Jan 2018 15:16:11 +0200 Subject: [PATCH 1/2] D41416: [modules] [pch] Do not deserialize all lazy

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-04 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2024-07-04 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > Hi, sorry if this is off topic -- How can I try this PR? > > I've done the following: > > 1. checked out the latest commit on the `clangmodules` branch > ([16541c8](https://github.com/llvm/llvm-project/commit/16541c8bf44cf38497ce6fd7377ee966d61be5aa)), > and built it from

[clang] [clang][deps] Don't treat ObjC method args as module directives (PR #97654)

2024-07-04 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM as it looks like not affecting C++20 modules. https://github.com/llvm/llvm-project/pull/97654 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] 7ee421d - [C++20] [Modules] Skip calls to module initializer to modules if we know the module doesn't init anything

2024-07-01 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-07-02T13:55:30+08:00 New Revision: 7ee421d29612ae919edfe7250b87e3c738d66a26 URL: https://github.com/llvm/llvm-project/commit/7ee421d29612ae919edfe7250b87e3c738d66a26 DIFF: https://github.com/llvm/llvm-project/commit/7ee421d29612ae919edfe7250b87e3c738d66a26.diff

[clang] 18f3bcb - [C++20] [Modules] Correct the linkage for template instantiations in

2024-07-01 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-07-02T11:43:26+08:00 New Revision: 18f3bcbb13ca83d33223b00761d8cddf463e9ffb URL: https://github.com/llvm/llvm-project/commit/18f3bcbb13ca83d33223b00761d8cddf463e9ffb DIFF: https://github.com/llvm/llvm-project/commit/18f3bcbb13ca83d33223b00761d8cddf463e9ffb.diff

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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 Non

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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 Non

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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 Non

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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 Non

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -157,6 +157,13 @@ here. Generic improvements to Clang as a whole or to its underlying infrastructure are described first, followed by language-specific sections with improvements to Clang's support for those languages. +- Clang implemented improvements to BMI of C++20

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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 Non

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-07-01 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/96453 >From a035ae25314f3168f73108988f2bb7671e7d9e7f Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Mon, 24 Jun 2024 11:41:23 +0800 Subject: [PATCH 1/4] [Doc] Update documentation for no-transitive-change ---

[clang] [Serialization] Clear moved-from deque to ensure valid state post-move (PR #97221)

2024-06-30 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/97221 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 76864e6 - [C++20] [Modules] Don't find module for linkage for decls in global

2024-06-28 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-28T16:12:50+08:00 New Revision: 76864e6af134aa240069d42ba15e0b89fd7d6b4c URL: https://github.com/llvm/llvm-project/commit/76864e6af134aa240069d42ba15e0b89fd7d6b4c DIFF: https://github.com/llvm/llvm-project/commit/76864e6af134aa240069d42ba15e0b89fd7d6b4c.diff

[clang-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2024-06-28 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: @kadircet ping~ https://github.com/llvm/llvm-project/pull/66462 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-27 Thread Chuanqi Xu via cfe-commits
@@ -1070,13 +1076,26 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, // Mark as initialized before initializing anything else. If the // initializers use previously-initialized thread_local vars, that's // probably supposed to be OK, but

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-27 Thread Chuanqi Xu via cfe-commits
@@ -1059,9 +1059,15 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, if (Guard.isValid()) { // If we have a guard variable, check whether we've already performed // these initializations. This happens for TLS initialization functions. -

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/96453 >From a035ae25314f3168f73108988f2bb7671e7d9e7f Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Mon, 24 Jun 2024 11:41:23 +0800 Subject: [PATCH 1/3] [Doc] Update documentation for no-transitive-change ---

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/96453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [HLSL] Implement `export` keyword (PR #96823)

2024-06-26 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: The grammer looks exactly the same with modules. May it be compatible with modules? https://github.com/llvm/llvm-project/pull/96823 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -1059,9 +1059,15 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, if (Guard.isValid()) { // If we have a guard variable, check whether we've already performed // these initializations. This happens for TLS initialization functions. -

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -1070,13 +1076,26 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, // Mark as initialized before initializing anything else. If the // initializers use previously-initialized thread_local vars, that's // probably supposed to be OK, but

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -1059,9 +1059,15 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, if (Guard.isValid()) { // If we have a guard variable, check whether we've already performed // these initializations. This happens for TLS initialization functions. -

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -1070,13 +1076,26 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, // Mark as initialized before initializing anything else. If the // initializers use previously-initialized thread_local vars, that's // probably supposed to be OK, but

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -1059,9 +1059,15 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, if (Guard.isValid()) { // If we have a guard variable, check whether we've already performed // these initializations. This happens for TLS initialization functions. -

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-26 Thread Chuanqi Xu via cfe-commits
@@ -652,6 +652,141 @@ 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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/96453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 2ee2b6a - [Coroutines] Clear FirstVLALoc in time

2024-06-25 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-26T13:25:06+08:00 New Revision: 2ee2b6aa7a3d9ba6ba13f6881b25e26d7d12c823 URL: https://github.com/llvm/llvm-project/commit/2ee2b6aa7a3d9ba6ba13f6881b25e26d7d12c823 DIFF: https://github.com/llvm/llvm-project/commit/2ee2b6aa7a3d9ba6ba13f6881b25e26d7d12c823.diff

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -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

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -229,6 +229,10 @@ C++20 Feature Support will now work. (#GH62925). +- Clang refactored the BMI format to make it possible to support no transitive changes ChuanqiXu9 wrote: Good suggestions. Applied. (Just change `should` to `can`. Since I feel

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-25 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/96453 >From a035ae25314f3168f73108988f2bb7671e7d9e7f Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Mon, 24 Jun 2024 11:41:23 +0800 Subject: [PATCH 1/2] [Doc] Update documentation for no-transitive-change ---

[clang] [Clang] Access tls_guard via llvm.threadlocal.address (PR #96633)

2024-06-25 Thread Chuanqi Xu via cfe-commits
@@ -1059,9 +1059,10 @@ CodeGenFunction::GenerateCXXGlobalInitFunc(llvm::Function *Fn, if (Guard.isValid()) { // If we have a guard variable, check whether we've already performed // these initializations. This happens for TLS initialization functions. -

[clang] [Serialization] Storing DeclID separately (PR #95897)

2024-06-25 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > Thanks for this patch, I will try it on our codebase to see the effects of it > and report back to you. I am also trying to understand in which cases this > would be a win and when not. IIUC, this is always a win when `ModuleFileIndex > != 0` and a pessimization otherwise.

[clang] fa20184 - [C++20] [Modules] [Serialization] Don't reuse type ID and identifier ID from imported modules

2024-06-25 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-25T15:04:32+08:00 New Revision: fa20184a8f336e4154f2ffeeeb8a538dc9462d9a URL: https://github.com/llvm/llvm-project/commit/fa20184a8f336e4154f2ffeeeb8a538dc9462d9a DIFF: https://github.com/llvm/llvm-project/commit/fa20184a8f336e4154f2ffeeeb8a538dc9462d9a.diff

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-24 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > I really like the idea of documenting this, hopefully this create some > fruitful discussions with the build system developers and other compiler > users. > > After trying to put myself into the shoes of the compiler users reading this, > I can't help but think that the

[clang] [Serialization] Don't read all declaration id eagerly when merge the tables (PR #95506)

2024-06-24 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > I feel the increased complexity does not seem like a good trade-off if it > does not significantly improve performance. However I don't feel too strongly > about it, so I suggest you get a second opinion if you feel strongly that we > should land this. Yeah, and I don't

[clang] cc4ec6d - [C++20] [Modules] Diagnose redeclarations from different modules

2024-06-24 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T19:03:31+08:00 New Revision: cc4ec6daf0d4f43110e8220d542c1155b8c1ef51 URL: https://github.com/llvm/llvm-project/commit/cc4ec6daf0d4f43110e8220d542c1155b8c1ef51 DIFF: https://github.com/llvm/llvm-project/commit/cc4ec6daf0d4f43110e8220d542c1155b8c1ef51.diff

[clang] 2232881 - [C++20] [Modules] Avoid comparing primary module name to decide isInSameModule all the time

2024-06-24 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T16:55:17+08:00 New Revision: 2232881736f1a7e3e94ee1123dea1b6cd85a9c3a URL: https://github.com/llvm/llvm-project/commit/2232881736f1a7e3e94ee1123dea1b6cd85a9c3a DIFF: https://github.com/llvm/llvm-project/commit/2232881736f1a7e3e94ee1123dea1b6cd85a9c3a.diff

[clang] 790f931 - [NFC] [Modules] Extract the logic to decide whether the module units belongs to the same module

2024-06-24 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T15:58:46+08:00 New Revision: 790f931886a03324714f31a626eef7e9c609ae97 URL: https://github.com/llvm/llvm-project/commit/790f931886a03324714f31a626eef7e9c609ae97 DIFF: https://github.com/llvm/llvm-project/commit/790f931886a03324714f31a626eef7e9c609ae97.diff

[clang] [Serialization] Storing DeclID separately (PR #95897)

2024-06-24 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: @ilya-biryukov I think this is ready to review and test. I think this can mitigate the size increase with the DeclID change. https://github.com/llvm/llvm-project/pull/95897 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Serialization] Storing DeclID separately (PR #95897)

2024-06-24 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 ready_for_review https://github.com/llvm/llvm-project/pull/95897 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Serialization] Storing DeclID separately (PR #95897)

2024-06-24 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/95897 >From 0e6b0ee59605d28bb031d8c2fb70fb853d853605 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Tue, 18 Jun 2024 11:28:03 +0800 Subject: [PATCH] [Serialization] Store DeclID in two slots to utilize VBR6

[clang] 79b0966 - [NFC] [Serialization] Refactor getLocalDeclID to 'LocalDeclID::get'

2024-06-24 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T14:10:52+08:00 New Revision: 79b0966f2f137869cabab42d094fc1ccbb58373c URL: https://github.com/llvm/llvm-project/commit/79b0966f2f137869cabab42d094fc1ccbb58373c DIFF: https://github.com/llvm/llvm-project/commit/79b0966f2f137869cabab42d094fc1ccbb58373c.diff

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-23 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/96453 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Doc] Update documentation for no-transitive-change (PR #96453)

2024-06-23 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 created https://github.com/llvm/llvm-project/pull/96453 (Some backgrounds, not required to read: https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755) This is the document part for the no-transitive-change

[clang] 4061354 - [Serialization] Revert specialization for DenseMapInfo::getHashValue

2024-06-23 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T11:20:09+08:00 New Revision: 4061354ab3157255238cf2664b9482bd6297dc83 URL: https://github.com/llvm/llvm-project/commit/4061354ab3157255238cf2664b9482bd6297dc83 DIFF: https://github.com/llvm/llvm-project/commit/4061354ab3157255238cf2664b9482bd6297dc83.diff

[clang] 1ecc5ae - [Serialization] Register Speical types before register decls

2024-06-23 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-24T11:08:46+08:00 New Revision: 1ecc5ae13b9061cfb37ef0c409c8a4fc4bad42c9 URL: https://github.com/llvm/llvm-project/commit/1ecc5ae13b9061cfb37ef0c409c8a4fc4bad42c9 DIFF: https://github.com/llvm/llvm-project/commit/1ecc5ae13b9061cfb37ef0c409c8a4fc4bad42c9.diff

[clang] [llvm] [Serialization] Use stable hash functions (PR #96136)

2024-06-21 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: I suspect this is the root cause that some modules related test are failing on armv8-quick. It passes with commit 12c0281f8c73bc1aa2 (https://lab.llvm.org/buildbot/#/builders/154/builds/320) and fails with b39f523af7601fe1b39b3256

[clang] d4d95ee - [Serialization] Register identifiers in ahead and don't emit predefined decls

2024-06-21 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-21T17:50:30+08:00 New Revision: d4d95ee65159db1ea1a8c4159cfdaf8b81097897 URL: https://github.com/llvm/llvm-project/commit/d4d95ee65159db1ea1a8c4159cfdaf8b81097897 DIFF: https://github.com/llvm/llvm-project/commit/d4d95ee65159db1ea1a8c4159cfdaf8b81097897.diff

[clang] [llvm] [Serialization] Use stable hash functions (PR #96136)

2024-06-21 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM then. https://github.com/llvm/llvm-project/pull/96136 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] e648603 - [C++20] [Modules] Reference all the possible declarations for ADL

2024-06-20 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-21T11:04:53+08:00 New Revision: e6486030340ea5756bec43a633567ed6411668c3 URL: https://github.com/llvm/llvm-project/commit/e6486030340ea5756bec43a633567ed6411668c3 DIFF: https://github.com/llvm/llvm-project/commit/e6486030340ea5756bec43a633567ed6411668c3.diff

[clang] [llvm] [Serialization] Use stable hash functions (PR #96136)

2024-06-20 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > > This looks generally good. > > > Some check-clang-modules tests still fail (@ChuanqiXu9) > > > > > > What does this mean? Do you mean there are some failures after this patch? > > What are they? Or are these tests failing before this patch? > > When

[clang] [Serialization] Don't read all declaration id eagerly when merge the tables (PR #95506)

2024-06-20 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > > Yeah, I think this patch may be conceptually good except the extra memory > > using. But benchmarking, I tried it locally but didn't find observable > > effects. So I'd like to land this after 19's branching to give it more > > baking time. > > Do you mean that no large

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/92511 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Thanks for reviewing https://github.com/llvm/llvm-project/pull/92511 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > Thanks! With all the explanation, the patch makes a lot of sense. Generally > LG, I just have a few more NITs and feel it's good to go. Thanks. > > I am surprised to hear we have less TypeIDs than DeclIDs. My mental model was > that for every type Decl we introduce, we'd

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/92511 >From e8f756ec7f8ea7e5bf18cc122a965fb2f258fd15 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Tue, 14 May 2024 15:33:12 +0800 Subject: [PATCH 1/5] [Serialization] No transitive identifier change ---

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -7151,15 +7135,45 @@ TypeSourceInfo *ASTRecordReader::readTypeSourceInfo() { return TInfo; } +static unsigned getIndexForTypeID(serialization::TypeID ID) { + return (ID & llvm::maskTrailingOnes(32)) >> Qualifiers::FastWidth; + ; +} + +static unsigned

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -7392,27 +7388,28 @@ QualType ASTReader::GetType(TypeID ID) { return TypesLoaded[Index].withFastQualifiers(FastQuals); } -QualType ASTReader::getLocalType(ModuleFile , unsigned LocalID) { +QualType ASTReader::getLocalType(ModuleFile , TypeID LocalID) {

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -44,10 +44,6 @@ export inline int getA() { return 43; } -export inline int getA2(int) { ChuanqiXu9 wrote: Previously, in `m-partA.v1.cppm`, we add a new declaration `int getA(int);`. And what we want to test is, the BMI of `useBOnly.cppm` shouldn't

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,68 @@ +// Testing that changing a type in an unused module file won't change +// the BMI of the current module file. +// +// RUN: rm -rf %t +// RUN: split-file %s %t +// +// RUN: %clang_cc1 -std=c++20 %t/m-partA.cppm -emit-reduced-module-interface -o %t/m-partA.pcm

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -7151,15 +7135,45 @@ TypeSourceInfo *ASTRecordReader::readTypeSourceInfo() { return TInfo; } +static unsigned getIndexForTypeID(serialization::TypeID ID) { + return (ID & llvm::maskTrailingOnes(32)) >> Qualifiers::FastWidth; + ; ChuanqiXu9 wrote: Done

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -6659,13 +6655,22 @@ void ASTWriter::MacroRead(serialization::MacroID ID, MacroInfo *MI) { } void ASTWriter::TypeRead(TypeIdx Idx, QualType T) { - // Always take the highest-numbered type index. This copes with an interesting + // Always take the type index that comes

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -70,38 +71,51 @@ using DeclID = DeclIDBase::DeclID; /// An ID number that refers to a type in an AST file. /// -/// The ID of a type is partitioned into two parts: the lower -/// three bits are used to store the const/volatile/restrict -/// qualifiers (as with QualType)

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -44,10 +44,6 @@ export inline int getA() { return 43; } -export inline int getA2(int) { ChuanqiXu9 wrote: Previously, in `m-partA.v1.cppm`, we add a new declaration `int getA(int);`. And what we want to test is, the BMI of `useBOnly.cppm` shouldn't

[clang] [serialization] No transitive type change (PR #92511)

2024-06-20 Thread Chuanqi Xu via cfe-commits
@@ -70,38 +71,51 @@ using DeclID = DeclIDBase::DeclID; /// An ID number that refers to a type in an AST file. /// -/// The ID of a type is partitioned into two parts: the lower -/// three bits are used to store the const/volatile/restrict -/// qualifiers (as with QualType)

[clang] [serialization] No transitive type change (PR #92511)

2024-06-19 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/92511 >From e8f756ec7f8ea7e5bf18cc122a965fb2f258fd15 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Tue, 14 May 2024 15:33:12 +0800 Subject: [PATCH 1/3] [Serialization] No transitive identifier change ---

[clang] [serialization] No transitive type change (PR #92511)

2024-06-19 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/92511 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Serialization] No transitive identifier change (PR #92085)

2024-06-19 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/92085 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Serialization] No transitive identifier change (PR #92085)

2024-06-19 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/92085 >From a2f883278bafb311eb290015a9cf04affeb8d760 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Tue, 14 May 2024 15:33:12 +0800 Subject: [PATCH] [Serialization] No transitive identifier change ---

[clang] da2ad44 - [HeaderSearch] Introduce LazyIdentifierInfoPtr for Controlling Macro in HeaderFileInfo

2024-06-19 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2024-06-20T13:13:47+08:00 New Revision: da2ad44119edf13eb944f7e685469352aa840e63 URL: https://github.com/llvm/llvm-project/commit/da2ad44119edf13eb944f7e685469352aa840e63 DIFF: https://github.com/llvm/llvm-project/commit/da2ad44119edf13eb944f7e685469352aa840e63.diff

  1   2   3   4   5   6   7   8   9   10   >