<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/Frontend/CompilerInvocation.cpp, branch users/vitalybuka/spr/main.asan-install-pthread_atfork</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] Use StringRef::{starts,ends}_with (NFC) (#75149)</title>
<updated>2023-12-13T16:54:13+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2023-12-13T16:54:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f3dcc2351cff7b26c9870d737e5d431551542d9e'/>
<id>f3dcc2351cff7b26c9870d737e5d431551542d9e</id>
<content type='text'>
This patch replaces uses of StringRef::{starts,ends}with with
StringRef::{starts,ends}_with for consistency with
std::{string,string_view}::{starts,ends}_with in C++20.

I'm planning to deprecate and eventually remove
StringRef::{starts,ends}with.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch replaces uses of StringRef::{starts,ends}with with
StringRef::{starts,ends}_with for consistency with
std::{string,string_view}::{starts,ends}_with in C++20.

I'm planning to deprecate and eventually remove
StringRef::{starts,ends}with.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][PP] Add extension to predefine target OS macros (#74676)</title>
<updated>2023-12-08T01:40:58+00:00</updated>
<author>
<name>Zixu Wang</name>
<email>9819235+zixu-w@users.noreply.github.com</email>
</author>
<published>2023-12-08T01:40:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6e1f19168bca7e3bd4eefda50ba03eac8441dbbf'/>
<id>6e1f19168bca7e3bd4eefda50ba03eac8441dbbf</id>
<content type='text'>
Add an extension feature `define-target-os-macros` that enables clang to
provide definitions of common TARGET_OS_* conditional macros. The
extension is enabled in the Darwin toolchain driver.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add an extension feature `define-target-os-macros` that enables clang to
provide definitions of common TARGET_OS_* conditional macros. The
extension is enabled in the Darwin toolchain driver.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][modules] Reset codegen options (take 2). (#74388)</title>
<updated>2023-12-05T16:31:21+00:00</updated>
<author>
<name>Juergen Ributzka</name>
<email>juergen@ributzka.de</email>
</author>
<published>2023-12-05T16:31:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5ad3a32c79319b0721cb26398946b9a59b50d264'/>
<id>5ad3a32c79319b0721cb26398946b9a59b50d264</id>
<content type='text'>
CodeGen options do not affect the AST, so they usually can be ignored.
The only exception to the rule is when a PCM is created with
`-gmodules`.
In that case the Clang module format is switched to object file
container and contains also serialized debug information that can be
affected by debug options. There the following approach was choosen:

1.) Split out all the debug options into a separate `DebugOptions.def`
    file. The file is included by `CodeGenOptions.def`, so the change is
    transparent to all existing users of `CodeGenOptions.def`.
2.) Reset all CodeGen options, but excluding affecting debug options.
3.) Conditionally reset debug options that can affect the PCM.

This fixes rdar://113135909.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CodeGen options do not affect the AST, so they usually can be ignored.
The only exception to the rule is when a PCM is created with
`-gmodules`.
In that case the Clang module format is switched to object file
container and contains also serialized debug information that can be
affected by debug options. There the following approach was choosen:

1.) Split out all the debug options into a separate `DebugOptions.def`
    file. The file is included by `CodeGenOptions.def`, so the change is
    transparent to all existing users of `CodeGenOptions.def`.
2.) Reset all CodeGen options, but excluding affecting debug options.
3.) Conditionally reset debug options that can affect the PCM.

This fixes rdar://113135909.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang][modules] Reset codegen options. (#74006)"</title>
<updated>2023-12-04T22:28:22+00:00</updated>
<author>
<name>Juergen Ributzka</name>
<email>juergen@ributzka.de</email>
</author>
<published>2023-12-04T22:26:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1157bee5ce2c7acb803cda5003b2ea9d0ed962e2'/>
<id>1157bee5ce2c7acb803cda5003b2ea9d0ed962e2</id>
<content type='text'>
This reverts commit fef1854318bd797c1f8a141d4b45b113b04860d1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit fef1854318bd797c1f8a141d4b45b113b04860d1.
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][modules] Reset codegen options. (#74006)</title>
<updated>2023-12-04T21:54:57+00:00</updated>
<author>
<name>Juergen Ributzka</name>
<email>juergen@ributzka.de</email>
</author>
<published>2023-12-04T21:54:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fef1854318bd797c1f8a141d4b45b113b04860d1'/>
<id>fef1854318bd797c1f8a141d4b45b113b04860d1</id>
<content type='text'>
CodeGen options do not affect the AST, so they usually can be ignored.
The only exception to the rule is when a PCM is created with
`-gmodules`.
In that case the Clang module format is switched to object file
container and contains also serialized debug information that can be
affected by debug options. There the following approach was choosen:

1.) Split out all the debug options into a separate `DebugOptions.def`
    file. The file is included by `CodeGenOptions.def`, so the change is
    transparent to all existing users of `CodeGenOptions.def`.
2.) Reset all CodeGen options, but excluding affecting debug options.
3.) Conditionally reset debug options that can affect the PCM.

This fixes rdar://113135909.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CodeGen options do not affect the AST, so they usually can be ignored.
The only exception to the rule is when a PCM is created with
`-gmodules`.
In that case the Clang module format is switched to object file
container and contains also serialized debug information that can be
affected by debug options. There the following approach was choosen:

1.) Split out all the debug options into a separate `DebugOptions.def`
    file. The file is included by `CodeGenOptions.def`, so the change is
    transparent to all existing users of `CodeGenOptions.def`.
2.) Reset all CodeGen options, but excluding affecting debug options.
3.) Conditionally reset debug options that can affect the PCM.

