<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/ExtractAPI/ExtractAPIConsumer.cpp, branch main</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>[clang] NFCI: Clean up `CompilerInstance::create{File,Source}Manager()` (#160748)</title>
<updated>2025-10-02T18:01:27+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2025-10-02T18:01:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b86ddae1da651f921125a9864b45a5b11bc3b1c0'/>
<id>b86ddae1da651f921125a9864b45a5b11bc3b1c0</id>
<content type='text'>
The `CompilerInstance::createSourceManager()` function currently accepts
the `FileManager` to be used. However, all clients call
`CompilerInstance::createFileManager()` prior to creating the
`SourceManager`, and it never makes sense to use a `FileManager` in the
`SourceManager` that's different from the rest of the compiler. Passing
the `FileManager` explicitly is redundant, error-prone, and deviates
from the style of other `CompilerInstance` initialization APIs.

This PR therefore removes the `FileManager` parameter from
`createSourceManager()` and also stops returning the `FileManager`
pointer from `createFileManager()`, since that was its primary use. Now,
`createSourceManager()` internally calls `getFileManager()` instead.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `CompilerInstance::createSourceManager()` function currently accepts
the `FileManager` to be used. However, all clients call
`CompilerInstance::createFileManager()` prior to creating the
`SourceManager`, and it never makes sense to use a `FileManager` in the
`SourceManager` that's different from the rest of the compiler. Passing
the `FileManager` explicitly is redundant, error-prone, and deviates
from the style of other `CompilerInstance` initialization APIs.

This PR therefore removes the `FileManager` parameter from
`createSourceManager()` and also stops returning the `FileManager`
pointer from `createFileManager()`, since that was its primary use. Now,
`createSourceManager()` internally calls `getFileManager()` instead.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Remove unused includes (NFC) (#144285)</title>
<updated>2025-06-16T04:00:36+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-06-16T04:00:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c01532177ff61a768d5dc1ea541f9a8d986497fa'/>
<id>c01532177ff61a768d5dc1ea541f9a8d986497fa</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>[NFC] Optimize file kind determination (#139492)</title>
<updated>2025-05-12T08:22:44+00:00</updated>
<author>
<name>Serge Pavlov</name>
<email>sepavloff@gmail.com</email>
</author>
<published>2025-05-12T08:22:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5a1edf0f515ef7b1448ea0f9584a995ad6591865'/>
<id>5a1edf0f515ef7b1448ea0f9584a995ad6591865</id>
<content type='text'>
There are checks in clang codebase that determine the type of source
file, associated with a given location - specifically, if it is an
ordonary file or comes from sources like command-line options or a
built-in definitions. These checks often rely on calls to
`getPresumedLoc`, which is relatively expensive. In certain cases, these
checks are combined, leading to repeated calculations of the costly
function negatively affecting compile time.

This change tries to optimize such checks. It must fix compile time
regression introduced in
https://github.com/llvm/llvm-project/pull/137306/.

---------

Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are checks in clang codebase that determine the type of source
file, associated with a given location - specifically, if it is an
ordonary file or comes from sources like command-line options or a
built-in definitions. These checks often rely on calls to
`getPresumedLoc`, which is relatively expensive. In certain cases, these
checks are combined, leading to repeated calculations of the costly
function negatively affecting compile time.

This change tries to optimize such checks. It must fix compile time
regression introduced in
https://github.com/llvm/llvm-project/pull/137306/.

---------

Co-authored-by: cor3ntin &lt;corentinjabot@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Make deprecations of some `FileManager` APIs formal (#110014)</title>
<updated>2024-09-25T17:36:44+00:00</updated>
<author>
<name>Jan Svoboda</name>
<email>jan_svoboda@apple.com</email>
</author>
<published>2024-09-25T17:36:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b1aea98cfa357e23f4bb52232da5f41781f23bff'/>
<id>b1aea98cfa357e23f4bb52232da5f41781f23bff</id>
<content type='text'>
Some `FileManager` APIs still return `{File,Directory}Entry` instead of
the preferred `{File,Directory}EntryRef`. These are documented to be
deprecated, but don't have the attribute that warns on their usage. This
PR marks them as such with `LLVM_DEPRECATED()` and replaces their usage
with the recommended counterparts. NFCI.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some `FileManager` APIs still return `{File,Directory}Entry` instead of
the preferred `{File,Directory}EntryRef`. These are documented to be
deprecated, but don't have the attribute that warns on their usage. This
PR marks them as such with `LLVM_DEPRECATED()` and replaces their usage
with the recommended counterparts. NFCI.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][ExtractAPI] Remove erroneous module name check in MacroCallbacks (#107059)</title>
<updated>2024-09-03T15:21:35+00:00</updated>
<author>
<name>Daniel Grumberg</name>
<email>dgrumberg@apple.com</email>
</author>
<published>2024-09-03T15:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86835d2d5a24ed00ed3747b77029c896ba935036'/>
<id>86835d2d5a24ed00ed3747b77029c896ba935036</id>
<content type='text'>
rdar://135044923</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
rdar://135044923</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][ExtractAPI] Fix quirks in interaction with submodules (#105868)</title>
<updated>2024-08-27T12:50:41+00:00</updated>
<author>
<name>Daniel Grumberg</name>
<email>dgrumberg@apple.com</email>
</author>
<published>2024-08-27T12:50:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b1b24d751776d5fd2218a5cb43a8d103bf59fa32'/>
<id>b1b24d751776d5fd2218a5cb43a8d103bf59fa32</id>
<content type='text'>
Extension SGFs require the module system to be enabled in order to discover which module defines the extended external type.
This patch ensures the following:
- Associate symbols with their top level module name, and that only top level modules are considered as modules for emitting extension SGFs.
- Ensure we don't drop macro definitions that came from a submodule. To this end look at all defined macros in `PPCalbacks::EndOfMainFile` instead of relying on `PPCallbacks::MacroDefined` being called to detect a macro definition.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extension SGFs require the module system to be enabled in order to discover which module defines the extended external type.
This patch ensures the following:
- Associate symbols with their top level module name, and that only top level modules are considered as modules for emitting extension SGFs.
- Ensure we don't drop macro definitions that came from a submodule. To this end look at all defined macros in `PPCalbacks::EndOfMainFile` instead of relying on `PPCallbacks::MacroDefined` being called to detect a macro definition.</pre>
</div>
</content>
</entry>
<entry>
<title>Reenable external categories (#87357)</title>
<updated>2024-04-03T09:18:05+00:00</updated>
<author>
<name>Daniel Grumberg</name>
<email>dgrumberg@apple.com</email>
</author>
<published>2024-04-03T09:18:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e05c1b46d0d3739cc48ad912dbe6e9affce05927'/>
<id>e05c1b46d0d3739cc48ad912dbe6e9affce05927</id>
<content type='text'>
Reenables b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.

Also adds a new warning for missing `--symbol-graph-dir` arg when
`--emit-extension-symbol-graphs` is provided. This also reverts the
commit that removed.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reenables b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.

Also adds a new warning for missing `--symbol-graph-dir` arg when
`--emit-extension-symbol-graphs` is provided. This also reverts the
commit that removed.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang][ExtractAPI] Add ability to create multiple symbol graphs (#86676)"</title>
<updated>2024-04-02T14:34:52+00:00</updated>
<author>
<name>Daniel Grumberg</name>
<email>dgrumberg@apple.com</email>
</author>
<published>2024-04-02T14:34:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=209a1e8dfdf1c104dd53b50eb196d6bc0dd01659'/>
<id>209a1e8dfdf1c104dd53b50eb196d6bc0dd01659</id>
<content type='text'>
This failed the test suite due to missing DiagGroup for a new warning.

This reverts commit b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This failed the test suite due to missing DiagGroup for a new warning.

This reverts commit b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf.
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][ExtractAPI] Add ability to create multiple symbol graphs (#86676)</title>
<updated>2024-04-02T14:03:46+00:00</updated>
<author>
<name>Daniel Grumberg</name>
<email>dgrumberg@apple.com</email>
</author>
<published>2024-04-02T14:03:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf'/>
<id>b31414bf4f9898f7817a9fcf8a91f62ec26f3eaf</id>
<content type='text'>
This extends ExtractAPI to take into account symbols defined in categories to types defined in an external module.
This introduces 2 new command line flags, `--symbol-graph-dir=DIR` and `--emit-extension-symbol-graphs`, when used together this generates additional symbol graph files at `DIR/ExtendedModule@ProductName.symbols.json` for each external module that is extended in this way.

Additionally this makes some cleanups to tests to make them more resilient and cleans up the `APISet` data structure.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This extends ExtractAPI to take into account symbols defined in categories to types defined in an external module.
This introduces 2 new command line flags, `--symbol-graph-dir=DIR` and `--emit-extension-symbol-graphs`, when used together this generates additional symbol graph files at `DIR/ExtendedModule@ProductName.symbols.json` for each external module that is extended in this way.

Additionally this makes some cleanups to tests to make them more resilient and cleans up the `APISet` data structure.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][InstallAPI] Add input file support to library (#81701)</title>
<updated>2024-02-20T17:39:00+00:00</updated>
<author>
<name>Cyndy Ishida</name>
<email>cyndy_ishida@apple.com</email>
</author>
<published>2024-02-20T17:39:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4c6043de0b837d23699424d875057d00956d80ac'/>
<id>4c6043de0b837d23699424d875057d00956d80ac</id>
<content type='text'>
This patch adds support for expected InstallAPI inputs. InstallAPI
accepts a well defined filelist of headers and how those headers
represent a single library.

InstallAPI captures header files to determine linkable symbols to then
compare against what was compiled in a binary dylib and generate TBD
files.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds support for expected InstallAPI inputs. InstallAPI
accepts a well defined filelist of headers and how those headers
represent a single library.

InstallAPI captures header files to determine linkable symbols to then
compare against what was compiled in a binary dylib and generate TBD
files.</pre>
</div>
</content>
</entry>
</feed>
