[clang] [clang-tools-extra] [lldb] [llvm] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-14 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Ping. https://github.com/llvm/llvm-project/pull/146422 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Dependency Scanning] Report only Regular File Size Changes When Computing Out-of-Date File System Cache Entries (PR #148082)

2025-07-11 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM, thanks! https://github.com/llvm/llvm-project/pull/148082 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-11 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM https://github.com/llvm/llvm-project/pull/147969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-11 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,116 @@ +// This test verifies that the modules visible to the translation unit are computed in dependency scanning. +// "client" in the first scan represents the translation unit that imports an explicit submodule, +//that only exports one other module. +// In t

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-11 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/147969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -519,6 +528,8 @@ class FullDeps { }); JOS.attributeArray("clang-module-deps", toJSONSorted(JOS, I.ClangModuleDeps)); +JOS.attributeArray("visible-clang-modules",

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -519,6 +528,8 @@ class FullDeps { }); JOS.attributeArray("clang-module-deps", toJSONSorted(JOS, I.ClangModuleDeps)); +JOS.attributeArray("visible-clang-modules",

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -993,6 +1000,28 @@ bool ModuleDepCollector::isPrebuiltModule(const Module *M) { return true; } +void ModuleDepCollector::addVisibleModules() { + llvm::DenseSet ImportedModules; + auto InsertVisibleModules = [&](const Module *M) { +if (ImportedModules.contains(M)) +

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/147969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,72 @@ +// This test verifies that the modules visible to the translation unit are computed in dependency scanning. +// "client" represents the translation unit that imports an explicit submodule, that only exports one other module. +// Thus, the dependencies of the t

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -993,6 +1000,28 @@ bool ModuleDepCollector::isPrebuiltModule(const Module *M) { return true; } +void ModuleDepCollector::addVisibleModules() { + llvm::DenseSet ImportedModules; + auto InsertVisibleModules = [&](const Module *M) { +if (ImportedModules.contains(M)) +

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
@@ -519,6 +528,8 @@ class FullDeps { }); JOS.attributeArray("clang-module-deps", toJSONSorted(JOS, I.ClangModuleDeps)); +JOS.attributeArray("visible-clang-modules",

[clang] [clang][scan-deps] Report a scanned TU's visible modules (PR #147969)

2025-07-10 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 commented: It seems like this is not actually returning the set of (what Clang calls) visible modules. Can you clarify what the desired semantics actually is? https://github.com/llvm/llvm-project/pull/147969 ___ cfe-com

[clang] [clang][deps] Stop lexing if hit a failure while loading a PCH/module in a submodule. (PR #146976)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM, thanks! https://github.com/llvm/llvm-project/pull/146976 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [llvm] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/146422 >From 69049bfcd81134f3787d1ee14ab3e5c6d91eb87d Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 3 Jul 2025 12:46:58 -0700 Subject: [PATCH 1/2] [clang][modules] Serialize `CodeGenOptions` --- clang-to

[clang] [clang-tools-extra] [llvm] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-07 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: I rebased this PR on top of https://github.com/llvm/llvm-project/pull/146766 and https://github.com/llvm/llvm-project/pull/146910. PTAL https://github.com/llvm/llvm-project/pull/146422 ___ cfe-commits mailing list cfe-commits@lists

[clang] [clang-tools-extra] [llvm] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/146422 >From 69049bfcd81134f3787d1ee14ab3e5c6d91eb87d Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 3 Jul 2025 12:46:58 -0700 Subject: [PATCH] [clang][modules] Serialize `CodeGenOptions` --- clang-tools-

[clang] [clang] Refactor `CodeGenOptions` to specify compatibility as X macro arg (PR #146910)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/146910 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Refactor `CodeGenOptions` to specify compatibility as X macro arg (PR #146910)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/146910 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Refactor `LangOptions` to specify compatibility as X macro arg (PR #146766)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/146766 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Refactor `LangOptions` to specify compatibility as X macro arg (PR #146766)

2025-07-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/146766 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Refactor `CodeGenOptions` to specify AST effect as X macro arg (PR #146910)

2025-07-03 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/146910 >From 12825e992f8e7c8c9d50e7738e94f7d3770fd356 Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 3 Jul 2025 07:31:00 -0700 Subject: [PATCH 1/2] [clang] Refactor `CodeGenOptions` to specify AST effect a

[clang] [clang-tools-extra] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-03 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: I put up https://github.com/llvm/llvm-project/pull/146766 and https://github.com/llvm/llvm-project/pull/146910. Will rebase this PR on top of those once those get approved & merged. https://github.com/llvm/llvm-project/pull/146422 ___

[clang] [clang] Refactor `CodeGenOptions` to specify AST effect as X macro arg (PR #146910)

2025-07-03 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/146910 This is the `CodeGenOptions` counterpart to https://github.com/llvm/llvm-project/pull/146766. >From 12825e992f8e7c8c9d50e7738e94f7d3770fd356 Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 3 Jul 202

[clang] [clang-tools-extra] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-02 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > > Would you have a different opinion if I told you that the next PR in my > > queue re-introduces AFFECTING_*_CODEGENOPT to represent the affecting > > ENUM_LANGOPT(ExceptionHandling, ...? > > I think it helps a bit, but the core problem is that we don't have > `BENIGN_C

[clang] [clang-tools-extra] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-02 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > > I'm not suggesting to treat CodeGenOptions as incompatible by default. > > I think the naming might be adding to the confusion here. We now have > `COMPATIBLE_..._CODEGENOPT`, but it's the "compatible" ones that are > impacting the AST and not being cleared in `resetNon

[clang] [clang-tools-extra] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-02 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > My concern is, there are many other CodeGenOpts. And if we model them as > incompatible default, it will be a breaking change for existing users. We > don't like breaking change. How do you feel about to emit a warning so that > the end users can have a chance to escape?

[clang] [clang-tools-extra] [clang][modules] Serialize `CodeGenOptions` (PR #146422)

2025-07-01 Thread Jan Svoboda via cfe-commits
@@ -1181,8 +1183,9 @@ class Preprocessor { public: Preprocessor(const PreprocessorOptions &PPOpts, DiagnosticsEngine &diags, - const LangOptions &LangOpts, SourceManager &SM, - HeaderSearch &Headers, ModuleLoader &TheModuleLoader, +

[clang] clang: Forward exception_model flag for bitcode inputs (PR #146342)

2025-06-30 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: (FWIW I have the alternative fix here: https://github.com/jansvoboda11/llvm-project/commit/45f21d8adec34fdc13e86d529a133189ec1b1d15; happy to create a PR after yours lands.) https://github.com/llvm/llvm-project/pull/146342 ___ cfe

[clang] clang: Forward exception_model flag for bitcode inputs (PR #146342)

2025-06-30 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. This is unfortunate. I think `ExceptionHandling` lives in `LangOptions` mainly because it's used to set predefined macros, similar to `Optimize` and others. This LGTM as an immediate workaround, but can you make sure to leave behind a

[clang] [clang-scan-deps] Enable test P1689.cppm on Windows (PR #145857)

2025-06-26 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. This is great, thank you! https://github.com/llvm/llvm-project/pull/145857 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-25 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM, but let's wait for @Bigcheese to take a look as well. https://github.com/llvm/llvm-project/pull/145221 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-24 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,347 @@ +// This checks that clang-scan-deps properly outputs named module dependencies +// when using the the scanning output format 'experimental-full'. +// +// See commit 72304. +// UNSUPPORTED: target={{.*}}-aix{{.*}} +// +// The slash direction in linux and windows

[clang] [clang Dependency Scanning] Enhance File Caching Diagnostics (PR #144105)

2025-06-24 Thread Jan Svoboda via cfe-commits
@@ -220,13 +221,34 @@ class DependencyScanningFilesystemSharedCache { CacheShard &getShardForFilename(StringRef Filename) const; CacheShard &getShardForUID(llvm::sys::fs::UniqueID UID) const; - /// Visits all cached entries and re-stat an entry using FS if - /// it is ne

[clang] [clang Dependency Scanning] Enhance File Caching Diagnostics (PR #144105)

2025-06-24 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM with one nit suggestion. There seems to be a build failure in CI due to revert of @Bigcheese's commit, so that probably needs to be taken care of before merging. I'd also like to see the downstream PR before merging this one just

[clang] [clang Dependency Scanning] Enhance File Caching Diagnostics (PR #144105)

2025-06-24 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/144105 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-24 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,347 @@ +// This checks that clang-scan-deps properly outputs named module dependencies +// when using the the scanning output format 'experimental-full'. +// +// See commit 72304. jansvoboda11 wrote: ```suggestion // See PR #72304. ``` https://github

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-23 Thread Jan Svoboda via cfe-commits
@@ -714,7 +714,9 @@ void ModuleDepCollectorPP::EndOfMainFile() { MDC.Consumer.handleDependencyOutputOpts(*MDC.Opts); - if (MDC.Service.getFormat() == ScanningOutputFormat::P1689) + if (const auto Format = MDC.Service.getFormat(); + Format == ScanningOutputFormat::P16

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-23 Thread Jan Svoboda via cfe-commits
@@ -521,8 +529,14 @@ class FullDeps { } else { JOS.object([&] { JOS.attribute("clang-context-hash", StringRef(I.ContextHash)); + if (I.ModuleName.size()) +JOS.attribute("module-name", (I.Modul

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-23 Thread Jan Svoboda via cfe-commits
@@ -521,8 +529,14 @@ class FullDeps { } else { JOS.object([&] { JOS.attribute("clang-context-hash", StringRef(I.ContextHash)); + if (I.ModuleName.size()) +JOS.attribute("module-name", (I.Modul

[clang] [clang][clang-scan-deps] Add named modules to format 'experimental-full' (PR #145221)

2025-06-23 Thread Jan Svoboda via cfe-commits
@@ -521,8 +529,14 @@ class FullDeps { } else { JOS.object([&] { JOS.attribute("clang-context-hash", StringRef(I.ContextHash)); + if (I.ModuleName.size()) jansvoboda11 wrote: Let's not rely on im

[clang] [clang][scan-deps] Add option to disable caching stat failures (PR #144000)

2025-06-20 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/144000 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][scan-deps] Add option to disable caching stat failures (PR #144000)

2025-06-13 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. LGTM. I think I would slightly prefer for `DependencyScanningWorkerFilesystem` to accept the entire service instead of its members (for the same reasons we do that in the worker, action, etc.) https://github.com/llvm/llvm-project/pull

[clang] [Modules] Don't fail when an unused textual header is missing. (PR #138227)

2025-06-04 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > What's worse, it really depends on whether any `FileID` used by that file was > ever deserialized That reminds me of the issue @alexfh and I discussed here: * [[clang][modules] NFCI: Pragma diagnostic mappings: write/read FileID instead of SourceLocation](https://reviews.

[clang] [clang][modules] rename "AST" to precompiled in diagnostic messages NFCI (PR #142635)

2025-06-03 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/142635 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [ASTWriter] Do not write ObjCCategories if empty. (PR #141841)

2025-06-02 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/141841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Rename diag notes that assumed precompiled dependencies are pch's, NFCI (PR #142161)

2025-05-30 Thread Jan Svoboda via cfe-commits
@@ -24,8 +24,9 @@ def err_fe_ast_file_modified : Error< DefaultFatal; def err_fe_pch_file_overridden : Error< "file '%0' from the precompiled header has been overridden">; -def note_pch_required_by : Note<"'%0' required by '%1'">; -def note_pch_rebuild_required : Note<"

[clang] [clang] Rename diag notes that assumed precompiled dependencies are pch's, NFCI (PR #142161)

2025-05-30 Thread Jan Svoboda via cfe-commits
@@ -24,8 +24,9 @@ def err_fe_ast_file_modified : Error< DefaultFatal; def err_fe_pch_file_overridden : Error< "file '%0' from the precompiled header has been overridden">; -def note_pch_required_by : Note<"'%0' required by '%1'">; -def note_pch_rebuild_required : Note<"

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-29 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Thanks for the concrete example! I think the key thing to realize is that the `DiagnosticsEngine` and `DiagnosticOptions` used for command-line parsing are typically throwaway and separate from those used for actual compilation. I suggest looking at how `cc1_main()` orchest

[clang] NFCI: [clang][deps] Simplify handling of main TU context hash (PR #141966)

2025-05-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/141966 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] NFCI: [clang][deps] Simplify handling of main TU context hash (PR #141966)

2025-05-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/141966 Instead of handling the context hash in a preprocessor callback on each file change, do it once at the end of the scan. >From 26d8a1828e201447fb3cba5ba4258a4b282a79cc Mon Sep 17 00:00:00 2001 From: Jan Svo

[clang] [ASTWriter] Do not write ObjCCategories if empty. (PR #141841)

2025-05-28 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: This change makes sense to me. I have two questions: 1. Can we add a test that checks that the block is omitted? (maybe via `llvm-bcanalyzer -dump`) 2. Can we make the `explicit-build.cpp` test more robust? (possibly by writing out import signatures) https://github.com/llvm

[clang] [clang-tools-extra] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.cpp after 9e306ad4 (PR #141131)

2025-05-22 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/141131 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.cpp after 9e306ad4 (PR #141131)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Thank you too! https://github.com/llvm/llvm-project/pull/141131 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.cpp after 9e306ad4 (PR #141131)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > @jansvoboda11 With this PR, I still see: > > ``` > clang/lib/Frontend/LogDiagnosticPrinter.cpp:24:7: error: member initializer > 'DiagOpts' does not name a non-static data member or base class >24 | DiagOpts(DiagOpts) {} > | ^~ > ``` >

[clang] [clang-tools-extra] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.cpp after 9e306ad4 (PR #141131)

2025-05-22 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/141131 >From b57f5b1adb7bb7bd70f8c442d0a0031fa0aeed2a Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 22 May 2025 13:22:18 -0700 Subject: [PATCH 1/2] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.c

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Thanks, I'll fix those ASAP. https://github.com/llvm/llvm-project/pull/139584 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.cpp after 9e306ad4 (PR #141131)

2025-05-22 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/141131 None >From b57f5b1adb7bb7bd70f8c442d0a0031fa0aeed2a Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 22 May 2025 13:22:18 -0700 Subject: [PATCH] [clang] Fix LogDiagnosticPrinter.h and ClangTidyPlugin.

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Are those in the upstream repo? If so, where are they coming from? I have a sparse checkout, so it's possible I missed some non-Clang and non-LLDB usages of `DiagnosticOptions`. https://github.com/llvm/llvm-project/pull/139584 ___

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Reverted the revert, since the build now fails due to the forward-fixes not being reverted... https://github.com/llvm/llvm-project/pull/139584 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/m

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-22 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > @jansvoboda11 I've revered your PR due buildbot failures above (and my local > build failures with the same error messages). I'm happy to try your revised > patch to see if it build cleanly. Thanks! I already forward-fixed both failures: d25f95fdbc5314f30618912e18f00ad4dd

[clang] [WIP][C++20][Modules] Lazily, but fully load 'HeaderFileInfo' table into memory. (PR #140867)

2025-05-21 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: FWIW I tried running this patch through my `clang-scan-deps` benchmark on an internal Apple project and saw 16% increase in instruction count. https://github.com/llvm/llvm-project/pull/140867 ___ cfe-commits mailing list cfe-commit

[clang] [clang][lex] Introduce new single-module-parse mode (PR #135813)

2025-05-20 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/135813 >From 5cab1328fd689783ac4117083e231e7f0a49c3db Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Wed, 9 Apr 2025 13:11:38 -0700 Subject: [PATCH] [clang][lex] Introduce new single-module-parse mode --- clan

[clang-tools-extra] 72b2219 - Revert "[clang][modules] Timestamp-less validation API (#139987)"

2025-05-19 Thread Jan Svoboda via cfe-commits
Author: Jan Svoboda Date: 2025-05-19T12:57:54-07:00 New Revision: 72b2219b3e2319e29831e4e9b07c440444f3add6 URL: https://github.com/llvm/llvm-project/commit/72b2219b3e2319e29831e4e9b07c440444f3add6 DIFF: https://github.com/llvm/llvm-project/commit/72b2219b3e2319e29831e4e9b07c440444f3add6.diff L

[clang] 175f8a4 - [clang] Attempt to fix "test/Modules/fmodules-validate-once-per-build-session.c"

2025-05-19 Thread Jan Svoboda via cfe-commits
Author: Jan Svoboda Date: 2025-05-19T12:11:11-07:00 New Revision: 175f8a444b296ba956505a5760805f05a175111b URL: https://github.com/llvm/llvm-project/commit/175f8a444b296ba956505a5760805f05a175111b DIFF: https://github.com/llvm/llvm-project/commit/175f8a444b296ba956505a5760805f05a175111b.diff L

[clang-tools-extra] 7a24238 - Reland "[clang][modules] Timestamp-less validation API (#139987)"

2025-05-19 Thread Jan Svoboda via cfe-commits
Author: Jan Svoboda Date: 2025-05-19T10:40:55-07:00 New Revision: 7a242387c950c7060143da6da0e6fb91f36bb458 URL: https://github.com/llvm/llvm-project/commit/7a242387c950c7060143da6da0e6fb91f36bb458 DIFF: https://github.com/llvm/llvm-project/commit/7a242387c950c7060143da6da0e6fb91f36bb458.diff L

[clang] [clang-tools-extra] [clang][modules] Timestamp-less validation API (PR #138983)

2025-05-14 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/138983 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-14 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/139584 Rate limit · GitHub body { background-color: #f6f8fa; color: #24292e; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,s

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-14 Thread Jan Svoboda via cfe-commits
@@ -2032,6 +2032,7 @@ class SourceManagerForFile { // as they are created in `createSourceManagerForFile` so that they can be // deleted in the reverse order as they are created. std::unique_ptr FileMgr; + std::unique_ptr DiagOpts; jansvoboda11 wrote: I

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-14 Thread Jan Svoboda via cfe-commits
@@ -837,6 +838,7 @@ class ASTUnit { static std::unique_ptr LoadFromCommandLine( const char **ArgBegin, const char **ArgEnd, std::shared_ptr PCHContainerOps, + std::shared_ptr DiagOpts, jansvoboda11 wrote: Explained above. https://github.com

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-14 Thread Jan Svoboda via cfe-commits
@@ -107,6 +107,7 @@ class ASTUnit { private: std::unique_ptr LangOpts; + std::shared_ptr DiagOpts; jansvoboda11 wrote: I was hoping it could be, but the situation is a bit weird. The documentation for `ASTUnit::LoadFromCommandLine()` says the `Diagnostics

[clang] [clang][modules] Invalidate module cache when SDKSettings.json changes (PR #139751)

2025-05-13 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/139751 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Invalidate module cache when SDKSettings.json changes (PR #139751)

2025-05-13 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/139751 Rate limit · GitHub body { background-color: #f6f8fa; color: #24292e; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,s

[clang] [clang][modules] Invalidate module cache when SDKSettings.json changes (PR #139751)

2025-05-13 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/139751 This PR adds the `%sdk/SDKSettings.json` file to the PCM input file table, so that the PCM gets invalidated when the file changes. This is necessary for availability checks to work correctly.

[clang] [clang-tools-extra] [clang][modules] Timestamp-less validation API (PR #138983)

2025-05-12 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/138983 >From 5ae3871b981d22583ce1b168cbbe3429317d89eb Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 24 Apr 2025 15:10:23 -0700 Subject: [PATCH] [clang][modules] Timestamp-less validation API --- clang-to

[clang] [clang-tools-extra] [lldb] [clang] Remove intrusive reference count from `DiagnosticOptions` (PR #139584)

2025-05-12 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/139584 The `DiagnosticOptions` class is currently intrusively reference-counted, which makes reasoning about its lifetime very difficult in some cases. For example, `CompilerInvocation` owns the `DiagnosticOption

[clang-tools-extra] [modularize] Use std::tie to implement operator< (NFC) (PR #139410)

2025-05-10 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/139410 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules][deps] Implicit modules are out of date when their explicit imports are (PR #138920)

2025-05-09 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/138920 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules][deps] Implicit modules are out of date when their explicit imports are (PR #138920)

2025-05-09 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,178 @@ +// Test that modifications to a common header (imported from both a PCH and a TU) +// cause rebuilds of dependent modules imported from the TU on incremental build. + +// RUN: rm -rf %t +// RUN: split-file %s %t + +//--- module.modulemap +module mod_common { h

[clang] [clang][deps] Do check for relocated modules (PR #133827)

2025-05-09 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/133827 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Allow not forcing validation of user headers (PR #139091)

2025-05-09 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/139091 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang][modules] Timestamp-less validation API (PR #138983)

2025-05-08 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/138983 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Allow not forcing validation of user headers (PR #139091)

2025-05-08 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/139091 Force-validation of user headers was implemented in acb803e8 to deal with files changing during build. The dependency scanner guarantees an immutable file system during single build session, so the validat

[clang] [clang][modules][deps] Implicit modules are out of date when their explicit imports are (PR #138920)

2025-05-07 Thread Jan Svoboda via cfe-commits
@@ -0,0 +1,77 @@ +// Test that modifications to a common header (imported from both a PCH and a TU) +// cause rebuilds of dependent modules imported from the TU on incremental build. + +// RUN: rm -rf %t +// RUN: split-file %s %t + +//--- module.modulemap +module mod_common { he

[clang] [clang][modules][deps] Implicit modules are out of date when their explicit imports are (PR #138920)

2025-05-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/138920 >From 306a9ceab9aa77ccb2752e847339c5a67e672549 Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Wed, 7 May 2025 10:10:47 -0700 Subject: [PATCH 1/2] [clang][modules][deps] Rebuild implicit modules when thei

[clang] [clang][modules][deps] Optimize in-process timestamping of PCMs (PR #137363)

2025-05-07 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: (Just adding a note here for my records that this speeds up from-scratch scans by 1.4% and incremental _null_ scans by 67% on my benchmark.) https://github.com/llvm/llvm-project/pull/137363 ___ cfe-commits mailing list cfe-commits@

[clang] [clang-tools-extra] [clang][modules] Timestamp-less validation API (PR #138983)

2025-05-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 created https://github.com/llvm/llvm-project/pull/138983 Timestamps are an implementation detail of the cross-process module cache implementation. This PR hide it from the `ModuleCache` API, which simplifies the in-process implementation. >From 8d594dd6ffdf2601

[clang] [clang][Unit Test] Updating Negative Stat Caching Diagnostic Unit Test (PR #138955)

2025-05-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/138955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules][deps] Optimize in-process timestamping of PCMs (PR #137363)

2025-05-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/137363 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules][deps] Implicit modules are out of date when their explicit imports are (PR #138920)

2025-05-07 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 edited https://github.com/llvm/llvm-project/pull/138920 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [lldb] [clang][modules] Lazily load by name lookups in module maps (PR #132853)

2025-05-06 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: Test change LGTM, I was probably trying to get to a minimal test-case and ended up with something that was relying on implementation details. https://github.com/llvm/llvm-project/pull/132853 ___ cfe-commits mailing list cfe-commits

[clang] [clang] Provide to `PPCallbacks` full expression range even in single file parse mode. (PR #138358)

2025-05-05 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 approved this pull request. https://github.com/llvm/llvm-project/pull/138358 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules][deps] Optimize in-process timestamping of PCMs (PR #137363)

2025-05-01 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/137363 >From f5b5bc95209c2c44c30481754870d319df20f78f Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 24 Apr 2025 14:35:59 -0700 Subject: [PATCH 1/5] [clang][deps] Optimize in-process timestamping of PCMs -

[clang] [clang-tools-extra] [lldb] [clang][frontend] Require invocation to construct `CompilerInstance` (PR #137668)

2025-05-01 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/137668 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [lldb] [clang][frontend] Require invocation to construct `CompilerInstance` (PR #137668)

2025-04-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/137668 >From 692779413664a17287a1f34d4e3225ae8bc96ae0 Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Mon, 21 Apr 2025 11:55:43 -0700 Subject: [PATCH 1/2] [clang][frontend] Require invocation for `CompilerInstan

[clang] [clang] Hide the `LangOptions` pointer from `CompilerInvocation` (PR #137675)

2025-04-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/137675 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Hide the `LangOptions` pointer from `CompilerInvocation` (PR #137675)

2025-04-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 updated https://github.com/llvm/llvm-project/pull/137675 >From 14469a8726fc1d038f41c7e3e29a84ec8f52d013 Mon Sep 17 00:00:00 2001 From: Jan Svoboda Date: Thu, 22 Aug 2024 08:45:08 -0700 Subject: [PATCH 1/2] [clang] Hide the `LangOptions` pointer from `CompilerInv

[clang] [clang] Enable making the `CompilerInstance` module dependency collector thread-safe (PR #137227)

2025-04-29 Thread Jan Svoboda via cfe-commits
https://github.com/jansvoboda11 closed https://github.com/llvm/llvm-project/pull/137227 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Hide the `LangOptions` pointer from `CompilerInvocation` (PR #137675)

2025-04-29 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > Also looks like [this > assert](https://github.com/llvm/llvm-project/blob/14469a8726fc1d038f41c7e3e29a84ec8f52d013/clang/include/clang/Frontend/ASTUnit.h#L472) > doesn't serve its value anymore > > ```c++ > const LangOptions &getLangOpts() const { > assert(LangOpts

[clang] [clang] Hide the `LangOptions` pointer from `CompilerInvocation` (PR #137675)

2025-04-29 Thread Jan Svoboda via cfe-commits
jansvoboda11 wrote: > > The `unique_ptr` in `ASTUnit` always stores a **copy** of the `shared_ptr` > > in `CompilerInvocation`. > > And we need `unique_ptr` in `ASTUnit` instead of a direct value so we can > change LangOpts in `ASTUnit::Parse`? Not really, using `LangOptions` directly instead

  1   2   3   4   5   6   7   8   9   10   >