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

2025-05-22 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm. I agree this makes the lifetime clearer. https://github.com/llvm/llvm-project/pull/139584 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/list

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

2025-05-14 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm, looks like it keeps the existing semantics. https://github.com/llvm/llvm-project/pull/138983 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/l

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

2025-05-08 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm 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] Mark some language options as benign. (PR #131569)

2025-05-07 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm with Chuanqi's release notes request. Separately, I'd also like to see the rtti and exceptions stuff be marked compatible, although with some testing first of what happens when people do create AST differences with the macros. It's

[clang] [clang] Mark some language options as benign. (PR #131569)

2025-05-07 Thread Michael Spencer via cfe-commits
@@ -398,11 +398,11 @@ BENIGN_LANGOPT(HalfNoSemanticInterposition, 1, 0, "Like -fno-semantic-interposition but don't use local aliases") ENUM_LANGOPT(StackProtector, StackProtectorMode, 2, SSPOff, "stack protector mode") -ENUM_LANGOPT(TrivialAutoVarIn

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

2025-05-07 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. Just looking at the `missing_textual_header` module alone this is a bit odd, but that's just the semantics of textual headers. Really textual headers just exist to control the non-modular include warning, so this is fine. https://github.

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

2025-05-07 Thread Michael Spencer 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-tools-extra] [lldb] [clang][modules] Lazily load by name lookups in module maps (PR #132853)

2025-05-06 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/132853 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Reset CodeGenOptions fields for clean module/PCH builds (PR #138256)

2025-05-06 Thread Michael Spencer via cfe-commits
@@ -209,20 +209,21 @@ void ModuleDepCollector::addOutputPaths(CowCompilerInvocation &CI, void dependencies::resetBenignCodeGenOptions(frontend::ActionKind ProgramAction, const LangOptions &LangOpts,

[clang] [llvm] Reland: [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #136046)

2025-04-30 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,127 @@ +//===--- RunOnNewStack.cpp - Crash Recovery ---===// +// +// 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: Ap

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

2025-04-30 Thread Michael Spencer via cfe-commits
Bigcheese wrote: I believe the Linux test failure was due to a test that should have failed. It had a case insensitive VFS for the headers, but not for the modulemap. When looking up `fw.framework/Modules/module.modulemap` it should fail because that path doesn't exist, and isn't made case ins

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

2025-04-30 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132853 >From cea7c581ff90952d112d912da02de688e09112f7 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 29 Jan 2025 12:49:29 -0800 Subject: [PATCH] [clang][modules] Lazily load by name lookups in module maps

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

2025-04-30 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132853 Rate limit · GitHub body { background-color: #f6f8fa; color: #24292e; font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans

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

2025-04-30 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. Makes sense. Every non-test creation of `CompilerInstance` has an associated invocation. https://github.com/llvm/llvm-project/pull/137668 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [Preprocessor] Do not expand macros if the input is already preprocessed (PR #137665)

2025-04-30 Thread Michael Spencer via cfe-commits
Juan Manuel Martinez =?utf-8?q?Caamaño?= Message-ID: In-Reply-To: Bigcheese wrote: module maps don't get preprocessed, so I don't think it matters what that is set to. For normal module.modulemap files `Preprocessed` is `false`. I think it's fine to remove the true and see if anything breaks

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

2025-04-29 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. I think this looks good overall. I'm a little concerned that the single file and single module names are similar while having quite different semantics, but single file is never actually exposed to users, so they won't be confused. I don

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

2025-04-29 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm 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] Optimize in-process timestamping of PCMs (PR #137363)

2025-04-29 Thread Michael Spencer via cfe-commits
@@ -59,19 +60,46 @@ class InProcessModuleCache : public ModuleCache { InMemoryModuleCache InMemory; public: - InProcessModuleCache(ModuleCacheMutexes &Mutexes) : Mutexes(Mutexes) {} + InProcessModuleCache(ModuleCacheEntries &Entries) : Entries(Entries) {} void prepare

[clang] [Clang] Add new -header-include-filtering=direct-per-file option (PR #137087)

2025-04-28 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/137087 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add new -header-include-filtering=direct-per-file option (PR #137087)

2025-04-28 Thread Michael Spencer via cfe-commits
@@ -322,3 +372,81 @@ void HeaderIncludesJSONCallback::FileSkipped( IncludedHeaders.push_back(SkippedFile.getName().str()); } + +void HeaderIncludesDirectPerFileCallback::EndOfMainFile() { + if (Dependencies.empty()) +return; + + // Sort the files so that the output doe

[clang] [Clang] Add new -header-include-filtering=direct-per-file option (PR #137087)

2025-04-28 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/137087 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add new -header-include-filtering=direct-per-file option (PR #137087)

2025-04-28 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm. https://github.com/llvm/llvm-project/pull/137087 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] Reland: [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #136046)

2025-04-16 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese created https://github.com/llvm/llvm-project/pull/136046 Reland https://github.com/llvm/llvm-project/pull/133173. This changes the assembly code to use `.cfi_{start,end}proc` directly in a file scope asm statement and restricts enabling it to MachO to help ensure t

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

2025-04-15 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132853 >From 93fa13d9efabf72032966306473689dfac221857 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 29 Jan 2025 12:49:29 -0800 Subject: [PATCH] [clang][modules] Lazily load by name lookups in module maps

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-15 Thread Michael Spencer via cfe-commits
Bigcheese wrote: And another fix for `!LLVM_ENABLE_THREADS`: 4f64c80d5a23c244f942193e58ecac666c173308 https://github.com/llvm/llvm-project/pull/133173 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listi

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-15 Thread Michael Spencer via cfe-commits
Bigcheese wrote: I'll have a fix in a sec. https://github.com/llvm/llvm-project/pull/133173 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-15 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/133173 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-15 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/133173 >From 52b33e2511a2e775e78471fbb2c66ad072369168 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 26 Mar 2025 14:48:19 -0700 Subject: [PATCH] [llvm][clang] Allocate a new stack instead of spawning a new

[clang] [clang][frontend] Make `CompilerInstance::FailedModules` thread-safe (PR #135473)

2025-04-15 Thread Michael Spencer via cfe-commits
@@ -1206,82 +1198,70 @@ createCompilerInstanceForModuleCompileImpl(CompilerInstance &ImportingInstance, DiagnosticOptions &DiagOpts = Invocation->getDiagnosticOpts(); DiagOpts.VerifyDiagnostics = 0; - assert(ImportingInstance.getInvocation().getModuleHash() == -

[clang] [clang][frontend] Make `CompilerInstance::FailedModules` thread-safe (PR #135473)

2025-04-15 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. https://github.com/llvm/llvm-project/pull/135473 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][frontend] Make `CompilerInstance::FailedModules` thread-safe (PR #135473)

2025-04-14 Thread Michael Spencer via cfe-commits
@@ -1206,82 +1198,70 @@ createCompilerInstanceForModuleCompileImpl(CompilerInstance &ImportingInstance, DiagnosticOptions &DiagOpts = Invocation->getDiagnosticOpts(); DiagOpts.VerifyDiagnostics = 0; - assert(ImportingInstance.getInvocation().getModuleHash() == -

[clang] [clang] Extract `CompilerInstance` creation out of `compileModuleImpl()` (PR #134887)

2025-04-10 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. I believe that's fine to run, it just may build the index again. https://github.com/llvm/llvm-project/pull/134887 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cg

[clang] [clang] Extract `CompilerInstance` creation out of `compileModuleImpl()` (PR #134887)

2025-04-10 Thread Michael Spencer via cfe-commits
Bigcheese wrote: Can you not just move the `err_module_rebuild_finalized` diagnostic into `compileModuleImpl`? It has access to everything it needs there. https://github.com/llvm/llvm-project/pull/134887 ___ cfe-commits mailing list cfe-commits@lists.

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-10 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/133173 >From 52b33e2511a2e775e78471fbb2c66ad072369168 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 26 Mar 2025 14:48:19 -0700 Subject: [PATCH] [llvm][clang] Allocate a new stack instead of spawning a new

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

2025-04-05 Thread Michael Spencer via cfe-commits
@@ -2128,9 +2245,16 @@ bool ModuleMap::loadModuleMapFile(FileEntryRef File, bool IsSystem, // If the module map file wasn't already entered, do so now. if (ID.isInvalid()) { -auto FileCharacter = -IsSystem ? SrcMgr::C_System_ModuleMap : SrcMgr::C_User_ModuleMa

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-03 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,115 @@ +//===--- RunOnNewStack.cpp - Crash Recovery ---===// +// +// 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: Ap

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-03 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/133173 >From cc251995b3d55b3cd76b0b65753be88c9fb9d627 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 26 Mar 2025 14:48:19 -0700 Subject: [PATCH] [llvm][clang] Allocate a new stack instead of spawning a new

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

2025-04-03 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132853 >From d19d7c6314dbb68abfe7cdceebd8e8f65aedddc5 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 29 Jan 2025 12:49:29 -0800 Subject: [PATCH] [clang][modules] Lazily load by name lookups in module maps

[clang] [llvm] [clang][modules] Lazily load by name lookups in module maps (PR #132853)

2025-04-03 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132853 >From d19d7c6314dbb68abfe7cdceebd8e8f65aedddc5 Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Wed, 29 Jan 2025 12:49:29 -0800 Subject: [PATCH 1/2] [clang][modules] Lazily load by name lookups in module

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-03 Thread Michael Spencer via cfe-commits
@@ -52,6 +56,7 @@ else() check_include_file(mach/mach.h HAVE_MACH_MACH_H) check_include_file(malloc/malloc.h HAVE_MALLOC_MALLOC_H) check_include_file(pthread.h HAVE_PTHREAD_H) + check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) Bigcheese wrote: I c

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

2025-04-03 Thread Michael Spencer via cfe-commits
Bigcheese wrote: > This now makes much more sense after the renames from the prep-commit. There > are still some naming inconsistencies, though. For example > `ModuleMap::loadModuleMapFile()` both **parses** and loads a module map file, > but `ModuleMap::findOrLoadModule()` expects the module

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-04-03 Thread Michael Spencer via cfe-commits
Bigcheese wrote: > If split stacks are negatively impacting profiling, debugging, or other > compiler development tasks, I have to ask, have we considered optimizing > clang stack usage? The issue is we will always have this problem with implicitly built modules. It's naturally recursive as w

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-03-27 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,115 @@ +//===--- RunOnNewStack.cpp - Crash Recovery ---===// +// +// 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: Ap

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-03-26 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,115 @@ +//===--- RunOnNewStack.cpp - Crash Recovery ---===// +// +// 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: Ap

[clang] [llvm] [llvm][clang] Allocate a new stack instead of spawning a new thread to get more stack space (PR #133173)

2025-03-26 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese created https://github.com/llvm/llvm-project/pull/133173 Clang spawns a new thread to avoid running out of stack space. This can make debugging and performance analysis more difficult as how the threads are connected is difficult to recover. This patch introduces

[clang] [clang-tools-extra] [clang] Consistently use "load" to refer to populating clang::ModuleMap (PR #132970)

2025-03-25 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/132970 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang] Consistently use "load" to refer to populating clang::ModuleMap (PR #132970)

2025-03-25 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/132970 >From 1dca90893cd12709f7d3952b68b552fe93b19c5d Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Tue, 25 Mar 2025 11:14:46 -0700 Subject: [PATCH] [clang] Consistently use "load" to refer to populating clan

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

2025-03-25 Thread Michael Spencer via cfe-commits
@@ -1801,6 +1801,33 @@ HeaderSearch::loadModuleMapFileImpl(FileEntryRef File, bool IsSystem, return LMM_NewlyLoaded; } +HeaderSearch::LoadModuleMapResult +HeaderSearch::parseModuleMapFileImpl(FileEntryRef File, bool IsSystem, Bigcheese wrote: https://githu

[clang] [clang-tools-extra] [clang] Consistently use "load" to refer to populating clang::ModuleMap (PR #132970)

2025-03-25 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese created https://github.com/llvm/llvm-project/pull/132970 Now that we have ModuleMapFile.cpp which parses module maps, it's confusing what ModuleMap::parseModuleMapFile actually does. HeaderSearch already called this loading a module map, so consistently use that te

[clang] [clang-tools-extra] [clang][lex] Store non-owning options ref in `HeaderSearch` (PR #132780)

2025-03-25 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. There's no point in having vague ownership here, so this lgtm. https://github.com/llvm/llvm-project/pull/132780 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-

[clang] 53fa289 - [clang] Remove unused member variable from ModuleMap

2025-03-25 Thread Michael Spencer via cfe-commits
Author: Michael Spencer Date: 2025-03-25T10:58:44-07:00 New Revision: 53fa28940e0a3ef183e04dd8bc8566d64bbfd101 URL: https://github.com/llvm/llvm-project/commit/53fa28940e0a3ef183e04dd8bc8566d64bbfd101 DIFF: https://github.com/llvm/llvm-project/commit/53fa28940e0a3ef183e04dd8bc8566d64bbfd101.dif

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

2025-03-24 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese created https://github.com/llvm/llvm-project/pull/132853 Instead of eagerly populating the `clang::ModuleMap` when looking up a module by name, this patch changes `HeaderSearch` to only load the modules that are actually used. This introduces `ModuleMap::findOrLoa

[clang] [clang] NFCI: Mutate `HeaderSearchOptions` earlier (PR #130823)

2025-03-21 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. I think this looks good now. Also nice in general to not mess with options after argument parsing. https://github.com/llvm/llvm-project/pull/130823 ___ cfe-commits mailing list cfe-commits@lists

[clang] [clang] Remove deprecated `FileManager` APIs (PR #132063)

2025-03-19 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. https://github.com/llvm/llvm-project/pull/132063 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Correctly set module map systemness (PR #131940)

2025-03-19 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/131940 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Mark some language options as benign. (PR #131569)

2025-03-18 Thread Michael Spencer via cfe-commits
Bigcheese wrote: The general issue with changing this to benign is that it ends up being non-deterministic and buggy for implicitly built modules. I think what we want here is `COMPATIBLE_LANGOPT`. By default it will still feed into the context hash, but the compiler won't reject loading such

[clang-tools-extra] [clangd] [C++20] [Modules] Add modules suffix for 'Header' Source Switch (PR #131591)

2025-03-17 Thread Michael Spencer via cfe-commits
Bigcheese wrote: Is the expectation here that people will name implementation units "foo.cpp" and the corresponding interface unit "foo.cppm"? I guess that's reasonable. https://github.com/llvm/llvm-project/pull/131591 ___ cfe-commits mailing list cfe

[clang] [clang][DependencyScanning] Track modules that resolve from sysroot. (PR #130634)

2025-03-15 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese commented: Overall I think this looks good. I'm not sure I share the same concerns. The situation this covers is how likely is it that the build system is going to determine this needs to be rebuilt, and that happens (in most cases) purely based on the reported dep

[clang] [clang][DependencyScanning] Track modules that resolve from sysroot. (PR #130634)

2025-03-14 Thread Michael Spencer via cfe-commits
@@ -843,7 +864,7 @@ void ModuleDepCollectorPP::addModuleDep( !MDC.isPrebuiltModule(Import)) { Bigcheese wrote: I think that's fine as long as the current patch says that pre built modules means it's not in sysroot, as I think that's a small addition and

[clang] [clang][DependencyScanning] Track modules that resolve from sysroot. (PR #130634)

2025-03-14 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/130634 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-13 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm. https://github.com/llvm/llvm-project/pull/130989 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/130989 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,54 @@ +//===--===// +// +// 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: Apac

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,54 @@ +//===--===// +// +// 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: Apac

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,54 @@ +//===--===// +// +// 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: Apac

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese commented: I have a few comments on naming, but overall this looks good. https://github.com/llvm/llvm-project/pull/130989 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listin

[clang] [llvm] [Support] Introduce new `AdvisoryLock` interface (PR #130989)

2025-03-12 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,54 @@ +//===--===// +// +// 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: Apac

[clang] [llvm] [Support] Return `LockFileManager` errors right away (PR #130627)

2025-03-11 Thread Michael Spencer via cfe-commits
@@ -158,41 +160,40 @@ class RemoveUniqueLockFileOnSignal { } // end anonymous namespace LockFileManager::LockFileManager(StringRef FileName) -{ - this->FileName = FileName; - if (std::error_code EC = sys::fs::make_absolute(this->FileName)) { -std::string S("failed to obt

[clang] [llvm] [Support] Return `LockFileManager` errors right away (PR #130627)

2025-03-11 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/130627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Support] Return `LockFileManager` errors right away (PR #130627)

2025-03-11 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm with the one comment. Nice improvement to the API. https://github.com/llvm/llvm-project/pull/130627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mai

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-11 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,39 @@ +//===--===// +// +// 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: Apac

[clang] [llvm] [Support] Remove output file checks from `LockFileManager` (PR #130395)

2025-03-09 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. lgtm. This makes a lot more sense. https://github.com/llvm/llvm-project/pull/130395 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-08 Thread Michael Spencer via cfe-commits
@@ -95,6 +96,10 @@ class DependencyScanningService { return SharedCache; } + ModuleCacheMutexes &getSharedModuleCacheMutexes() { Bigcheese wrote: I don't think we need shared_ptr here, the lifetime of workers is already bound to the service. https://

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-08 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,31 @@ +#ifndef LLVM_CLANG_SERIALIZATION_MODULECACHELOCK_H +#define LLVM_CLANG_SERIALIZATION_MODULECACHELOCK_H + +#include "clang/Basic/LLVM.h" +#include "llvm/Support/LockFileManager.h" + +namespace clang { +enum class LockResult { Owned, Shared, Error }; +enum class Wa

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-06 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,66 @@ +//===--===// +// +// 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: Apac

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-06 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,66 @@ +//===--===// +// +// 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: Apac

[clang] [clang][modules][deps] Add mutex as an alternative to file lock (PR #129751)

2025-03-06 Thread Michael Spencer via cfe-commits
@@ -0,0 +1,39 @@ +//===--===// +// +// 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: Apac

[clang] [clang][deps] Remove dependency on llvm targets from lib DependencyScanning (PR #129774)

2025-03-04 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. https://github.com/llvm/llvm-project/pull/129774 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang dependency scanning] Make Current Working Directory Optimization Off by Default (PR #129809)

2025-03-04 Thread Michael Spencer via cfe-commits
@@ -67,7 +67,7 @@ enum class ScanningOptimizations { IgnoreCWD = (1 << 4), DSS_LAST_BITMASK_ENUM(IgnoreCWD), - Default = All + Default = All & (~IgnoreCWD) Bigcheese wrote: I think there should be a comment here with basically what you said in the comm

[clang] [clang dependency scanning] Make Current Working Directory Optimization Off by Default (PR #129809)

2025-03-04 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/129809 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang dependency scanning] Make Current Working Directory Optimization Off by Default (PR #129809)

2025-03-04 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. Looks good with the added comment. I was going to say this should also update the documentation, but we don't actually have any here. This patch doesn't need to add it, but it would be good to have some documentation on how to actually u

[clang] Add `pragma clang scope [push|pop]` (PR #121025)

2025-02-28 Thread Michael Spencer via cfe-commits
@@ -254,7 +285,7 @@ void Preprocessor::updateModuleMacroInfo(const IdentifierInfo *II, } void Preprocessor::dumpMacroInfo(const IdentifierInfo *II) { - ArrayRef Leaf; + ArrayRef Leaf; Bigcheese wrote: This patch has a bunch of unrelated formatting changes,

[clang] Add `pragma clang scope [push|pop]` (PR #121025)

2025-02-28 Thread Michael Spencer via cfe-commits
Bigcheese wrote: Given that some `#pragma`s also impact Sema things, I think `scope` is a bit confusing for what it applies to. I think something like `macro_scope` would be a better name. As for the extension itself, I think it could be useful, but I'm not sure how our language extension pol

[clang] [Feat] Allow Finding across only parts of an AST. (PR #127423)

2025-02-27 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. I think this is good from the modules end and I get how the predicate can be useful. My only concern is that this feels a bit like another matcher that's not using the matcher API, so I'd like someone more familiar with it to also approv

[clang] [clang] Add #pragma clang __debug module_lookup (PR #129158)

2025-02-27 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese created https://github.com/llvm/llvm-project/pull/129158 This can be used to trigger implicit module map lookup without also importing the module. This can be useful for debugging as it avoids loading the module map from the AST file, which has slightly different s

[clang] [Feat] Allow Finding across only parts of an AST. (PR #127423)

2025-02-27 Thread Michael Spencer via cfe-commits
Bigcheese wrote: Is there a particular reason to have this be a generic predicate rather than just a bool of if other modules should be visited? I can see how you could do other things with it like skipping a namespace or something, but I'm not sure if the other use cases would actually see us

[clang] [clang][deps] Propagate the entire service (PR #128959)

2025-02-26 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. https://github.com/llvm/llvm-project/pull/128959 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Exclude RedirectingFileSystem with null OverlayFileDir in VFSUsage (PR #128267)

2025-02-24 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. Hmm, I think this is fine, although it would be nice if there was a tighter connection between the `-ivfsoverlay` options and this. I don't think that needs to happen here though. https://github.com/llvm/llvm-project/pull/128267

[clang] Exclude RedirectingFileSystem with null OverlayFileDir in VFSUsage (PR #128267)

2025-02-24 Thread Michael Spencer via cfe-commits
@@ -149,11 +149,16 @@ std::vector HeaderSearch::collectVFSUsageAndClear() const { llvm::vfs::FileSystem &RootFS = FileMgr.getVirtualFileSystem(); // TODO: This only works if the `RedirectingFileSystem`s were all created by - // `createVFSFromOverlayFiles`. + //

[clang] Exclude RedirectingFileSystem with null OverlayFileDir in VFSUsage (PR #128267)

2025-02-24 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/128267 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Improve module out of date error message (PR #128103)

2025-02-24 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese closed https://github.com/llvm/llvm-project/pull/128103 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Improve module out of date error message (PR #128103)

2025-02-21 Thread Michael Spencer via cfe-commits
Bigcheese wrote: Fixed the missing test change. https://github.com/llvm/llvm-project/pull/128103 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Improve module out of date error message (PR #128103)

2025-02-21 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/128103 >From d33995d72fd71c25da0505ca13610f0fd1f3398e Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Thu, 20 Feb 2025 17:23:24 -0800 Subject: [PATCH] [clang] Improve module out of date error message When a pcm

[clang] [clang][modules] Fix local submodule visibility of macros from transitive import (PR #122955)

2025-02-20 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. https://github.com/llvm/llvm-project/pull/122955 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Separate parsing of modulemaps (PR #119740)

2025-02-20 Thread Michael Spencer via cfe-commits
@@ -3157,25 +2140,18 @@ bool ModuleMap::parseModuleMapFile(FileEntryRef File, bool IsSystem, assert((!Offset || *Offset <= Buffer->getBufferSize()) && "invalid buffer offset"); - // Parse this module map file. - Lexer L(SourceMgr.getLocForStartOfFile(ID), MMapLan

[clang] [clang] C++20 Modules: document how to perform automated reductions (PR #124997)

2025-02-20 Thread Michael Spencer via cfe-commits
@@ -2072,3 +2072,25 @@ Interoperability with Clang Modules We **wish** to support Clang modules and standard C++ modules at the same time, but the mixing them together is not well used/tested yet. Please file new GitHub issues as you find interoperability problems. + +Finding r

[clang] [clang] C++20 Modules: document how to perform automated reductions (PR #124997)

2025-02-20 Thread Michael Spencer via cfe-commits
@@ -2072,3 +2072,25 @@ Interoperability with Clang Modules We **wish** to support Clang modules and standard C++ modules at the same time, but the mixing them together is not well used/tested yet. Please file new GitHub issues as you find interoperability problems. + +Finding r

[clang] [clang] C++20 Modules: document how to perform automated reductions (PR #124997)

2025-02-20 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese approved this pull request. While I agree it would be good to full documentation on how to reduce test cases, I think this subset is very useful for modules issues. I think this is fine with or without the changes I suggested. https://github.com/llvm/llvm-project/p

[clang] [clang] C++20 Modules: document how to perform automated reductions (PR #124997)

2025-02-20 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese edited https://github.com/llvm/llvm-project/pull/124997 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][modules] Separate parsing of modulemaps (PR #119740)

2025-02-05 Thread Michael Spencer via cfe-commits
https://github.com/Bigcheese updated https://github.com/llvm/llvm-project/pull/119740 >From 51e010b52debe020edaf707a8aa089fe3fad16cb Mon Sep 17 00:00:00 2001 From: Michael Spencer Date: Thu, 5 Dec 2024 14:53:50 -0800 Subject: [PATCH] [clang][modules] Separate parsing of modulemaps This separat

  1   2   3   4   >