This fixes rdar://113135909.</pre>
</div>
</content>
</entry>
<entry>
<title>[Verifier] Check function attributes related to branch protection (NFC) (#70565)</title>
<updated>2023-12-04T16:16:55+00:00</updated>
<author>
<name>Momchil Velikov</name>
<email>momchil.velikov@arm.com</email>
</author>
<published>2023-12-04T16:16:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e3a97dffee93f03e12b5911869f9a443c39821bc'/>
<id>e3a97dffee93f03e12b5911869f9a443c39821bc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][llvm][fatlto] Avoid cloning modules in FatLTO (#72180)</title>
<updated>2023-12-01T01:09:34+00:00</updated>
<author>
<name>Paul Kirth</name>
<email>paulkirth@google.com</email>
</author>
<published>2023-12-01T01:09:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cfe1ece833d643921da2735cd80e32b32ef170fb'/>
<id>cfe1ece833d643921da2735cd80e32b32ef170fb</id>
<content type='text'>
https://github.com/llvm/llvm-project/issues/70703 pointed out that
cloning LLVM modules could lead to miscompiles when using FatLTO.

This is due to an existing issue when cloning modules with labels (see
#55991 and #47769). Since this can lead to miscompilation, we can avoid
cloning the LLVM modules, which was desirable anyway.

This patch modifies the EmbedBitcodePass to no longer clone the module
or run an input pipeline over it. Further, it make FatLTO always perform
UnifiedLTO, so we can still defer the Thin/Full LTO decision to
link-time. Lastly, it removes dead/obsolete code related to now defunct
options that do not work with the EmbedBitcodePass implementation any
longer.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/issues/70703 pointed out that
cloning LLVM modules could lead to miscompiles when using FatLTO.

This is due to an existing issue when cloning modules with labels (see
#55991 and #47769). Since this can lead to miscompilation, we can avoid
cloning the LLVM modules, which was desirable anyway.

This patch modifies the EmbedBitcodePass to no longer clone the module
or run an input pipeline over it. Further, it make FatLTO always perform
UnifiedLTO, so we can still defer the Thin/Full LTO decision to
link-time. Lastly, it removes dead/obsolete code related to now defunct
options that do not work with the EmbedBitcodePass implementation any
longer.</pre>
</div>
</content>
</entry>
<entry>
<title>[Frontend] Remove unneeded -frtti check. NFC</title>
<updated>2023-11-28T05:41:04+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>i@maskray.me</email>
</author>
<published>2023-11-28T05:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e2d60c86268479b019d62bba25745407dc15ce98'/>
<id>e2d60c86268479b019d62bba25745407dc15ce98</id>
<content type='text'>
-frtti is not a CC1 option. We just need to check -fno-rtti.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
-frtti is not a CC1 option. We just need to check -fno-rtti.
</pre>
</div>
</content>
</entry>
<entry>
<title>[APINotes] Upstream Driver and Frontend options that enable API Notes</title>
<updated>2023-11-23T18:52:27+00:00</updated>
<author>
<name>Egor Zhdan</name>
<email>e_zhdan@apple.com</email>
</author>
<published>2023-11-23T18:52:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07d799f08fec4cb9ceb14a43cc134dee7f1621fc'/>
<id>07d799f08fec4cb9ceb14a43cc134dee7f1621fc</id>
<content type='text'>
This upstreams more of the Clang API Notes functionality that is
currently implemented in the Apple fork:
https://github.com/apple/llvm-project/tree/next/clang/lib/APINotes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This upstreams more of the Clang API Notes functionality that is
currently implemented in the Apple fork:
https://github.com/apple/llvm-project/tree/next/clang/lib/APINotes</pre>
</div>
</content>
</entry>
<entry>
<title>[OpenACC] Initial commits to support OpenACC (#70234)</title>
<updated>2023-11-17T14:29:02+00:00</updated>
<author>
<name>Erich Keane</name>
<email>ekeane@nvidia.com</email>
</author>
<published>2023-11-17T14:29:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ff219ea9ca80f46ff85dbdb94622ffb319a0d237'/>
<id>ff219ea9ca80f46ff85dbdb94622ffb319a0d237</id>
<content type='text'>
Initial commits to support OpenACC.  This patchset:

adds a clang-command line argument '-fopenacc', and starts
 to define _OPENACC, albeit to '1' instead of the standardized
value (since we don't properly implement OpenACC yet).

The OpenACC spec defines `_OPENACC` to be equal to the latest standard
implemented. However, since we're not done implementing any standard,
we've defined this by default to be `1`. As it is useful to run our
compiler against existing OpenACC workloads, we're providing a
temporary override flag to change the `_OPENACC` value to be any
entirely digit value, permitting testing against any existing OpenACC
project.

Exactly like the OpenMP parser, the OpenACC pragma parser needs to
consume and reprocess the tokens. This patch sets up the infrastructure
to do so by refactoring the OpenMP version of this into a more general
version that works for OpenACC as well.

Additionally, this adds a few diagnostics and token kinds to get us
started.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Initial commits to support OpenACC.  This patchset:

adds a clang-command line argument '-fopenacc', and starts
 to define _OPENACC, albeit to '1' instead of the standardized
value (since we don't properly implement OpenACC yet).

The OpenACC spec defines `_OPENACC` to be equal to the latest standard
implemented. However, since we're not done implementing any standard,
we've defined this by default to be `1`. As it is useful to run our
compiler against existing OpenACC workloads, we're providing a
temporary override flag to change the `_OPENACC` value to be any
entirely digit value, permitting testing against any existing OpenACC
project.

Exactly like the OpenMP parser, the OpenACC pragma parser needs to
consume and reprocess the tokens. This patch sets up the infrastructure
to do so by refactoring the OpenMP version of this into a more general
version that works for OpenACC as well.

Additionally, this adds a few diagnostics and token kinds to get us
started.</pre>
</div>
</content>
</entry>
</feed>
