Re: r295156 - Add a definition for __STRUCT_PARM_ALIGN__ for elfv2 and 64-bit darwin platforms to match what other compilers produce.

2017-03-20 Thread Iain Sandoe via cfe-commits
> On 16 Mar 2017, at 22:43, Eric Christopher wrote: > > ... and ppc64 darwin preprocessor stuff isn't tested at all. We should really > just delete ppc darwin support at some point. Adding Iain here since he's > said that he's working on the platform :) Indeed I am, and

[clang] 2370977 - [clang] Remove a duplicate action kind table entry.

2022-02-15 Thread Iain Sandoe via cfe-commits
Author: iains Date: 2022-02-15T11:19:09Z New Revision: 2370977bdd0254d9d5424713513aeee233c647e4 URL: https://github.com/llvm/llvm-project/commit/2370977bdd0254d9d5424713513aeee233c647e4 DIFF: https://github.com/llvm/llvm-project/commit/2370977bdd0254d9d5424713513aeee233c647e4.diff LOG:

[clang] 69350e5 - [C++20][Modules][3/8] Initial handling for module partitions.

2022-02-24 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-24T09:01:09Z New Revision: 69350e569dc47f871590243b5e46a68520640dcd URL: https://github.com/llvm/llvm-project/commit/69350e569dc47f871590243b5e46a68520640dcd DIFF: https://github.com/llvm/llvm-project/commit/69350e569dc47f871590243b5e46a68520640dcd.diff LOG:

[clang] ab28488 - [C++20][Modules][1/8] Track valid import state.

2022-02-21 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-21T09:09:37Z New Revision: ab28488efe6de6f8fa856a1dfd8c0320d41d7608 URL: https://github.com/llvm/llvm-project/commit/ab28488efe6de6f8fa856a1dfd8c0320d41d7608 DIFF: https://github.com/llvm/llvm-project/commit/ab28488efe6de6f8fa856a1dfd8c0320d41d7608.diff LOG:

[clang] 6114491 - [C++20][Modules][4/8] Handle generation of partition implementation CMIs.

2022-02-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-25T09:33:14Z New Revision: 6114491441700cc8a614d284407e9a6e9bf74751 URL: https://github.com/llvm/llvm-project/commit/6114491441700cc8a614d284407e9a6e9bf74751 DIFF: https://github.com/llvm/llvm-project/commit/6114491441700cc8a614d284407e9a6e9bf74751.diff LOG:

[clang] 6738792 - Revert "[C++20][Modules][1/8] Track valid import state."

2022-02-20 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-20T10:22:07Z New Revision: 673879249d4d1c4e6d763a6db4a4812d721b41b6 URL: https://github.com/llvm/llvm-project/commit/673879249d4d1c4e6d763a6db4a4812d721b41b6 DIFF: https://github.com/llvm/llvm-project/commit/673879249d4d1c4e6d763a6db4a4812d721b41b6.diff LOG:

[clang] 8a3f9a5 - [C++20][Modules][1/8] Track valid import state.

2022-02-20 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-20T10:13:57Z New Revision: 8a3f9a584ad43369cf6a034dc875ebfca76d9033 URL: https://github.com/llvm/llvm-project/commit/8a3f9a584ad43369cf6a034dc875ebfca76d9033 DIFF: https://github.com/llvm/llvm-project/commit/8a3f9a584ad43369cf6a034dc875ebfca76d9033.diff LOG:

[clang] b3fcfcb - [C++20][Modules][7/8] Find the primary interface name for a module.

2022-02-28 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-28T08:50:25Z New Revision: b3fcfcb9464b90dd56a591e6269d33b124b96fee URL: https://github.com/llvm/llvm-project/commit/b3fcfcb9464b90dd56a591e6269d33b124b96fee DIFF: https://github.com/llvm/llvm-project/commit/b3fcfcb9464b90dd56a591e6269d33b124b96fee.diff LOG:

[clang] 1a76d25 - [C++20][Modules][5/8] Diagnose wrong import/export for partition CMIs.

2022-02-26 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-26T11:27:08Z New Revision: 1a76d2563940e6b4bfcb9e77b8a4d1d3f0cc7d30 URL: https://github.com/llvm/llvm-project/commit/1a76d2563940e6b4bfcb9e77b8a4d1d3f0cc7d30 DIFF: https://github.com/llvm/llvm-project/commit/1a76d2563940e6b4bfcb9e77b8a4d1d3f0cc7d30.diff LOG:

[clang] a29f8db - [C++20][Modules][8/8] Amend module visibility rules for partitions.

2022-03-01 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-01T08:29:05Z New Revision: a29f8dbb7f3e816344a7be75996eea3ab5a0b5a3 URL: https://github.com/llvm/llvm-project/commit/a29f8dbb7f3e816344a7be75996eea3ab5a0b5a3 DIFF: https://github.com/llvm/llvm-project/commit/a29f8dbb7f3e816344a7be75996eea3ab5a0b5a3.diff LOG:

