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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,118 @@ +//===- ModuleFilesInfo.h -*- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited 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-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -442,6 +448,9 @@ ParsedAST::build(llvm::StringRef Filename, const ParseInputs , std::move(CI), PreamblePCH, llvm::MemoryBuffer::getMemBufferCopy(Inputs.Contents, Filename), VFS, *DiagConsumer); + + // Clangd Modules TODO: refactor the command line

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,78 @@ +//===-- ModuleDependencyScanner.h *- C++-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier:

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

2023-10-09 Thread Chuanqi Xu via cfe-commits
@@ -45,6 +45,10 @@ class GlobalCompilationDatabase { return std::nullopt; } + virtual std::vector getAllFilesInProjectOf(PathRef File) const { ChuanqiXu9 wrote: Done by adding ProjectModules class in ProjectModules.cpp file.

[clang] [C++20] [Modules] Don't emit function bodies which is noinline and av… (PR #68501)

2023-10-08 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > This doesn't seem all that useful/important to me - a user can move the body > of the function into an implementation unit rather than putting it in the > interface unit and marking it noinline, right? This is the same > recommendation we'd make if someone wrote a complex

[clang] [C++20] [Modules] Don't emit function bodies which is noinline and av… (PR #68501)

2023-10-08 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/68501 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20] [Modules] Don't emit function bodies which is noinline and av… (PR #68501)

2023-10-07 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 created https://github.com/llvm/llvm-project/pull/68501 …ailabl externally A workaround for https://github.com/llvm/llvm-project/issues/60996 As the title suggested, we can avoid emitting available externally functions which is marked as noinline already. Such

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

