<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/Basic/Module.cpp, branch users/jofrn/atomicvec-stack3</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[Basic] Remove unused includes (NFC) (#142295)</title>
<updated>2025-06-01T02:00:31+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-01T02:00:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cd9fe8a34cfbda448adf256ed0ce7d4dd14410fc'/>
<id>cd9fe8a34cfbda448adf256ed0ce7d4dd14410fc</id>
<content type='text'>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Use llvm::SmallVector::pop_back_val (NFC) (#136451)</title>
<updated>2025-04-19T20:35:18+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-04-19T20:35:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=94733492b720c2e65a8fe9bd2179a35a7b7d9916'/>
<id>94733492b720c2e65a8fe9bd2179a35a7b7d9916</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][modules] Fix local submodule visibility of macros from transitive import (#122955)</title>
<updated>2025-02-21T18:04:42+00:00</updated>
<author>
<name>Ben Langmuir</name>
<email>blangmuir@apple.com</email>
</author>
<published>2025-02-21T18:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4bb04d417669be7a3d0359dfd313f0bf4f7ca531'/>
<id>4bb04d417669be7a3d0359dfd313f0bf4f7ca531</id>
<content type='text'>
When we mark a module visible, we normally mark all of its non-explicit
submodules and other exports as visible. However, when we first enter a
submodule we should not make them visible to the submodule itself until
they are actually imported. Marking exports visible before import would
cause bizarre behaviour with local submodule visibility, because it
happened before we discovered the submodule's transitive imports and
could fail to make them visible in the parent module depending on
whether the submodules involved were explicitly defined (module X) or
implicitly defined from an umbrella (module *).

rdar://136524433</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When we mark a module visible, we normally mark all of its non-explicit
submodules and other exports as visible. However, when we first enter a
submodule we should not make them visible to the submodule itself until
they are actually imported. Marking exports visible before import would
cause bizarre behaviour with local submodule visibility, because it
happened before we discovered the submodule's transitive imports and
could fail to make them visible in the parent module depending on
whether the submodules involved were explicitly defined (module X) or
implicitly defined from an umbrella (module *).

rdar://136524433</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][modules] Optimize construction and usage of the submodule index (#113391)</title>
<updated>2024-10-28T18:47:59+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2024-10-28T18:47:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6c6351ee350589c8e6bcd69c3255374a714d87d0'/>
<id>6c6351ee350589c8e6bcd69c3255374a714d87d0</id>
<content type='text'>
This patch avoids eagerly populating the submodule index on `Module`
construction. The `StringMap` allocation shows up in my profiles of
`clang-scan-deps`, while the index is not necessary most of the time. We
still construct it on-demand.

Moreover, this patch avoids performing qualified submodule lookup in
`ASTReader` whenever we're serializing a module graph whose top-level
module is unknown. This is pointless, since that's guaranteed to never
find any existing submodules anyway.

This speeds up `clang-scan-deps` by ~0.5% on my workload.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch avoids eagerly populating the submodule index on `Module`
construction. The `StringMap` allocation shows up in my profiles of
`clang-scan-deps`, while the index is not necessary most of the time. We
still construct it on-demand.

Moreover, this patch avoids performing qualified submodule lookup in
`ASTReader` whenever we're serializing a module graph whose top-level
module is unknown. This is pointless, since that's guaranteed to never
find any existing submodules anyway.

This speeds up `clang-scan-deps` by ~0.5% on my workload.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][modules] Shrink the size of `Module::Headers` (#113395)</title>
<updated>2024-10-25T18:33:44+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2024-10-25T18:33:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=61946687bc68ccba763571cb420049b9a3749dfe'/>
<id>61946687bc68ccba763571cb420049b9a3749dfe</id>
<content type='text'>
This patch shrinks the size of the `Module` class from 2112B to 1624B. I
wasn't able to get a good data on the actual impact on memory usage, but
given my `clang-scan-deps` workload at hand (with tens of thousands of
instances), I think there should be some win here. This also speeds up
my benchmark by under 0.1%.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch shrinks the size of the `Module` class from 2112B to 1624B. I
wasn't able to get a good data on the actual impact on memory usage, but
given my `clang-scan-deps` workload at hand (with tens of thousands of
instances), I think there should be some win here. This also speeds up
my benchmark by under 0.1%.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Allocate `Module` instances in `BumpPtrAllocator` (#112795)</title>
<updated>2024-10-22T15:57:33+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2024-10-22T15:57:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8bbd0797d4b8aa1d993f587eb2dfd9a89df1f406'/>
<id>8bbd0797d4b8aa1d993f587eb2dfd9a89df1f406</id>
<content type='text'>
In `clang-scan-deps`, we're creating lots of `Module` instances.
Allocating them all in a bump-pointer allocator reduces the number of
retired instructions by 1-1.5% on my workload.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In `clang-scan-deps`, we're creating lots of `Module` instances.
Allocating them all in a bump-pointer allocator reduces the number of
retired instructions by 1-1.5% on my workload.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Don't call raw_string_ostream::flush() (NFC)</title>
<updated>2024-09-19T22:18:10+00:00</updated>
<author>
<name>Youngsuk Kim</name>
<email>youngsuk.kim@hpe.com</email>
</author>
<published>2024-09-19T22:00:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7db641af13670aa1f1ecd3106eda3ce447afd752'/>
<id>7db641af13670aa1f1ecd3106eda3ce447afd752</id>
<content type='text'>
Don't call raw_string_ostream::flush(), which is essentially a no-op.
As specified in the docs, raw_string_ostream is always unbuffered
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't call raw_string_ostream::flush(), which is essentially a no-op.
As specified in the docs, raw_string_ostream is always unbuffered
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][Modules] Move `ASTSourceDescriptor` into its own file (#67930)</title>
<updated>2024-06-03T09:09:13+00:00</updated>
<author>
<name>David Stone</name>
<email>davidfromonline@gmail.com</email>
</author>
<published>2024-06-03T09:09:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8918d35dbde126c95350b674a2bb102692d90260'/>
<id>8918d35dbde126c95350b674a2bb102692d90260</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][Modules] Make `Module::Requirement` a struct (NFC) (#67900)</title>
<updated>2024-05-05T07:45:04+00:00</updated>
<author>
<name>David Stone</name>
<email>davidfromonline@gmail.com</email>
</author>
<published>2024-05-05T07:45:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7d913c5ea9fd0dd455fe60364a8075aa0924d6b7'/>
<id>7d913c5ea9fd0dd455fe60364a8075aa0924d6b7</id>
<content type='text'>
`Module::Requirement` was defined as a `std::pair&lt;std::string, bool&gt;`.
This required a comment to explain what the data members mean and makes
the usage harder to understand. Replace this with a struct with two
members, `FeatureName` and `RequiredState`.

---------

Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Module::Requirement` was defined as a `std::pair&lt;std::string, bool&gt;`.
This required a comment to explain what the data members mean and makes
the usage harder to understand. Replace this with a struct with two
members, `FeatureName` and `RequiredState`.

---------

Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[modules] allow use of ptrauth module from no_undeclared_includes system modules (#88432)</title>
<updated>2024-04-13T05:36:43+00:00</updated>
<author>
<name>Ian Anderson</name>
<email>iana@apple.com</email>
</author>
<published>2024-04-13T05:36:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4138367444a2e3431cdfc7ab6e16c9cab5c76ad8'/>
<id>4138367444a2e3431cdfc7ab6e16c9cab5c76ad8</id>
<content type='text'>
Co-authored-by: Alex Lorenz &lt;arphaman@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Alex Lorenz &lt;arphaman@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