[clang] 5a74e6a - [Modules] Add module structure output to -module-file-info.

2022-02-23 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-23T10:26:42Z New Revision: 5a74e6a21c9520e0619c98a66815fc8b5117e321 URL: https://github.com/llvm/llvm-project/commit/5a74e6a21c9520e0619c98a66815fc8b5117e321 DIFF: https://github.com/llvm/llvm-project/commit/5a74e6a21c9520e0619c98a66815fc8b5117e321.diff LOG:

[clang] e0f1dd0 - [C++20][Modules] Rework testcase to use split file [NFC].

2022-02-23 Thread Iain Sandoe via cfe-commits
Author: iains Date: 2022-02-23T11:07:36Z New Revision: e0f1dd018e0f94a7d694bc615975c3a7d26d9e50 URL: https://github.com/llvm/llvm-project/commit/e0f1dd018e0f94a7d694bc615975c3a7d26d9e50 DIFF: https://github.com/llvm/llvm-project/commit/e0f1dd018e0f94a7d694bc615975c3a7d26d9e50.diff LOG:

[clang] c9cc803 - [C++20][Modules][2/8] Add enumerations for partition modules and stream them.

2022-02-22 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-22T10:08:15Z New Revision: c9cc8035eb4fbf5d20a73ec7e0870e6195012a71 URL: https://github.com/llvm/llvm-project/commit/c9cc8035eb4fbf5d20a73ec7e0870e6195012a71 DIFF: https://github.com/llvm/llvm-project/commit/c9cc8035eb4fbf5d20a73ec7e0870e6195012a71.diff LOG:

[clang] 17ce549 - [C++20][Modules] Improve efficiency of isModulePartition method.

2022-03-02 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-02T08:31:46Z New Revision: 17ce5497aa016707b31a2e99a05ec7451ba4014d URL: https://github.com/llvm/llvm-project/commit/17ce5497aa016707b31a2e99a05ec7451ba4014d DIFF: https://github.com/llvm/llvm-project/commit/17ce5497aa016707b31a2e99a05ec7451ba4014d.diff LOG:

[clang] 853ca54 - [C++20][Modules][6/8] Record direct module imports.

2022-02-27 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-02-27T10:07:11Z New Revision: 853ca5472314e109b98e46f0985f27f79e17d2bd URL: https://github.com/llvm/llvm-project/commit/853ca5472314e109b98e46f0985f27f79e17d2bd DIFF: https://github.com/llvm/llvm-project/commit/853ca5472314e109b98e46f0985f27f79e17d2bd.diff LOG:

[clang] cf396c5 - [C++20][Modules] Correct an assert for modules-ts.

2022-03-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-25T14:55:13Z New Revision: cf396c56e7df756d460a456f99ceab1b5d2c2e37 URL: https://github.com/llvm/llvm-project/commit/cf396c56e7df756d460a456f99ceab1b5d2c2e37 DIFF: https://github.com/llvm/llvm-project/commit/cf396c56e7df756d460a456f99ceab1b5d2c2e37.diff LOG:

[clang] 0687578 - [C++20][Modules][HU 2/5] Support searching Header Units in user or system search paths.

2022-03-26 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-26T10:17:17Z New Revision: 0687578728ea1985cbab0de14d4eeb4e89cdf210 URL: https://github.com/llvm/llvm-project/commit/0687578728ea1985cbab0de14d4eeb4e89cdf210 DIFF: https://github.com/llvm/llvm-project/commit/0687578728ea1985cbab0de14d4eeb4e89cdf210.diff LOG:

[clang] f884622 - [C++20][Modules][HU 3/5] Emit module macros for header units.

2022-03-26 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-26T16:30:40Z New Revision: f8846229c41f3e4aede3bd06921772a209b4993a URL: https://github.com/llvm/llvm-project/commit/f8846229c41f3e4aede3bd06921772a209b4993a DIFF: https://github.com/llvm/llvm-project/commit/f8846229c41f3e4aede3bd06921772a209b4993a.diff LOG:

[clang] 85b1354 - [C++20][Modules][HU 5/5] Add fdirectives-only mode for preprocessing output.

2022-03-28 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-28T07:38:22+01:00 New Revision: 85b1354098ba0a665fdd47204d0e53e63d09d9ab URL: https://github.com/llvm/llvm-project/commit/85b1354098ba0a665fdd47204d0e53e63d09d9ab DIFF: https://github.com/llvm/llvm-project/commit/85b1354098ba0a665fdd47204d0e53e63d09d9ab.diff

[clang] c7ed65b - [C++20][Modules] Limit ModuleInternalLinkage to modules-ts.