2023-10-07 Thread Chuanqi Xu via cfe-commits
@@ -45,6 +45,10 @@ class GlobalCompilationDatabase { return std::nullopt; } + virtual std::vector getAllFilesInProjectOf(PathRef File) const { ChuanqiXu9 wrote: Where is the example for `module_commands.json`? So that we can get a rough image.

[clang] [clang][Modules] Make `Module::Requirement` a struct (PR #67900)

2023-10-07 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > Would someone be able to merge this for me? I do not have permission. Sorry for not merging this in time. Could you rebase again since it has conflicts now. https://github.com/llvm/llvm-project/pull/67900 ___ cfe-commits mailing

[clang] [clang][Modules] `checkModuleIsAvailable` should use a const & parameter instead of pointer (PR #67902)

2023-10-07 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/67902 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] remove duplicate ModuleId alias (PR #67899)

2023-10-03 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/67899 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 3f09273 - [C++20] [Modules] Fix crash when emitting module inits for duplicated modules

2023-10-02 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-10-02T18:31:54+08:00 New Revision: 3f0927368285505ead516ba7572baaa7f52b01a9 URL: https://github.com/llvm/llvm-project/commit/3f0927368285505ead516ba7572baaa7f52b01a9 DIFF: https://github.com/llvm/llvm-project/commit/3f0927368285505ead516ba7572baaa7f52b01a9.diff

[clang] remove duplicate ModuleId alias (PR #67899)

2023-10-02 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM. Thanks. https://github.com/llvm/llvm-project/pull/67899 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Modules] Make `Module::Requirement` a struct (PR #67900)

2023-10-02 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM. Thanks. https://github.com/llvm/llvm-project/pull/67900 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Modules] `checkModuleIsAvailable` should use a const & parameter instead of pointer (PR #67902)

2023-10-02 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM. Thanks. https://github.com/llvm/llvm-project/pull/67902 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] cbbe555 - [C++20] [Modules] Generate init calls for the modules imported in GMF or PMF

2023-09-29 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-29T22:16:31+08:00 New Revision: cbbe55590414d5b698dcb7f7125f0508b29cadf8 URL: https://github.com/llvm/llvm-project/commit/cbbe55590414d5b698dcb7f7125f0508b29cadf8 DIFF: https://github.com/llvm/llvm-project/commit/cbbe55590414d5b698dcb7f7125f0508b29cadf8.diff

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-29 Thread Chuanqi Xu via cfe-commits
@@ -1245,6 +1245,27 @@ void Sema::ActOnEndOfTranslationUnit() { } } +// Now we can decide whether the modules we're building need an initializer. +if (Module *CurrentModule = getCurrentModule(); +CurrentModule &&

[clang] 7e8a0e4 - [NFC] [C++20] [Modules] Rename NamedModuleHasInit to NamedModuleHasInit

2023-09-29 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-29T21:49:10+08:00 New Revision: 7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf URL: https://github.com/llvm/llvm-project/commit/7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf DIFF: https://github.com/llvm/llvm-project/commit/7e8a0e4bdc84f975772cd6d38a78c285bdd8b6cf.diff

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-28 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/67638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-28 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/67638 >From 02b65f03b80470078107194fc1ce28680b804dab Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Thu, 28 Sep 2023 15:32:31 +0800 Subject: [PATCH] [C++20] [Modules] Don't generate call to an imported module

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-28 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Opinions addressed. https://github.com/llvm/llvm-project/pull/67638 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-28 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/67638 >From 51c53a1aaed8fef470e699513a0f44187fbb623d Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Thu, 28 Sep 2023 15:32:31 +0800 Subject: [PATCH] [C++20] [Modules] Don't generate call to an imported module

[clang] [C++20] [Modules] Don't generate call to an imported module that dont init anything (PR #67638)

2023-09-28 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 created https://github.com/llvm/llvm-project/pull/67638 Close https://github.com/llvm/llvm-project/issues/56794 And see https://github.com/llvm/llvm-project/issues/67582 for a detailed backgrond for the issue. As required by the Itanium ABI, the module units

[clang] 9744909 - [NFC] [C++20] [Modules] Refactor Module::getGlobalModuleFragment and Module::getPrivateModuleFragment

2023-09-28 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-28T14:06:02+08:00 New Revision: 9744909a126ead515c433097c0b5f76c98e9a5b4 URL: https://github.com/llvm/llvm-project/commit/9744909a126ead515c433097c0b5f76c98e9a5b4 DIFF: https://github.com/llvm/llvm-project/commit/9744909a126ead515c433097c0b5f76c98e9a5b4.diff

[clang] f9558c6 - [C++20] [Modules] Handle import decl before module declaration without being in GMF

2023-09-27 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-28T10:24:50+08:00 New Revision: f9558c691128cbc1660f69bd3b5f547be90ed18b URL: https://github.com/llvm/llvm-project/commit/f9558c691128cbc1660f69bd3b5f547be90ed18b DIFF: https://github.com/llvm/llvm-project/commit/f9558c691128cbc1660f69bd3b5f547be90ed18b.diff

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

2023-09-21 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: @sam-mccall gentle 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][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

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

[clang] [Clang][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

2023-09-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/66706 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

2023-09-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 commented: Thanks. It looks good if we can add llvm test in llvm/test/Transforms/Coroutines for the new metadata. https://github.com/llvm/llvm-project/pull/66706 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Clang][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

2023-09-20 Thread Chuanqi Xu via cfe-commits
@@ -104,3 +105,5 @@ invoker g() { // CHECK: call void @_ZN7invoker15invoker_promise17get_return_objectEv({{.*}} %[[AggRes]] co_return; } + +// CHECK: ![[OutFrameMetadata]] = !{} ChuanqiXu9 wrote: nit: no newline

[clang] [Clang][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

2023-09-20 Thread Chuanqi Xu via cfe-commits
@@ -6691,6 +6691,22 @@ sections that the user does not want removed after linking. ... !0 = !{} +'``coro.outside.frame``' Metadata +^^ + +``coro.outside.frame`` metadata may be attached to an alloca instruction to +to signify that it shouldn't be

[clang] [Clang][LLVM][Coroutines] Prevent __coro_gro from outliving __promise (PR #66706)

2023-09-20 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/66706 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Coroutines] Improve GRO handling to better fit scopes and cleanups (PR #66706)

2023-09-19 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > Can you point me to such defect? I had no luck searching for it. It should be https://github.com/llvm/llvm-project/issues/49843. I didn't expect that it was not marked as coroutines. Besides fixing that bug, it is also a minor optimization to not include GRO in coroutine

[clang] [Clang][Coroutines] Improve GRO handling to better fit scopes and cleanups (PR #66706)

2023-09-18 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: I remember that there is a defect that we may place the GRO on the coroutine frame. And my instinct reaction is that would this patch be covered by forcing GRO to not live on the coroutine frame? https://github.com/llvm/llvm-project/pull/66706

[clang-tools-extra] [llvm][documentation] Fix coroutines documentation (PR #66420)

2023-09-18 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 closed https://github.com/llvm/llvm-project/pull/66420 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang-tools-extra] [llvm][documentation] Fix coroutines documentation (PR #66420)

2023-09-18 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/66420 >From 71c5d851d2b14022434fb6533ec7418ee00751c2 Mon Sep 17 00:00:00 2001 From: NoodleSugar Date: Tue, 12 Sep 2023 12:39:13 +0200 Subject: [PATCH] [llvm][documentation] Fix coroutines documentation ---

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,126 @@ +//===- llvm/ADT/PagedVector.h - 'Lazyly allocated' vectors *- C++ +//-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +//

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,126 @@ +//===- llvm/ADT/PagedVector.h - 'Lazyly allocated' vectors *- C++ +//-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +//

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,126 @@ +//===- llvm/ADT/PagedVector.h - 'Lazyly allocated' vectors *- C++ +//-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +//

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 commented: Thanks. Sorry for not commenting everything at the first sight. I don't have further concerns. But I'd like to give more times for other reviewers to take a look. https://github.com/llvm/llvm-project/pull/66430

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/66430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -1625,6 +1625,35 @@ SmallVector has grown a few other minor advantages over std::vector, causing and is no longer "private to the implementation". A name like ``SmallVectorHeader`` might be more appropriate. +.. _dss_smallvector: + +llvm/ADT/PagedVector.h

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -0,0 +1,125 @@ +//===- llvm/ADT/PagedVector.h - 'Lazyly allocated' vectors *- C++ +//-*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +//

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
@@ -1625,6 +1625,35 @@ SmallVector has grown a few other minor advantages over std::vector, causing and is no longer "private to the implementation". A name like ``SmallVectorHeader`` might be more appropriate. +.. _dss_smallvector: ChuanqiXu9 wrote:

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/66462 >From df7c71d07f7db246aff0c6021e85acb70bd75868 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 15 Sep 2023 11:33:53 +0800 Subject: [PATCH] [clangd] [C++20] [Modules] Introduce initial support for C++20

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: The bot shows some escaping code issue on windows: > YAML:6:44: error: Unrecognized escape code > -- >   | "file": > "C:\Users\ContainerAdministrator\AppData\Local\Temp\lit-tmp-ns06ti05\modules-test-e111b6/foo.cppm", And I'm like to skip the tests on windows temporarily

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: I feel we need more reviewers for introducing ADT types. Let me try to add some people. https://github.com/llvm/llvm-project/pull/66430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 commented: I feel better to add unittests to llvm/unittests/ADT. https://github.com/llvm/llvm-project/pull/66430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 approved this pull request. LGTM. Thanks. https://github.com/llvm/llvm-project/pull/66333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/66462 >From a4e9cae646b9a7af5e246075b55c74fc4a152024 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 15 Sep 2023 11:33:53 +0800 Subject: [PATCH] [clangd] [C++20] [Modules] Introduce initial support for C++20

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited 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] Introduce paged vector (PR #66430)

2023-09-15 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Sorry. I meant to sent: https://llvm.org/docs/ProgrammersManual.html#picking-the-right-data-structure-for-a-task. Also I feel like the comments are much less than other ADT types. I mean these are important and fundamental data structures. So that almost every LLVM

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 milestoned 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-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited 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-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/66462 >From 36f7d8d284b4c22621f3addc55c0fdb7afe71a31 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 15 Sep 2023 11:33:53 +0800 Subject: [PATCH] [clangd] [C++20] [Modules] Introduce initial support for C++20

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited 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-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited 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-tools-extra] [clangd] [C++20] [Modules] Introduce initial support for C++20 Modules (PR #66462)

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 updated https://github.com/llvm/llvm-project/pull/66462 >From ec7d378ef14a8740c29d046f266f430c434f4142 Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 15 Sep 2023 11:33:53 +0800 Subject: [PATCH] [clangd] [C++20] [Modules] Introduce initial support for C++20

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

2023-09-15 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 created https://github.com/llvm/llvm-project/pull/66462 (to be edited) (not ready for review yet) >From d6836f492e040f4fe9eb293d5a2a52ab5f89e3bc Mon Sep 17 00:00:00 2001 From: Chuanqi Xu Date: Fri, 15 Sep 2023 11:33:53 +0800 Subject: [PATCH] [clangd] [C++20]

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Got it. Thanks for the explanation : ) https://github.com/llvm/llvm-project/pull/66333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Got it. Thanks. Then I am wondering how about the `retcon` ABI? I am confused since the doc said the last continuation of `retcon` ABI will return a nullptr to indicate it has finished. Don't we have the same problem? Or we can't solve the problem in `retcon` ABI? Or we just

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: Oh, I am wondering if we have misunderstandings. I am not asking the reason why we don't have the problem which is discussing in the change of CoroFrame.cpp in return continuation ABI. I understand that fully. What make me curious is the motivation case of the PR. I mean

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: > > Out of curiousity, why don't we have the problem in the normal return > > continuation ABI? > > The problem happens when the value is directly used in `coro.end` intrinsic. > For example, when we're forwarding coroutine argument as a result. Or, when > the value itself

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
@@ -3046,7 +3046,8 @@ void coro::buildCoroutineFrame( // Collect the spills for arguments and other not-materializable values. for (Argument : F.args()) for (User *U : A.users()) - if (Checker.isDefinitionAcrossSuspend(A, U)) + if

[clang] Introduce paged vector (PR #66430)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: I feel like it looks better to touch https://llvm.org/docs/LangRef.html to introduce new ADT and tell what is the benefit (pros and cons) of the new data structure. https://github.com/llvm/llvm-project/pull/66430 ___ cfe-commits

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
@@ -3046,7 +3046,8 @@ void coro::buildCoroutineFrame( // Collect the spills for arguments and other not-materializable values. for (Argument : F.args()) for (User *U : A.users()) - if (Checker.isDefinitionAcrossSuspend(A, U)) + if

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 commented: > One of the main user of these kind of coroutines is swift. There yield-once > (retcon.once) coroutines are used to temporary "expose" pointers to internal > fields of various objects creating borrow scopes. > > However, in some cases it might be

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/66333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
@@ -3046,7 +3046,8 @@ void coro::buildCoroutineFrame( // Collect the spills for arguments and other not-materializable values. for (Argument : F.args()) for (User *U : A.users()) - if (Checker.isDefinitionAcrossSuspend(A, U)) + if

[clang] Extend `retcon.once` coroutines lowering to optionally produce a normal result (PR #66333)

2023-09-14 Thread Chuanqi Xu via cfe-commits
ChuanqiXu9 wrote: It looks like we need to touch the section `Returned-Continuation Lowering` too https://github.com/llvm/llvm-project/pull/66333 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [AArch64][PAC] Support ptrauth builtins and -fptrauth-intrinsics. (PR #65996)

2023-09-12 Thread Chuanqi Xu via cfe-commits
@@ -303,6 +303,10 @@ bool Module::directlyUses(const Module *Requested) { if (!Requested->Parent && Requested->Name == "_Builtin_stddef_max_align_t") return true; + // Anyone is allowed to use our builtin ptrauth.h and its accompanying module. + if

[clang] [AArch64][PAC] Support ptrauth builtins and -fptrauth-intrinsics. (PR #65996)

2023-09-12 Thread Chuanqi Xu via cfe-commits
@@ -303,6 +303,10 @@ bool Module::directlyUses(const Module *Requested) { if (!Requested->Parent && Requested->Name == "_Builtin_stddef_max_align_t") return true; + // Anyone is allowed to use our builtin ptrauth.h and its accompanying module. + if

[clang] [AArch64][PAC] Support ptrauth builtins and -fptrauth-intrinsics. (PR #65996)

2023-09-11 Thread Chuanqi Xu via cfe-commits
@@ -303,6 +303,10 @@ bool Module::directlyUses(const Module *Requested) { if (!Requested->Parent && Requested->Name == "_Builtin_stddef_max_align_t") return true; + // Anyone is allowed to use our builtin ptrauth.h and its accompanying module. + if

[clang] [AArch64][PAC] Support ptrauth builtins and -fptrauth-intrinsics. (PR #65996)

2023-09-11 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/65996 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [AArch64][PAC] Support ptrauth builtins and -fptrauth-intrinsics. (PR #65996)

2023-09-11 Thread Chuanqi Xu via cfe-commits
https://github.com/ChuanqiXu9 requested changes to this pull request. https://github.com/llvm/llvm-project/pull/65996 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 96122b5 - [C++20] [Modules] Introduce ForceCheckCXX20ModulesInputFiles options for

2023-09-08 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-08T16:53:12+08:00 New Revision: 96122b5b717c2b1a291d7298ac50b1daf02bd97c URL: https://github.com/llvm/llvm-project/commit/96122b5b717c2b1a291d7298ac50b1daf02bd97c DIFF: https://github.com/llvm/llvm-project/commit/96122b5b717c2b1a291d7298ac50b1daf02bd97c.diff

[clang] 869111c - [NFC] [C++20] [Modules] Refactor the warning to '-fmodule-file=' for C++20 modules

2023-09-07 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-07T17:13:16+08:00 New Revision: 869111ccf2d3916bf24a31bdb367d7e567483ff0 URL: https://github.com/llvm/llvm-project/commit/869111ccf2d3916bf24a31bdb367d7e567483ff0 DIFF: https://github.com/llvm/llvm-project/commit/869111ccf2d3916bf24a31bdb367d7e567483ff0.diff

[clang] f0cd9b2 - [NFC] [Serialization] Remove unused output parameter 'Imported' in ReadAST

2023-09-07 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-07T16:12:53+08:00 New Revision: f0cd9b2b8a09192489e0aedf3c9af3a540ea5966 URL: https://github.com/llvm/llvm-project/commit/f0cd9b2b8a09192489e0aedf3c9af3a540ea5966 DIFF: https://github.com/llvm/llvm-project/commit/f0cd9b2b8a09192489e0aedf3c9af3a540ea5966.diff

[clang] f585b7d - [NFC] Add an overload for getP1689ModuleDependencyFile without output parameters

2023-09-03 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-09-04T13:22:17+08:00 New Revision: f585b7db07f8b3c69141f3975a94c70f6899f733 URL: https://github.com/llvm/llvm-project/commit/f585b7db07f8b3c69141f3975a94c70f6899f733 DIFF: https://github.com/llvm/llvm-project/commit/f585b7db07f8b3c69141f3975a94c70f6899f733.diff

[clang] 20e6515 - [Coroutines] Mark 'coroutine_handle<>::address' as always-inline

2023-08-29 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-29T14:35:27+08:00 New Revision: 20e6515d5c5ff155a54e10f64caef1c76d8d5976 URL: https://github.com/llvm/llvm-project/commit/20e6515d5c5ff155a54e10f64caef1c76d8d5976 DIFF: https://github.com/llvm/llvm-project/commit/20e6515d5c5ff155a54e10f64caef1c76d8d5976.diff

[clang] 6f1b2e4 - [NFC] Correct the test code in pr65018

2023-08-28 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-29T11:30:47+08:00 New Revision: 6f1b2e4e97e2d6e8f19a9a6d64547b027617fa39 URL: https://github.com/llvm/llvm-project/commit/6f1b2e4e97e2d6e8f19a9a6d64547b027617fa39 DIFF: https://github.com/llvm/llvm-project/commit/6f1b2e4e97e2d6e8f19a9a6d64547b027617fa39.diff

[clang] b32aa72 - Recommit [C++20] [Coroutines] Mark await_suspend as noinline if the awaiter is not empty

2023-08-28 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-28T17:07:30+08:00 New Revision: b32aa72afc1d6a094fde6ca04d8a1124af34a2ad URL: https://github.com/llvm/llvm-project/commit/b32aa72afc1d6a094fde6ca04d8a1124af34a2ad DIFF: https://github.com/llvm/llvm-project/commit/b32aa72afc1d6a094fde6ca04d8a1124af34a2ad.diff

[clang] 572cc8d - Revert "[C++20] [Coroutines] Mark await_suspend as noinline if the awaiter is not empty"

2023-08-27 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-28T13:21:17+08:00 New Revision: 572cc8d38f938eb2769907c17137a10a408d9bfc URL: https://github.com/llvm/llvm-project/commit/572cc8d38f938eb2769907c17137a10a408d9bfc DIFF: https://github.com/llvm/llvm-project/commit/572cc8d38f938eb2769907c17137a10a408d9bfc.diff

[clang] 9d9c25f - [C++20] [Coroutines] Don't mark await_suspend as noinline if it is specified as always_inline already

2023-08-27 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-28T11:43:33+08:00 New Revision: 9d9c25f81456aace2bec4b58498a420e650007d9 URL: https://github.com/llvm/llvm-project/commit/9d9c25f81456aace2bec4b58498a420e650007d9 DIFF: https://github.com/llvm/llvm-project/commit/9d9c25f81456aace2bec4b58498a420e650007d9.diff

[clang] 19ab266 - [NFC] [C++20] [Coroutines] Mention the side effect of a fix may bring regressions

2023-08-23 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-24T10:41:48+08:00 New Revision: 19ab2664ad3182ffa8fe3a95bb19765e4ae84653 URL: https://github.com/llvm/llvm-project/commit/19ab2664ad3182ffa8fe3a95bb19765e4ae84653 DIFF: https://github.com/llvm/llvm-project/commit/19ab2664ad3182ffa8fe3a95bb19765e4ae84653.diff

[clang] 7037331 - [Coroutines] [CoroElide] Don't think exceptional terminator don't leak coro handle unconditionally any more

2023-08-23 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-23T16:51:53+08:00 New Revision: 7037331a2f05990cd59f35a7c0f6ce87c0f3cb5f URL: https://github.com/llvm/llvm-project/commit/7037331a2f05990cd59f35a7c0f6ce87c0f3cb5f DIFF: https://github.com/llvm/llvm-project/commit/7037331a2f05990cd59f35a7c0f6ce87c0f3cb5f.diff

[clang] c467245 - [C++20] [Coroutines] Mark await_suspend as noinline if the awaiter is not empty

2023-08-21 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-22T09:56:44+08:00 New Revision: c4672454743e942f148a1aff1e809dae73e464f6 URL: https://github.com/llvm/llvm-project/commit/c4672454743e942f148a1aff1e809dae73e464f6 DIFF: https://github.com/llvm/llvm-project/commit/c4672454743e942f148a1aff1e809dae73e464f6.diff

[clang] 574ee1c - [C++20] [Modules] Prevent to accept clang modules

2023-08-16 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-17T11:45:50+08:00 New Revision: 574ee1c02ef73b66c5957cf93888234b0471695f URL: https://github.com/llvm/llvm-project/commit/574ee1c02ef73b66c5957cf93888234b0471695f DIFF: https://github.com/llvm/llvm-project/commit/574ee1c02ef73b66c5957cf93888234b0471695f.diff

[clang] f6b94e0 - [NFC] Document the solution to pr61006 and a test for it

2023-08-11 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-11T14:57:32+08:00 New Revision: f6b94e0026e27dd0603e5ba39886920c02ad79f0 URL: https://github.com/llvm/llvm-project/commit/f6b94e0026e27dd0603e5ba39886920c02ad79f0 DIFF: https://github.com/llvm/llvm-project/commit/f6b94e0026e27dd0603e5ba39886920c02ad79f0.diff

[clang] 201c105 - [NFC] [C++20] [Modules] Adopt a test case from MSVC

2023-08-08 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-08-09T11:14:43+08:00 New Revision: 201c10537a3c1ad4a86b840834c204575d10d589 URL: https://github.com/llvm/llvm-project/commit/201c10537a3c1ad4a86b840834c204575d10d589 DIFF: https://github.com/llvm/llvm-project/commit/201c10537a3c1ad4a86b840834c204575d10d589.diff

[clang] c31d6b4 - [ODRHash] Hash type-as-written

2023-07-30 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-07-31T11:05:47+08:00 New Revision: c31d6b4ef135098280b0ebb93e95b258a0d372ca URL: https://github.com/llvm/llvm-project/commit/c31d6b4ef135098280b0ebb93e95b258a0d372ca DIFF: https://github.com/llvm/llvm-project/commit/c31d6b4ef135098280b0ebb93e95b258a0d372ca.diff

[clang] 3b48613 - [docs] [C++20] [Modules] Mark the compatiblity issue within clang-cl.exe

2023-07-26 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-07-26T15:06:13+08:00 New Revision: 3b48613f2d90bde544669437c20fcdeb01316411 URL: https://github.com/llvm/llvm-project/commit/3b48613f2d90bde544669437c20fcdeb01316411 DIFF: https://github.com/llvm/llvm-project/commit/3b48613f2d90bde544669437c20fcdeb01316411.diff

[clang] 8a86f85 - Revert "[C++20] [Modules] Use CanonicalType for base classes"

2023-07-24 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-07-25T11:03:57+08:00 New Revision: 8a86f85ab1e65fb5c148d7a645197b4634a2e2fc URL: https://github.com/llvm/llvm-project/commit/8a86f85ab1e65fb5c148d7a645197b4634a2e2fc DIFF: https://github.com/llvm/llvm-project/commit/8a86f85ab1e65fb5c148d7a645197b4634a2e2fc.diff

[clang] 7db501a - [NFC] Adjust test for pr63595

2023-07-19 Thread Chuanqi Xu via cfe-commits
Author: Chuanqi Xu Date: 2023-07-19T16:51:37+08:00 New Revision: 7db501a7385e62b342b393cba763205753b3cb89 URL: https://github.com/llvm/llvm-project/commit/7db501a7385e62b342b393cba763205753b3cb89 DIFF: https://github.com/llvm/llvm-project/commit/7db501a7385e62b342b393cba763205753b3cb89.diff

<    7   8   9   10   11   12   13   14   15   >