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
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
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
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
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
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
@@ -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
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/
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
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
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
@@ -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
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
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
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
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
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
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
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/
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
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
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
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
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 {
@@ -174,3 +174,30 @@ TEST(DependencyScanningFilesystem, CacheStatOnExists) {
EXPECT_EQ(InstrumentingFS->NumStatusCalls, 2u);
EXPECT_EQ(InstrumentingFS->NumExistsCalls, 0u);
}
+
+TEST(DependencyScanningFilesystem, CacheStatFailures) {
+ auto InMemoryFS = llvm::makeIntrusive
@@ -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
@@ -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
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
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
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
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/
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
@@ -1293,6 +1293,10 @@ compileModuleImpl(CompilerInstance &ImportingInstance,
SourceLocation ImportLoc,
diag::remark_module_build_done)
<< ModuleName;
+ // Propagate the statistics to the parent FileManager.
+ if (FrontendOpts
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
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
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
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
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
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
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()`
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
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
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
@@ -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);
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
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
@@ -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
@@ -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
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
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
@@ -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
@@ -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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
@@ -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
@@ -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
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
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
@@ -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
@@ -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
@@ -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
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
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.
@@ -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));
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
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
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
@@ -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
101 - 200 of 200 matches
Mail list logo