2022-04-01 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-01T09:10:30+01:00 New Revision: c7ed65b4bcbd8c26704efc4193243831e3c13d3c URL: https://github.com/llvm/llvm-project/commit/c7ed65b4bcbd8c26704efc4193243831e3c13d3c DIFF: https://github.com/llvm/llvm-project/commit/c7ed65b4bcbd8c26704efc4193243831e3c13d3c.diff

[clang] 1f0b8ba - [C++20][Modules] Fix a testcase warning on Windows [NFC].

2022-04-03 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-03T11:39:00+01:00 New Revision: 1f0b8ba47ab0f1dc678099d4830d0cc0d10850b6 URL: https://github.com/llvm/llvm-project/commit/1f0b8ba47ab0f1dc678099d4830d0cc0d10850b6 DIFF: https://github.com/llvm/llvm-project/commit/1f0b8ba47ab0f1dc678099d4830d0cc0d10850b6.diff

[clang] 6c0e60e - [C++20][Modules][HU 1/5] Introduce header units as a module type.

2022-03-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-25T09:17:14Z New Revision: 6c0e60e884a20016ccc0d7c7e6f06df089a0de86 URL: https://github.com/llvm/llvm-project/commit/6c0e60e884a20016ccc0d7c7e6f06df089a0de86 DIFF: https://github.com/llvm/llvm-project/commit/6c0e60e884a20016ccc0d7c7e6f06df089a0de86.diff LOG:

[clang] d9cea8d - [C++20][Modules][HU 4/5] Handle pre-processed header units.

2022-03-27 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-03-27T09:38:06+01:00 New Revision: d9cea8d3a8fff86672174780312674871729578c URL: https://github.com/llvm/llvm-project/commit/d9cea8d3a8fff86672174780312674871729578c DIFF: https://github.com/llvm/llvm-project/commit/d9cea8d3a8fff86672174780312674871729578c.diff

[clang] 92fed06 - [C++20][Modules] Remove an empty statement [NFC].

2022-04-11 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-11T10:06:23+01:00 New Revision: 92fed06f800aa2d0fd29f9e3eac8323cba64b167 URL: https://github.com/llvm/llvm-project/commit/92fed06f800aa2d0fd29f9e3eac8323cba64b167 DIFF: https://github.com/llvm/llvm-project/commit/92fed06f800aa2d0fd29f9e3eac8323cba64b167.diff

[clang] bdadf1c - [C++20][Modules] Add testcases from section 10.2 dependent on header units.

2022-04-11 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-11T11:30:45+01:00 New Revision: bdadf1c2ecb452ca41f23caa87415bc1f9a8431b URL: https://github.com/llvm/llvm-project/commit/bdadf1c2ecb452ca41f23caa87415bc1f9a8431b DIFF: https://github.com/llvm/llvm-project/commit/bdadf1c2ecb452ca41f23caa87415bc1f9a8431b.diff

[clang] f60dc3c - [C++20][Modules] Adjust handling of exports of namespaces and using-decls.

2022-04-08 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-08T08:57:37+01:00 New Revision: f60dc3caa67374c0e2941ee3866b5eaef0c6ffe6 URL: https://github.com/llvm/llvm-project/commit/f60dc3caa67374c0e2941ee3866b5eaef0c6ffe6 DIFF: https://github.com/llvm/llvm-project/commit/f60dc3caa67374c0e2941ee3866b5eaef0c6ffe6.diff

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

