[clang] [clang] Ensure `--print-runtime-dir` path exists (PR #102834)

2024-08-11 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/102834 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Ensure `--print-runtime-dir` path exists (PR #102834)

2024-08-11 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/102834 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Ensure `--print-runtime-dir` path exists (PR #102834)

2024-08-12 Thread Alexandre Ganea via cfe-commits
aganea wrote: To give the whole picture, the story is that while building the LLVM package on Windows, I was seeing this: ``` [51/52] Running sanitizer_common testsllvm-lit.py: C:\src\git\llvm-project\llvm\utils\lit\lit\llvm\config.py:57: note: using lit tools: C:\Program Files\Git\usr\bin\ ll

[clang] [clang] Stop adjusting the module cache path (PR #102540)

2024-08-13 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea approved this pull request. Thanks for the explanation! https://github.com/llvm/llvm-project/pull/102540 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-09 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/88152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-09 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea commented: Thanks for the change! Quite interestingly I was just looking precisely at this issue today :smile: Things are worst on Windows, where mini-filter drivers kick-in and bring performance to its knees. I'll try your patch, see how that improves my usage! http

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-09 Thread Alexandre Ganea via cfe-commits
@@ -270,6 +270,12 @@ DependencyScanningWorkerFilesystem::status(const Twine &Path) { return Result->getStatus(); } +bool +DependencyScanningWorkerFilesystem::exists(const Twine &Path) { + auto Status = status(Path); aganea wrote: The return type is unclea

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-09 Thread Alexandre Ganea via cfe-commits
aganea wrote: This patch doesn`t improve my usage, it seems I'm hitting a different codepath than you do. I'll investigate. https://github.com/llvm/llvm-project/pull/88152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-10 Thread Alexandre Ganea via cfe-commits
aganea wrote: > This patch doesn`t improve my usage, it seems I'm hitting a different > codepath than you do. I'll investigate. Ah I see, the commit https://github.com/llvm/llvm-project/commit/b768a8c1db85b9e84fd8b356570a3a8fbe37acf6 didn't make it in time for the 18.x branch. The issue I'm s

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-10 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/88152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-10 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea approved this pull request. Otherwise this PR LGTM. https://github.com/llvm/llvm-project/pull/88152 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-10 Thread Alexandre Ganea via cfe-commits
@@ -201,6 +201,21 @@ class ErrorDummyFileSystem : public DummyFileSystem { } }; +/// A version of \c DummyFileSystem that aborts on \c status() to test that +/// \c exists() is being used. +class NoStatusDummyFileSystem : public DummyFileSystem { +public: + ErrorOr status(c

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-11 Thread Alexandre Ganea via cfe-commits
aganea wrote: > > Not sure @jansvoboda11 perhaps if we want to cherry pick > > [b768a8c](https://github.com/llvm/llvm-project/commit/b768a8c1db85b9e84fd8b356570a3a8fbe37acf6) > > on `release/18.x`? Or should we land just a simple PR with just the > > function change above? > > I can try pulli

[clang] [llvm] [clang][deps] Overload `Filesystem::exists` in `DependencyScanningFilesystem` to have it use cached `status` (PR #88152)

2024-04-11 Thread Alexandre Ganea via cfe-commits
aganea wrote: > In the meantime, are you able to work around this for your non-modular > use-case by applying your change when building your own compiler downstream? Yes I fixed it in our downstream. I am more worried about other users, since the initial version that @hyp committed a while ago

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-11 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea created https://github.com/llvm/llvm-project/pull/88427 `FileManager::getDirectoryRef` and `FileManager::getFileRef` are hot code paths in `clang-scan-deps`. In these functions, we update a couple of atomic variables related to printing statistics, which causes conten

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-11 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/88427 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-11 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/88427 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-13 Thread Alexandre Ganea via cfe-commits
aganea wrote: I think in the short term @jansvoboda11's suggestion should be good enough. Bit if we want `Statistics` to be always cheap, we should make them `thread_local` instead, not atomic. `getValue()` could do the "collection" of data over all active, or past threads. It would also need

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-12 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea created https://github.com/llvm/llvm-project/pull/95259 This is used to set DebugInfoKind to "UnusedTypeInfo". This helps in the context Unreal Engine and NATVIS files that reference unused otherwise `static constexpr` class members. See https://udn.unrealengine.com/

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-12 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/95259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-15 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/95259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-15 Thread Alexandre Ganea via cfe-commits
aganea wrote: Thanks @amykhuang for taking a look! I won't close https://github.com/llvm/llvm-project/issues/46924 right away, since we also need https://reviews.llvm.org/D89286. Do you mind if I took ownership of that patch and send a PR crediting you? https://github.com/llvm/llvm-project/pu

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-15 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea closed https://github.com/llvm/llvm-project/pull/95259 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-19 Thread Alexandre Ganea via cfe-commits
aganea wrote: > Yes, feel free to take over that part, thanks! @amykhuang : I took a look at https://reviews.llvm.org/D89286. It works but doesn't fix the most problematic case where the `constexpr` member needs an evaluation that relies on dependent values: ``` template struct C {

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-04-16 Thread Alexandre Ganea via cfe-commits
@@ -174,3 +174,30 @@ TEST(DependencyScanningFilesystem, CacheStatOnExists) { EXPECT_EQ(InstrumentingFS->NumStatusCalls, 2u); EXPECT_EQ(InstrumentingFS->NumExistsCalls, 0u); } + +TEST(DependencyScanningFilesystem, CacheStatFailures) { + auto InMemoryFS = llvm::makeIntrusive

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-04-16 Thread Alexandre Ganea via cfe-commits
@@ -362,7 +357,7 @@ DependencyScanningWorkerFilesystem::openFileForRead(const Twine &Path) { SmallString<256> OwnedFilename; StringRef Filename = Path.toStringRef(OwnedFilename); - if (Filename.ends_with(".pcm")) + if (shouldBypass(Filename)) aganea wro

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-04-16 Thread Alexandre Ganea via cfe-commits
@@ -201,11 +201,8 @@ const CachedRealPath &DependencyScanningFilesystemSharedCache::CacheShard:: return *StoredRealPath; } -static bool shouldCacheStatFailures(StringRef Filename) { - StringRef Ext = llvm::sys::path::extension(Filename); - if (Ext.empty()) -return fal

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-04-16 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/88800 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-17 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/88427 >From 1b11d526e2cde1df64c7c4e05b2698b6d40926c3 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Thu, 11 Apr 2024 13:02:30 -0400 Subject: [PATCH 1/2] [clang-scan-deps] Fix atomic contention when updating `Trac

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-17 Thread Alexandre Ganea via cfe-commits
aganea wrote: > As an alternative approach: could we turn these into member variables, make > them non-atomic and take care to update the stats of the superior > `FileManager` whenever an inferior `FileManager` goes out of scope? (e.g. > after implicitly building a module) As suggested. http

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-07-29 Thread Alexandre Ganea via cfe-commits
aganea wrote: Ping @jansvoboda11! Just checking if you had time to finish this PR, to then possibly integrate it into 19.x. https://github.com/llvm/llvm-project/pull/88800 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/88427 >From 1b11d526e2cde1df64c7c4e05b2698b6d40926c3 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Thu, 11 Apr 2024 13:02:30 -0400 Subject: [PATCH 1/3] [clang-scan-deps] Fix atomic contention when updating `Trac

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-24 Thread Alexandre Ganea via cfe-commits
@@ -1293,6 +1293,10 @@ compileModuleImpl(CompilerInstance &ImportingInstance, SourceLocation ImportLoc, diag::remark_module_build_done) << ModuleName; + // Propagate the statistics to the parent FileManager. + if (FrontendOpts

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-24 Thread Alexandre Ganea via cfe-commits
aganea wrote: > LGTM, thanks! Thanks for the review! > (Out of interest, what machine are you seeing the contention with?) It's a ThreadRipper Pro 3975WX 32c/64t running on with Windows 11. https://github.com/llvm/llvm-project/pull/88427 ___ cfe-com

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea created https://github.com/llvm/llvm-project/pull/89950 Previously, since response (.rsp) files weren't expanded at the very beginning of clang-scan-deps, we only parsed the command-line as provided in the Clang .cdb file. Unfortunately, when using Unreal Engine, argu

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
aganea wrote: This is missing a test, I will add one. https://github.com/llvm/llvm-project/pull/89950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
aganea wrote: The reason of this `/Fo` output path fiddling code is this: https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/Clang.cpp#L1072-L1082 It's because that highlighted code doesn't handle the clang-cl case, it doesn't consider `/Fo`. Probably because most people

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/89950 >From f2340c98c95e0d72516fc240ff268fead9f15391 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Wed, 17 Apr 2024 16:28:21 -0400 Subject: [PATCH 1/2] [clang-scan-deps] Expand response files before the argument

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/89950 >From f2340c98c95e0d72516fc240ff268fead9f15391 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Wed, 17 Apr 2024 16:28:21 -0400 Subject: [PATCH 1/3] [clang-scan-deps] Expand response files before the argument

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-24 Thread Alexandre Ganea via cfe-commits
aganea wrote: @jansvoboda11 PTAL. I've added handling of `/Fo` in the driver, and that solves my case without the .rsp expansion in `ClangScanDeps.cpp`. However if we pass `/E` to command-lines in the CDB, that change alone doesn't work anymore. This is because `Driver::GetNamedOutputPath()`

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-25 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea closed https://github.com/llvm/llvm-project/pull/88427 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Fix contention when updating `TrackingStatistic`s in hot code paths in `FileManager`. (PR #88427)

2024-04-26 Thread Alexandre Ganea via cfe-commits
aganea wrote: Thanks for pointing that out @MaskRay ! https://github.com/llvm/llvm-project/pull/88427 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/89950 >From f2340c98c95e0d72516fc240ff268fead9f15391 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Wed, 17 Apr 2024 16:28:21 -0400 Subject: [PATCH 1/5] [clang-scan-deps] Expand response files before the argument

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
@@ -1069,7 +1069,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA, // If user provided -o, that is the dependency target, except // when we are only generating a dependency file. - Arg *OutputOpt = Args.getLastArg(options::OPT_o);

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
@@ -0,0 +1,36 @@ +// Check that the scanner can adjust arguments by reading .rsp files in advance. + +// RUN: rm -rf %t +// RUN: split-file %s %t +// RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json aganea wrote: As suggested. We're taking a differen

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
@@ -0,0 +1,36 @@ +// Check that the scanner can adjust arguments by reading .rsp files in advance. + +// RUN: rm -rf %t +// RUN: split-file %s %t +// RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json +// RUN: echo /Fo%t/tu.obj >> %t/args_nested.rsp aga

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
@@ -792,10 +792,15 @@ int clang_scan_deps_main(int argc, char **argv, const llvm::ToolContext &) { llvm::cl::PrintOptionValues(); + // Expand response files in advance, so that we can "see" all the arguments + // when adjusting below. + auto ResponseExpander = expandRes

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-04-29 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/89950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -92,8 +92,15 @@ class MCTargetOptions { std::string AsSecureLogFile; const char *Argv0 = nullptr; aganea wrote: Would you mind please moving (and adapting) the comment that you've added here above? Both Argv0 and CommandLineArgs are only used for stor

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -92,8 +92,15 @@ class MCTargetOptions { std::string AsSecureLogFile; const char *Argv0 = nullptr; + + // Deprecated: Use FlatCommandlineArgs instead + // Arguments here are interpreted as coming from clang, formated and end up in LF_BUILDINFO as CommandLineArgs A

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea requested changes to this pull request. https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -950,9 +952,16 @@ void CodeViewDebug::emitBuildInfo() { if (Asm->TM.Options.MCOptions.Argv0 != nullptr) { BuildInfoArgs[BuildInfoRecord::BuildTool] = getStringIdTypeIdx(TypeTable, Asm->TM.Options.MCOptions.Argv0); -BuildInfoArgs[BuildInfoRecord::CommandLine

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -893,6 +893,8 @@ static TypeIndex getStringIdTypeIdx(GlobalTypeTableBuilder &TypeTable, return TypeTable.writeLeafType(SIR); } +// This just exists for backwards compatability for the deprecated MCTargetOptions::CommandLineArgs +// It assumed a clang compiler frontend

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea commented: Sounds good, but please correct the failing BuildKit tests (below) before we can go further. https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.ll

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -91,8 +91,11 @@ class MCTargetOptions { std::string SplitDwarfFile; std::string AsSecureLogFile; - const char *Argv0 = nullptr; - ArrayRef CommandLineArgs; + // This will be set as compiler path in LF_BUILDINFO aganea wrote: You would need to refer

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
@@ -321,6 +322,41 @@ static bool actionRequiresCodeGen(BackendAction Action) { Action != Backend_EmitLL; } +static std::string flattenClangCommandLine(ArrayRef Args, + StringRef MainFilename) { + std::string FlatCmdLine; + raw_st

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-28 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/106369 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [CodeView] Flatten cmd args in frontend for LF_BUILDINFO (PR #106369)

2024-08-30 Thread Alexandre Ganea via cfe-commits
aganea wrote: > Maded the suggested changes. Continuing looking into the failing tests. This > is my first llvm pr and I need some time to figure out the issues those are > indicating and replicating those locally. I recommend that you build a Debug target, ie. `cmake -DCMAKE_BUILD_TYPE=Debug

[clang] [clang] Distinguish unresolved templates in UnresolvedLookupExpr (PR #89019)

2024-05-05 Thread Alexandre Ganea via cfe-commits
aganea wrote: Hello, This causes a warning when building LLDB on Windows, `clang::BuiltinType::UnresolvedTemplate` isn't handled in the case in the file indicated below (sorry my locale is French). Would you have a chance to take a look @zyn0217 please? ``` [6325/7521] Building CXX object too

[clang] [clang][deps] Only bypass scanning VFS for the module cache (PR #88800)

2024-05-06 Thread Alexandre Ganea via cfe-commits
aganea wrote: Ping @jansvoboda11! Are you able to get back to this soon? LG generally, just missing a test case above. Thanks! https://github.com/llvm/llvm-project/pull/88800 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.o

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-05-22 Thread Alexandre Ganea via cfe-commits
aganea wrote: @jansvoboda11 Do you see any further changes for this PR? Can I land it? https://github.com/llvm/llvm-project/pull/89950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-05-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea updated https://github.com/llvm/llvm-project/pull/89950 >From 13c411018e491fc2be4f4118a56f9b8cf2e5b76f Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Wed, 17 Apr 2024 16:28:21 -0400 Subject: [PATCH 1/5] [clang-scan-deps] Expand response files before the argument

[clang] [clang-scan-deps] Expand response files before the argument adjuster (PR #89950)

2024-05-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea closed https://github.com/llvm/llvm-project/pull/89950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] aba5b91 - Re-land [CodeView] Add full repro to LF_BUILDINFO record

2022-01-19 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2022-01-19T19:44:37-05:00 New Revision: aba5b91b699c556da0ee04418321b581bd33611e URL: https://github.com/llvm/llvm-project/commit/aba5b91b699c556da0ee04418321b581bd33611e DIFF: https://github.com/llvm/llvm-project/commit/aba5b91b699c556da0ee04418321b581bd33611e.dif

[clang] 5af2433 - [clang-cl] Support the /HOTPATCH flag

2022-01-20 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2022-01-20T12:57:19-05:00 New Revision: 5af2433e1794ebf7e58e848aa612c7912d71dc78 URL: https://github.com/llvm/llvm-project/commit/5af2433e1794ebf7e58e848aa612c7912d71dc78 DIFF: https://github.com/llvm/llvm-project/commit/5af2433e1794ebf7e58e848aa612c7912d71dc78.dif

[clang] 5fa4cf8 - [Clang] Separate the 'debug-info-hotpatch' test in two parts: one for ARM and another for AArch64

2022-01-20 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2022-01-20T14:11:10-05:00 New Revision: 5fa4cf82dfa075e7983ce92d0042480b7b8f4fbc URL: https://github.com/llvm/llvm-project/commit/5fa4cf82dfa075e7983ce92d0042480b7b8f4fbc DIFF: https://github.com/llvm/llvm-project/commit/5fa4cf82dfa075e7983ce92d0042480b7b8f4fbc.dif

[clang] e32936a - [MSVC] Silence -Wnon-virtual-dtor on DIA APIs

2022-01-03 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2022-01-03T13:29:08-05:00 New Revision: e32936aef4a2e7da471e84b72d3be3499adf0a21 URL: https://github.com/llvm/llvm-project/commit/e32936aef4a2e7da471e84b72d3be3499adf0a21 DIFF: https://github.com/llvm/llvm-project/commit/e32936aef4a2e7da471e84b72d3be3499adf0a21.dif

[clang] a5af260 - Silence warning with MSVC compiler.

2022-01-06 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2022-01-06T16:51:37-05:00 New Revision: a5af260d3e8b00a3353e813b73f83391edbef493 URL: https://github.com/llvm/llvm-project/commit/a5af260d3e8b00a3353e813b73f83391edbef493 DIFF: https://github.com/llvm/llvm-project/commit/a5af260d3e8b00a3353e813b73f83391edbef493.dif

[clang] f44e3fb - [CodeView] Emit S_OBJNAME record

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T09:26:36-05:00 New Revision: f44e3fbadd15bc851c6e3c2a40ddf5f0a502151a URL: https://github.com/llvm/llvm-project/commit/f44e3fbadd15bc851c6e3c2a40ddf5f0a502151a DIFF: https://github.com/llvm/llvm-project/commit/f44e3fbadd15bc851c6e3c2a40ddf5f0a502151a.dif

[clang] abd1cbf - [Clang] Disable debug-info-objname.cpp test on Unix until I sort out the issue.

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T10:32:43-05:00 New Revision: abd1cbf5e543f0f114d2742e109ead7d7ddbf9c4 URL: https://github.com/llvm/llvm-project/commit/abd1cbf5e543f0f114d2742e109ead7d7ddbf9c4 DIFF: https://github.com/llvm/llvm-project/commit/abd1cbf5e543f0f114d2742e109ead7d7ddbf9c4.dif

[clang] 00ec441 - [Clang] debug-info-objname.cpp test: explictly encode a x86 target when using %clang_cl to avoid falling back to a native CPU triple.

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T11:54:19-05:00 New Revision: 00ec441253048f5e30540ea26bb0a28c42a5fc18 URL: https://github.com/llvm/llvm-project/commit/00ec441253048f5e30540ea26bb0a28c42a5fc18 DIFF: https://github.com/llvm/llvm-project/commit/00ec441253048f5e30540ea26bb0a28c42a5fc18.dif

[clang] cd407f6 - [Clang] Fix build by restricting debug-info-objname.cpp test to x86.

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T12:22:25-05:00 New Revision: cd407f6e52b09cce2bef24c74b7f36fedc94991b URL: https://github.com/llvm/llvm-project/commit/cd407f6e52b09cce2bef24c74b7f36fedc94991b DIFF: https://github.com/llvm/llvm-project/commit/cd407f6e52b09cce2bef24c74b7f36fedc94991b.dif

[clang] d26520f - [Clang] Own the CommandLineArgs in CodeGenOptions

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T17:41:35-05:00 New Revision: d26520f6f78785b0c4c296a8a992f2adb656c6ec URL: https://github.com/llvm/llvm-project/commit/d26520f6f78785b0c4c296a8a992f2adb656c6ec DIFF: https://github.com/llvm/llvm-project/commit/d26520f6f78785b0c4c296a8a992f2adb656c6ec.dif

[clang] 5bb5142 - Revert [CodeView] Emit S_OBJNAME record

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T19:02:14-05:00 New Revision: 5bb5142e80c9c6eb1a948d6d2ff4834e4e69741f URL: https://github.com/llvm/llvm-project/commit/5bb5142e80c9c6eb1a948d6d2ff4834e4e69741f DIFF: https://github.com/llvm/llvm-project/commit/5bb5142e80c9c6eb1a948d6d2ff4834e4e69741f.dif

[clang] a282ea4 - Reland - [CodeView] Emit S_OBJNAME record

2021-12-21 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-12-21T19:02:14-05:00 New Revision: a282ea4898efe2b2e57a93b44e90c9e497520cfb URL: https://github.com/llvm/llvm-project/commit/a282ea4898efe2b2e57a93b44e90c9e497520cfb DIFF: https://github.com/llvm/llvm-project/commit/a282ea4898efe2b2e57a93b44e90c9e497520cfb.dif

[clang] e030ce3 - [Tooling] Handle compilation databases containing commands with double dashes

2021-03-24 Thread Alexandre Ganea via cfe-commits
Author: Janusz Nykiel Date: 2021-03-24T16:01:47-04:00 New Revision: e030ce3ec790a0017ec789b4f487afec99e1cac9 URL: https://github.com/llvm/llvm-project/commit/e030ce3ec790a0017ec789b4f487afec99e1cac9 DIFF: https://github.com/llvm/llvm-project/commit/e030ce3ec790a0017ec789b4f487afec99e1cac9.diff

[clang] 8fbc05a - [Windows] Add test coverage for line endings when rewriting includes

2021-04-06 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-04-06T15:38:19-04:00 New Revision: 8fbc05acd5531a8bb74f689699e8de2788bcb769 URL: https://github.com/llvm/llvm-project/commit/8fbc05acd5531a8bb74f689699e8de2788bcb769 DIFF: https://github.com/llvm/llvm-project/commit/8fbc05acd5531a8bb74f689699e8de2788bcb769.dif

[clang] 488a19d - [clang-scan-deps] Support double-dashes in clang command lines

2021-04-17 Thread Alexandre Ganea via cfe-commits
Author: Sylvain Audi Date: 2021-04-17T14:22:51-04:00 New Revision: 488a19d00cbaec479f8c5c298556d2246978f9e6 URL: https://github.com/llvm/llvm-project/commit/488a19d00cbaec479f8c5c298556d2246978f9e6 DIFF: https://github.com/llvm/llvm-project/commit/488a19d00cbaec479f8c5c298556d2246978f9e6.diff

[clang] bb26fa8 - [clang-scan-deps] Add support for clang-cl

2021-04-17 Thread Alexandre Ganea via cfe-commits
Author: Sylvain Audi Date: 2021-04-17T14:22:51-04:00 New Revision: bb26fa8c286bf524ed9235c3e293ad22ecf3e984 URL: https://github.com/llvm/llvm-project/commit/bb26fa8c286bf524ed9235c3e293ad22ecf3e984 DIFF: https://github.com/llvm/llvm-project/commit/bb26fa8c286bf524ed9235c3e293ad22ecf3e984.diff

[clang] 199c397 - Revert "[clang-scan-deps] Add support for clang-cl"

2021-04-19 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-04-19T17:45:18-04:00 New Revision: 199c39748292cbc89cd148a0d8364ebb1014ec38 URL: https://github.com/llvm/llvm-project/commit/199c39748292cbc89cd148a0d8364ebb1014ec38 DIFF: https://github.com/llvm/llvm-project/commit/199c39748292cbc89cd148a0d8364ebb1014ec38.dif

[clang] d015445 - Silence warning: comparison of integers of different signs: 'const unsigned int' and 'const long' [-Wsign-compare]

2021-01-07 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-01-07T13:01:06-05:00 New Revision: d0154456e61c5ab79e25fc9b8bb684ebdca3a7c2 URL: https://github.com/llvm/llvm-project/commit/d0154456e61c5ab79e25fc9b8bb684ebdca3a7c2 DIFF: https://github.com/llvm/llvm-project/commit/d0154456e61c5ab79e25fc9b8bb684ebdca3a7c2.dif

[clang] 3854b81 - [Clang][Driver] Fix read-after-free when using /clang:

2021-01-07 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2021-01-07T15:15:13-05:00 New Revision: 3854b81b0fd23adc9bab91bf68918d102dc31f51 URL: https://github.com/llvm/llvm-project/commit/3854b81b0fd23adc9bab91bf68918d102dc31f51 DIFF: https://github.com/llvm/llvm-project/commit/3854b81b0fd23adc9bab91bf68918d102dc31f51.dif

[clang] [Clang][Driver] Expose `-fno-eliminate-unused-debug-types` to clang-cl (PR #95259)

2024-06-23 Thread Alexandre Ganea via cfe-commits
aganea wrote: > I will say, `-fno-eliminate-unused-debug-types` is a really heavy hammer that > makes debug info much larger - and my understanding was that games tended to > have trouble with large debug builds, so I'd be surprised if this was a great > path forward. Absolutely, this is only

[clang] [llvm] Delete the clang-format Visual Studio plugin code (PR #108342)

2024-09-12 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea approved this pull request. https://github.com/llvm/llvm-project/pull/108342 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-11-05 Thread Alexandre Ganea via cfe-commits
aganea wrote: > I would like to benchmark `lld` after this change, since I have added a loop > that goes through every section of every object file. Could someone point in > the direction of a good benchmark for that? I was thinking I can benchmark on > the linking of `clang` or any other big

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-10-31 Thread Alexandre Ganea via cfe-commits
@@ -0,0 +1,13 @@ +// This test checks if Window PE file compiled with -flto option contains a magic +// string "LTCG" to indicate LTO compilation. + +// REQUIRES: system-windows + +// RUN: %clang --target=x86_64-pc-windows-msvc -flto -fuse-ld=lld %s -o %t.exe +// RUN: dumpbin /H

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-10-31 Thread Alexandre Ganea via cfe-commits
@@ -0,0 +1,13 @@ +// This test checks if Window PE file compiled with -flto option contains a magic +// string "LTCG" to indicate LTO compilation. + +// REQUIRES: system-windows + +// RUN: %clang --target=x86_64-pc-windows-msvc -flto -fuse-ld=lld %s -o %t.exe +// RUN: dumpbin /H

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-10-31 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/114260 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-10-31 Thread Alexandre Ganea via cfe-commits
aganea wrote: I am just curious what is the purpose of this? Is it just for feature parity? Can you also investigate if MSVC emits other special things/sections in the binary in LTCG/PGO builds? https://github.com/llvm/llvm-project/pull/114260 ___ cf

[clang] [llvm] [clang] Add/enhance documentation for some important classes. (PR #109795)

2024-09-24 Thread Alexandre Ganea via cfe-commits
@@ -648,18 +648,54 @@ class InBeforeInTUCacheEntry { /// instances. using ModuleBuildStack = ArrayRef>; -/// This class handles loading and caching of source files into memory. +/// The SourceManager describes the compiler's view of source code. /// -/// This object owns the

[clang] [llvm] [clang] Add/enhance documentation for some important classes. (PR #109795)

2024-09-24 Thread Alexandre Ganea via cfe-commits
@@ -648,18 +648,54 @@ class InBeforeInTUCacheEntry { /// instances. using ModuleBuildStack = ArrayRef>; -/// This class handles loading and caching of source files into memory. +/// The SourceManager describes the compiler's view of source code. /// -/// This object owns the

[clang] [llvm] [clang] Add/enhance documentation for some important classes. (PR #109795)

2024-09-24 Thread Alexandre Ganea via cfe-commits
@@ -7,7 +7,10 @@ //===--===// // /// \file -/// Defines the virtual file system interface vfs::FileSystem. +/// Provides abstract filesystem APIs to decouple from OS-level file access. +/// +/// This allows re

[clang] [llvm] [clang] Add/enhance documentation for some important classes. (PR #109795)

2024-09-24 Thread Alexandre Ganea via cfe-commits
https://github.com/aganea edited https://github.com/llvm/llvm-project/pull/109795 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-11-30 Thread Alexandre Ganea via cfe-commits
aganea wrote: I had a more in-depth look at this. Overall I don't agree with the whole direction of this patch. I don't think it's wise for LLD to emit debug records/`coffgrp` that do not match what MSVC is generating. We can't just blindly emit a record with the string of the debug type (ie.

[clang] [lld] [llvm] [Windows] Add support for emitting PGO/LTO magic strings in the Windows PE debug directory (PR #114260)

2024-11-30 Thread Alexandre Ganea via cfe-commits
@@ -1206,6 +1245,19 @@ void Writer::createMiscChunks() { IMAGE_DLL_CHARACTERISTICS_EX_CET_COMPAT)); } + if (writeLTO) { +debugRecords.emplace_back(COFF::IMAGE_DEBUG_TYPE_POGO, + make(ltcg));

[clang] 12c4be1 - [clang][unittests] On Windows, silence warning when building with MSVC

2025-04-11 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2025-04-11T17:50:14-04:00 New Revision: 12c4be1ba8513b4c0f43945c0f266d7f871a978a URL: https://github.com/llvm/llvm-project/commit/12c4be1ba8513b4c0f43945c0f266d7f871a978a DIFF: https://github.com/llvm/llvm-project/commit/12c4be1ba8513b4c0f43945c0f266d7f871a978a.dif

[clang] 46135ad - [Sema] On Windows, silence erroneous warning when building with MSVC

2025-04-11 Thread Alexandre Ganea via cfe-commits
Author: Alexandre Ganea Date: 2025-04-11T17:50:15-04:00 New Revision: 46135ade9ec0b7fd975b5d3923aea95f4d416296 URL: https://github.com/llvm/llvm-project/commit/46135ade9ec0b7fd975b5d3923aea95f4d416296 DIFF: https://github.com/llvm/llvm-project/commit/46135ade9ec0b7fd975b5d3923aea95f4d416296.dif

[clang] [llvm] Add support for Windows hot-patching (PR #138972)

2025-05-08 Thread Alexandre Ganea via cfe-commits
aganea wrote: Since the [MSVC flag](https://learn.microsoft.com/en-us/cpp/build/reference/hotpatch-create-hotpatchable-image?view=msvc-170) `/HOTPATCH` has been supported in LLVM and clang-cl for quite a while now (see [this](https://reviews.llvm.org/D116511), and #77245 and #87639) the descr

[clang] [llvm] Add support for Windows hot-patching (PR #138972)

2025-05-08 Thread Alexandre Ganea via cfe-commits
@@ -176,6 +176,21 @@ class CallerSym : public SymbolRecord { uint32_t RecordOffset = 0; }; +class HotPatchFuncSym : public SymbolRecord { aganea wrote: Out of curiosity (related to my other questions), historically Windows updates only deliver binaries (DL

<    1   2   3   >