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.
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
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
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) {}
> | ^~
> ```
>
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
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
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
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
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
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
@@ -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
@@ -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
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
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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
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
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.
@@ -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<"
@@ -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<"
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
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
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
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
___
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-
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
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?
@@ -1181,8 +1183,9 @@ class Preprocessor {
public:
Preprocessor(const PreprocessorOptions &PPOpts, DiagnosticsEngine &diags,
- const LangOptions &LangOpts, SourceManager &SM,
- HeaderSearch &Headers, ModuleLoader &TheModuleLoader,
+
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
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
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
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
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-
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
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
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
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
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
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
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
@@ -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))
+
@@ -519,6 +528,8 @@ class FullDeps {
});
JOS.attributeArray("clang-module-deps",
toJSONSorted(JOS, I.ClangModuleDeps));
+JOS.attributeArray("visible-clang-modules",
@@ -519,6 +528,8 @@ class FullDeps {
});
JOS.attributeArray("clang-module-deps",
toJSONSorted(JOS, I.ClangModuleDeps));
+JOS.attributeArray("visible-clang-modules",
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
@@ -519,6 +528,8 @@ class FullDeps {
});
JOS.attributeArray("clang-module-deps",
toJSONSorted(JOS, I.ClangModuleDeps));
+JOS.attributeArray("visible-clang-modules",
@@ -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))
+
@@ -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
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
@@ -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
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
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
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
https://github.com/jansvoboda11 created
https://github.com/llvm/llvm-project/pull/148982
This PR removes the command line parsing workaround introduced in
https://github.com/llvm/llvm-project/pull/146342 by moving
`LangOptions::ExceptionHandling` to `CodeGenOptions` that get parsed even for
I
jansvoboda11 wrote:
Windows CI failure look unrelated.
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
@@ -46,13 +46,32 @@ class CodeGenOptionsBase {
enum class CompatibilityKind {
/// Does affect the construction of the AST in a way that does prevent
/// module interoperability.
-Affecting,
+NotCompatible,
+/// Does affect the construction of the AST in a
@@ -36,13 +36,13 @@ void CodeGenOptions::resetNonModularOptions(StringRef
ModuleFormat) {
// emitted into the PCM (-gmodules).
if (ModuleFormat == "raw" && !DebugTypeExtRefs) {
#define DEBUGOPT(Name, Bits, Default, Compatibility)
\
- if constexp
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/4] [clang][modules] Serialize `CodeGenOptions`
---
clang-to
Author: Jan Svoboda
Date: 2025-07-15T12:57:32-07:00
New Revision: ad1cbc020493b39266f7b259737bf5c7ad0a3d56
URL:
https://github.com/llvm/llvm-project/commit/ad1cbc020493b39266f7b259737bf5c7ad0a3d56
DIFF:
https://github.com/llvm/llvm-project/commit/ad1cbc020493b39266f7b259737bf5c7ad0a3d56.diff
L
https://github.com/jansvoboda11 closed
https://github.com/llvm/llvm-project/pull/148982
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jansvoboda11 created
https://github.com/llvm/llvm-project/pull/149113
This PR virtualizes module cache pruning via the new `ModuleCache` interface.
Currently this is an NFC, but I left a FIXME in `InProcessModuleCache` to make
this more efficient for the dependency scanner.
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
1501 - 1565 of 1565 matches
Mail list logo