2023-09-28 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: Thanks for working on this. Generally, this LGTM, but perhaps we can choose names that are unambiguously related to state - the current one could be read like an action. maybe something like: `NamedModuleHasNoInit` and `namedModuleHasNoInit()` (or I'm

[clang] [clang-repl] Emit const variables only once (PR #65257)

2023-09-28 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: (still getting used to the revised system) I have no comments on this patch. https://github.com/llvm/llvm-project/pull/65257 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

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

2023-09-28 Thread Iain Sandoe via cfe-commits
https://github.com/iains approved this pull request. thanks, LGTM 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] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-08 Thread Iain Sandoe via cfe-commits
iains wrote: A possible mechanism might be to have a watchdog process, with which instances of the server are registered with a time-to-live. I guess this might be easier to construct as a scheme for test-suites than for end-user. https://github.com/llvm/llvm-project/pull/67562

[clang] [C++20] [Modules] Warn if we found #include in module purview (PR #69555)

2023-10-19 Thread Iain Sandoe via cfe-commits
@@ -922,6 +922,10 @@ def err_header_import_semi_in_macro : Error< def err_header_import_not_header_unit : Error< "header file %0 (aka '%1') cannot be imported because " "it is not known to be a header unit">; +def warn_pp_include_angled_in_module_purview : Warning< +

[clang] [C++20] [Modules] Warn if we found #include in module purview (PR #69555)

2023-10-19 Thread Iain Sandoe via cfe-commits
iains wrote: > > When I suggested this, it was an intention to limit it to C++ std library > > headers. Do we not have some existing mechanism that knows which headers > > are in this category (for typo correction etc?) > > As far as I can reach, we don't have such a mechanism. Ah, that's

[clang] [C++20] [Modules] Warn if we found #include in module purview (PR #69555)

2023-10-19 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: When I suggested this, it was an intention to limit it to C++ std library headers. Do we not have some existing mechanism that knows which headers are in this category (for typo correction etc?) My concern with making it more general is that it then covers

[clang] [C++20] [Modules] [Driver] Don't enable -fdelayed-template-parsing by default on windows with C++20 modules (PR #69431)

2023-10-19 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: Is delayed template parsing an optimisation or a correctness measure? If it's an optimisation, then it seems that we should disable it for modules (because that then makes the modules cases correct). If it's needed for correctness, then we have more of a

[clang] [C++20] [Modules] Warn if we found #include in module purview (PR #69555)

2023-10-19 Thread Iain Sandoe via cfe-commits
https://github.com/iains edited https://github.com/llvm/llvm-project/pull/69555 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20] [Modules] Warn if we found #include in module purview (PR #69555)

2023-10-19 Thread Iain Sandoe via cfe-commits
@@ -922,6 +922,10 @@ def err_header_import_semi_in_macro : Error< def err_header_import_not_header_unit : Error< "header file %0 (aka '%1') cannot be imported because " "it is not known to be a header unit">; +def warn_pp_include_angled_in_module_purview : Warning< +

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

2023-10-09 Thread Iain Sandoe via cfe-commits
https://github.com/iains approved this pull request. I think it would be better to have a coherent plan to deal with the underlying issue; starting with separating the AST used for code-gen from that used for interfaces. Having said that, this LGTM (it will be interesting to see what

[clang] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-09 Thread Iain Sandoe via cfe-commits
@@ -0,0 +1,41 @@ +//===-- Client.h --===// +// +// 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] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-09 Thread Iain Sandoe via cfe-commits
@@ -3738,6 +3737,19 @@ static bool RenderModulesOptions(Compilation , const Driver , Std->containsValue("c++latest") || Std->containsValue("gnu++latest")); bool HaveModules = HaveStdCXXModules; + // -fmodule-build-daemon enables module build daemon functionality +

[clang] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-09 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: I had a couple of questions. I guess my main concern here is that the TODO for portability might turn out to be quite heavy lifting. Perhaps we should be looking to abstract the socket-like interface at a lower level.

[clang] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-09 Thread Iain Sandoe via cfe-commits
https://github.com/iains edited https://github.com/llvm/llvm-project/pull/67562 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][MBD] set up module build daemon infrastructure (PR #67562)

2023-10-09 Thread Iain Sandoe via cfe-commits
@@ -0,0 +1,134 @@ +//===- SocketMsgSupport.h -===// +// +// 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] [C++20] [Modules] [Driver] Don't enable -fdelayed-template-parsing by default on windows with C++20 modules (PR #69431)

2023-10-19 Thread Iain Sandoe via cfe-commits
iains wrote: > I still support disabling delayed template parsing by default in all > configurations. Ultimately, this feature is a source of bugs, and we should > start the clock on its deprecation and removal. This, of course, involves > real work, and I haven't allocated any time (mine or

[clang] 5c6a146 - [C++20][Modules][Driver][HU 1/N] Initial handling for -xc++-{system,user}-header.

2022-04-22 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-22T09:24:29+01:00 New Revision: 5c6a14649843ccd2c50ed9e2fcacaa8ebd820ae8 URL: https://github.com/llvm/llvm-project/commit/5c6a14649843ccd2c50ed9e2fcacaa8ebd820ae8 DIFF: https://github.com/llvm/llvm-project/commit/5c6a14649843ccd2c50ed9e2fcacaa8ebd820ae8.diff

[clang] 4c4ff00 - [C++20][Modules][Driver][HU 2/N] Add fmodule-header, fmodule-header=

2022-04-22 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-22T14:14:19+01:00 New Revision: 4c4ff004a2702b9b7538efd569bb621a5efac8f3 URL: https://github.com/llvm/llvm-project/commit/4c4ff004a2702b9b7538efd569bb621a5efac8f3 DIFF: https://github.com/llvm/llvm-project/commit/4c4ff004a2702b9b7538efd569bb621a5efac8f3.diff

[clang] 9dc9b21 - [C++20][Modules][Driver][HU 4/N] Add fdirectives-only mode for preprocessing output.

2022-04-23 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-23T14:43:07+01:00 New Revision: 9dc9b21488ee2bbf54e20807585a74a17a33fceb URL: https://github.com/llvm/llvm-project/commit/9dc9b21488ee2bbf54e20807585a74a17a33fceb DIFF: https://github.com/llvm/llvm-project/commit/9dc9b21488ee2bbf54e20807585a74a17a33fceb.diff

[clang] 5996306 - [C++20][Modules][Driver][HU 3/N] Handle foo.h with -fmodule-header and/or C++ invocation.

2022-04-23 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-04-23T09:50:31+01:00 New Revision: 5996306c24badac0e04c1cead1aed4b106a3bdae URL: https://github.com/llvm/llvm-project/commit/5996306c24badac0e04c1cead1aed4b106a3bdae DIFF: https://github.com/llvm/llvm-project/commit/5996306c24badac0e04c1cead1aed4b106a3bdae.diff

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-09 Thread Iain Sandoe via cfe-commits
iains wrote: > > Whether we re-use wrapper code or make some new code is an implementation > > detail. > > It does not actually prevent you from taking the two-phase approach ( > > currently , --precompile will be unchanged in action). > > It doesn't prevent the two-phase compilation model

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-09 Thread Iain Sandoe via cfe-commits
iains wrote: > > > > Whether we re-use wrapper code or make some new code is an > > > > implementation detail. > > > > It does not actually prevent you from taking the two-phase approach ( > > > > currently , --precompile will be unchanged in action). > > > > > > > > > It doesn't prevent the

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-09 Thread Iain Sandoe via cfe-commits
iains wrote: > > > > > > Whether we re-use wrapper code or make some new code is an > > > > > > implementation detail. > > > > > > It does not actually prevent you from taking the two-phase approach > > > > > > ( currently , --precompile will be unchanged in action). > > > > > > > > > > > >

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-08 Thread Iain Sandoe via cfe-commits
https://github.com/iains created https://github.com/llvm/llvm-project/pull/71773 Here is a **draft** of the patch series that allows for emitting both an object and a BMI from the same compiler invocation. Because of point 1) below it's fairly limited in the command lines supported, you can

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-08 Thread Iain Sandoe via cfe-commits
iains wrote: > There are 2 things in the patch. One is to generate the BMI and the object > file in one phase (phase here means preprocess, precompile, compile, ...). This is the main point of the patch - to do this efficiently. >Another is to allow us to generate BMI from a `.cpp` file.

[clang] bc2a6de - [C++20][Modules] Allow for redeclarations in partitions.

2022-07-08 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-08T19:02:59+01:00 New Revision: bc2a6defc853553b3896cb853bb84fe663f6bfd0 URL: https://github.com/llvm/llvm-project/commit/bc2a6defc853553b3896cb853bb84fe663f6bfd0 DIFF: https://github.com/llvm/llvm-project/commit/bc2a6defc853553b3896cb853bb84fe663f6bfd0.diff

[clang] 4328b96 - [C++20][Modules] Fix two tests for CTORs that return pointers [NFC].

2022-07-09 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-09T11:23:20+01:00 New Revision: 4328b960176f4394416093e640ad4265bde65ad7 URL: https://github.com/llvm/llvm-project/commit/4328b960176f4394416093e640ad4265bde65ad7 DIFF: https://github.com/llvm/llvm-project/commit/4328b960176f4394416093e640ad4265bde65ad7.diff

[clang] ef0fa9f - [C++20][Modules] Update handling of implicit inlines [P1779R3]

2022-07-09 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-09T16:06:32+01:00 New Revision: ef0fa9f0ef3e530a9d600c0f6a21e68b098df7ed URL: https://github.com/llvm/llvm-project/commit/ef0fa9f0ef3e530a9d600c0f6a21e68b098df7ed DIFF: https://github.com/llvm/llvm-project/commit/ef0fa9f0ef3e530a9d600c0f6a21e68b098df7ed.diff

[clang] ac50710 - [C++20][Modules] Build module static initializers per P1874R1.

2022-07-09 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-09T09:09:09+01:00 New Revision: ac507102d258b6fc0cb57eb60c9dfabd57ff562f URL: https://github.com/llvm/llvm-project/commit/ac507102d258b6fc0cb57eb60c9dfabd57ff562f DIFF: https://github.com/llvm/llvm-project/commit/ac507102d258b6fc0cb57eb60c9dfabd57ff562f.diff

[clang] af2d11b - [C++20][Modules] Implement include translation.

2022-07-10 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-10T11:06:51+01:00 New Revision: af2d11b1d5c1508b506825df460656e0151cd3b0 URL: https://github.com/llvm/llvm-project/commit/af2d11b1d5c1508b506825df460656e0151cd3b0 DIFF: https://github.com/llvm/llvm-project/commit/af2d11b1d5c1508b506825df460656e0151cd3b0.diff

[clang] b19d3ee - Revert "[C++20][Modules] Build module static initializers per P1874R1."

2022-07-11 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-11T19:50:31+01:00 New Revision: b19d3ee7120bff4a84db7c9fa8f86c9b6ec3b1cf URL: https://github.com/llvm/llvm-project/commit/b19d3ee7120bff4a84db7c9fa8f86c9b6ec3b1cf DIFF: https://github.com/llvm/llvm-project/commit/b19d3ee7120bff4a84db7c9fa8f86c9b6ec3b1cf.diff

[clang] e7c8ded - Revert "[C++20][Modules] Fix two tests for CTORs that return pointers [NFC]."

2022-07-11 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-11T19:49:48+01:00 New Revision: e7c8ded6df6d38b019a1de268535d2dd73e7adaf URL: https://github.com/llvm/llvm-project/commit/e7c8ded6df6d38b019a1de268535d2dd73e7adaf DIFF: https://github.com/llvm/llvm-project/commit/e7c8ded6df6d38b019a1de268535d2dd73e7adaf.diff

[clang] 25558a1 - [C++20][Modules] Update ADL to handle basic.lookup.argdep p4 [P1815R2 part 1]

2022-07-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-25T14:28:59+01:00 New Revision: 25558a1bfd79e03bed74873ab83ccfc3650fb64f URL: https://github.com/llvm/llvm-project/commit/25558a1bfd79e03bed74873ab83ccfc3650fb64f DIFF: https://github.com/llvm/llvm-project/commit/25558a1bfd79e03bed74873ab83ccfc3650fb64f.diff

[clang] b826567 - [C++20][Modules] Add a testcase for [basic.link] p10 [NFC].

2022-07-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-25T12:20:02+01:00 New Revision: b826567136e391095b7731d5121e2be2a8fdc9ee URL: https://github.com/llvm/llvm-project/commit/b826567136e391095b7731d5121e2be2a8fdc9ee DIFF: https://github.com/llvm/llvm-project/commit/b826567136e391095b7731d5121e2be2a8fdc9ee.diff

[clang] afda39a - re-land [C++20][Modules] Build module static initializers per P1874R1.

2022-07-22 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-22T08:38:07+01:00 New Revision: afda39a566d9b076bbcbeac1a6a1d4f6aecb3274 URL: https://github.com/llvm/llvm-project/commit/afda39a566d9b076bbcbeac1a6a1d4f6aecb3274 DIFF: https://github.com/llvm/llvm-project/commit/afda39a566d9b076bbcbeac1a6a1d4f6aecb3274.diff

[clang] 97af17c - re-land [C++20][Modules] Update handling of implicit inlines [P1779R3]

2022-07-21 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-07-21T09:17:01+01:00 New Revision: 97af17c5cae64f5fd5e89806e8cf20f50fec30ec URL: https://github.com/llvm/llvm-project/commit/97af17c5cae64f5fd5e89806e8cf20f50fec30ec DIFF: https://github.com/llvm/llvm-project/commit/97af17c5cae64f5fd5e89806e8cf20f50fec30ec.diff

[clang] fee3ccc - [C++20][Modules] Improve handing of Private Module Fragment diagnostics.

2022-08-21 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-08-21T10:19:46+01:00 New Revision: fee36cdabdeddc688cf7a15b144c814dd93d URL: https://github.com/llvm/llvm-project/commit/fee36cdabdeddc688cf7a15b144c814dd93d DIFF: https://github.com/llvm/llvm-project/commit/fee36cdabdeddc688cf7a15b144c814dd93d.diff

[clang] a2dd613 - [clang][Modules] Fix a regression in handling missing framework headers.

2022-08-19 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-08-19T09:13:22+01:00 New Revision: a2dd6130d49777d63c2d1b641bd8e56f26fa0822 URL: https://github.com/llvm/llvm-project/commit/a2dd6130d49777d63c2d1b641bd8e56f26fa0822 DIFF: https://github.com/llvm/llvm-project/commit/a2dd6130d49777d63c2d1b641bd8e56f26fa0822.diff

[clang] 335668b - [C++20][Modules] Do not allow non-inline external definitions in header units.

2023-01-08 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-01-08T12:19:23Z New Revision: 335668b116439d13c7555616e126acdc608ce59e URL: https://github.com/llvm/llvm-project/commit/335668b116439d13c7555616e126acdc608ce59e DIFF: https://github.com/llvm/llvm-project/commit/335668b116439d13c7555616e126acdc608ce59e.diff LOG:

[clang] bd7f4c5 - [C++20][Modules] Elide unused guard variables in Itanium ABI module initializers.

2022-12-18 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2022-12-18T09:16:27Z New Revision: bd7f4c561f5e2385ebe5500a044efe0de30cccaa URL: https://github.com/llvm/llvm-project/commit/bd7f4c561f5e2385ebe5500a044efe0de30cccaa DIFF: https://github.com/llvm/llvm-project/commit/bd7f4c561f5e2385ebe5500a044efe0de30cccaa.diff LOG:

[clang] ff70e22 - [C++20][Modules] Handle defaulted and deleted functions in header units.

2023-01-21 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-01-21T12:55:52Z New Revision: ff70e22f08d9a289c707ef192d7d4c5968e54b51 URL: https://github.com/llvm/llvm-project/commit/ff70e22f08d9a289c707ef192d7d4c5968e54b51 DIFF: https://github.com/llvm/llvm-project/commit/ff70e22f08d9a289c707ef192d7d4c5968e54b51.diff LOG:

[clang] 53a1314 - [C++20][Modules] Fix named module import diagnostics.

2023-01-22 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-01-22T10:22:36Z New Revision: 53a1314ed1b5021822071d3c7a751a5ec52619b7 URL: https://github.com/llvm/llvm-project/commit/53a1314ed1b5021822071d3c7a751a5ec52619b7 DIFF: https://github.com/llvm/llvm-project/commit/53a1314ed1b5021822071d3c7a751a5ec52619b7.diff LOG:

[clang] cdd44e2 - [C++20][Modules] Handle template declarations in header units.

2023-02-02 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-02-02T10:51:08Z New Revision: cdd44e2c85542d152aef19cfd1d2ad451d774935 URL: https://github.com/llvm/llvm-project/commit/cdd44e2c85542d152aef19cfd1d2ad451d774935 DIFF: https://github.com/llvm/llvm-project/commit/cdd44e2c85542d152aef19cfd1d2ad451d774935.diff LOG:

[clang] 62a16d5 - [C++2x][Modules] Amend module purview constant linkage [P2788R0].

2023-03-19 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-03-19T16:25:56Z New Revision: 62a16d5e2069542351c164aa0e3b216dc8e153c4 URL: https://github.com/llvm/llvm-project/commit/62a16d5e2069542351c164aa0e3b216dc8e153c4 DIFF: https://github.com/llvm/llvm-project/commit/62a16d5e2069542351c164aa0e3b216dc8e153c4.diff LOG:

Re: [PATCH] D126959: [C++20][Modules] Introduce an implementation module.

2023-03-17 Thread Iain Sandoe via cfe-commits
Hi Chuanqi > On 17 Mar 2023, at 02:49, Chuanqi Xu via Phabricator > wrote: > > ChuanqiXu added a comment. > > (I don't why I can't send emails in the original mail address. It told me > that your email addressed is not recorded by MX, while I don't know what is > MX. So I tried to reply

[clang] c6e9823 - [C++20][Modules] Introduce an implementation module.

2023-03-23 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-03-23T12:47:44Z New Revision: c6e9823724ef6bdfee262289ee34d162db436af0 URL: https://github.com/llvm/llvm-project/commit/c6e9823724ef6bdfee262289ee34d162db436af0 DIFF: https://github.com/llvm/llvm-project/commit/c6e9823724ef6bdfee262289ee34d162db436af0.diff LOG:

[clang] 6e4f870 - re-land [C++20][Modules] Introduce an implementation module.

2023-03-28 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-03-29T08:52:28+05:30 New Revision: 6e4f870a21e344fdcd61fe613b0aeeafb8a84ed2 URL: https://github.com/llvm/llvm-project/commit/6e4f870a21e344fdcd61fe613b0aeeafb8a84ed2 DIFF: https://github.com/llvm/llvm-project/commit/6e4f870a21e344fdcd61fe613b0aeeafb8a84ed2.diff

[clang] e5c7904 - [C++20][Modules] Implement P2615R1 revised export diagnostics.

2023-06-24 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-06-24T09:01:59+01:00 New Revision: e5c7904fa0bfa5a24f192cfa7b9116560e1f5d43 URL: https://github.com/llvm/llvm-project/commit/e5c7904fa0bfa5a24f192cfa7b9116560e1f5d43 DIFF: https://github.com/llvm/llvm-project/commit/e5c7904fa0bfa5a24f192cfa7b9116560e1f5d43.diff

[clang] b37233a - [C++20][Modules] Complete implementation of module.import p7.

2023-06-25 Thread Iain Sandoe via cfe-commits
Author: Iain Sandoe Date: 2023-06-25T08:33:39+01:00 New Revision: b37233a253f30e4bd5f040d598826df443293bee URL: https://github.com/llvm/llvm-project/commit/b37233a253f30e4bd5f040d598826df443293bee DIFF: https://github.com/llvm/llvm-project/commit/b37233a253f30e4bd5f040d598826df443293bee.diff

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-01-03 Thread Iain Sandoe via cfe-commits
iains wrote: @ChuanqiXu9 very sorry for the slow review. It would help me if the design was described in the commit message instead of trying to deduce it from the patch (maybe it's in a thread somewhere - so a cross-reference would help). two immediate questions and one observation: - I

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-01-04 Thread Iain Sandoe via cfe-commits
iains wrote: > Like I said in the commit message, this patch itself doesn't involve anything > relevant to user interfaces. I left it to the latter patches. Are you in a position to post the next patch (at least as a draft)? That would help me see the direction. > > * I was concerned from

[clang] [C++20] [Modules] Introduce thin BMI (PR #71622)

2023-11-07 Thread Iain Sandoe via cfe-commits
iains wrote: perhaps in the context we can use "sparse" instead of "thin" - but I do not have a good short word replace 'fat'. https://github.com/llvm/llvm-project/pull/71622 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-09 Thread Iain Sandoe via cfe-commits
iains wrote: > > clang++ -std=c++20 foo.cpp -c -fmodule-file=X=some/dir/X.pcm > > Hm, according to https://clang.llvm.org/docs/StandardCPlusPlusModules.html > this can already be achieved with the `-fmodule-output` option (and which I > was about to try in `build2`). Is there a reason a

[clang] Llvm modules on demand bmi (PR #71773)

2023-11-09 Thread Iain Sandoe via cfe-commits
iains wrote: Let us try to determine fundamental constraints. To produce a BMI (David's ImplementationBMI) that can generate the object file, it must contain all the AST. this is equivalent to hypothetical ` clang++ -x c++-module foo.cpp --prepcompile -fmodule-file=X=X-implementation.pcm`

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-03-06 Thread Iain Sandoe via cfe-commits
iains wrote: I have no further comments so LGTM if there are no objections from the other reviewers this week. https://github.com/llvm/llvm-project/pull/75894 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [C++20] [Modules] Introduce -fgen-reduced-bmi (PR #85050)

2024-03-25 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: I have no issue with the general intention or phasing here; my main concern is that we are introducing [yet] another user-facing modules option that actually we intend will become irrelevant after a few releases. In practice, removing user-facing options

[clang] [C++20] [Modules] Introduce -fgen-reduced-bmi (PR #85050)

2024-03-25 Thread Iain Sandoe via cfe-commits
@@ -3031,6 +3032,11 @@ defm skip_odr_check_in_gmf : BoolOption<"f", "skip-odr-check-in-gmf", "Perform ODR checks for decls in the global module fragment.">>, Group; +def gen_reduced_bmi : Flag<["-"], "fgen-reduced-bmi">, iains wrote: If this is

[clang] [C++20] [Modules] Introduce -fgen-reduced-bmi (PR #85050)

2024-03-25 Thread Iain Sandoe via cfe-commits
https://github.com/iains edited https://github.com/llvm/llvm-project/pull/85050 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [C++20] [Modules] Introduce -fmodules-reduced-bmi (PR #85050)

2024-03-26 Thread Iain Sandoe via cfe-commits
iains wrote: > > > @iains @dwblaikie Understood. And I thought the major problem is that > > > there are a lot flags from clang modules. And it is indeed confusing. But > > > given we have to introduce new flags in this case, probably we can only > > > try to make it more clear by better

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

2024-03-29 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: I am going to defer to @rjmccall and @dwblaikie on this one (the comments so far seem reasonable to me). https://github.com/llvm/llvm-project/pull/75912 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Serialization] Load Specializations Lazily (PR #76774)

2024-03-29 Thread Iain Sandoe via cfe-commits
https://github.com/iains commented: I am happy to defer to @vgvassilev et al. on this one. https://github.com/llvm/llvm-project/pull/76774 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [C++20] [Modules] Introduce -fexperimental-modules-reduced-bmi (PR #85050)

2024-03-29 Thread Iain Sandoe via cfe-commits
iains wrote: > Got it. I've renamed the flag as `-fexperimental-modules-reduced-bmi`. Thanks. > I feel the suggestion like let users to use `-Xclang` options look odd.. I think the point here is that we want **expert** users to try this out (with understanding that it might not behave

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-03-05 Thread Iain Sandoe via cfe-commits
@@ -830,6 +843,19 @@ class PCHGenerator : public SemaConsumer { bool hasEmittedPCH() const { return Buffer->IsComplete; } }; +class ReducedBMIGenerator : public PCHGenerator { +public: + ReducedBMIGenerator(const Preprocessor , InMemoryModuleCache , +

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-03-05 Thread Iain Sandoe via cfe-commits
iains wrote: * I do not want to block progress, so let's move forward with this patch for now. * It seems to me (as we found with GMF decl elision) that the process is quite a bit more complex than simply omitting a decl. We need to elide other decls that are then unused (e.g. decls local

[clang] [C++20] [Modules] Introduce reduced BMI (PR #75894)

2024-03-05 Thread Iain Sandoe via cfe-commits
iains wrote: Do you expect to make any changes to type streaming? https://github.com/llvm/llvm-project/pull/75894 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits