<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/flang/lib/Frontend/CompilerInvocation.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>[Flang] Add -ffast-real-mod back for further control of MOD optimizations (#167118)</title>
<updated>2025-11-22T11:55:32+00:00</updated>
<author>
<name>Michael Klemm</name>
<email>michael.klemm@amd.com</email>
</author>
<published>2025-11-22T11:55:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9daf4345ec836d50740805c878bd570dd4093354'/>
<id>9daf4345ec836d50740805c878bd570dd4093354</id>
<content type='text'>
It turns out that having `-ffast-math` as the only option to control
optimizations for MOD for REAL kinds (PR #160660) is too coarse-grained
for some applications. Thus, this PR adds back `-ffast-real-mod` to have
more control over the optimization. The `-ffast-math` flag will still
enable the optimization, and `-fno-fast-real-mod` allows one to disable
it.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It turns out that having `-ffast-math` as the only option to control
optimizations for MOD for REAL kinds (PR #160660) is too coarse-grained
for some applications. Thus, this PR adds back `-ffast-real-mod` to have
more control over the optimization. The `-ffast-math` flag will still
enable the optimization, and `-fno-fast-real-mod` allows one to disable
it.</pre>
</div>
</content>
</entry>
<entry>
<title>Add FramePointerKind::NonLeafNoReserve (#163775)</title>
<updated>2025-11-11T17:25:49+00:00</updated>
<author>
<name>Nabeel Omer</name>
<email>nabeel.omer@sony.com</email>
</author>
<published>2025-11-11T17:25:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7a58b417bc9ba19d05d4c5c2de26b0359827277b'/>
<id>7a58b417bc9ba19d05d4c5c2de26b0359827277b</id>
<content type='text'>
This patch adds a new `FramePointerKind::NonLeafNoReserve` and makes it
the default for `-momit-leaf-frame-pointer`.

It also adds a new commandline option `-m[no-]reserve-frame-pointer-reg`.

This should fix #154379, the main impact of this patch can be found in
`clang/lib/Driver/ToolChains/CommonArgs.cpp`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds a new `FramePointerKind::NonLeafNoReserve` and makes it
the default for `-momit-leaf-frame-pointer`.

It also adds a new commandline option `-m[no-]reserve-frame-pointer-reg`.

This should fix #154379, the main impact of this patch can be found in
`clang/lib/Driver/ToolChains/CommonArgs.cpp`.</pre>
</div>
</content>
</entry>
<entry>
<title>Reland "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167374)</title>
<updated>2025-11-10T20:24:39+00:00</updated>
<author>
<name>Naveen Seth Hanig</name>
<email>naveen.hanig@outlook.com</email>
</author>
<published>2025-11-10T20:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f63d33da0a517a9a7096e0e67defb50c5995dd41'/>
<id>f63d33da0a517a9a7096e0e67defb50c5995dd41</id>
<content type='text'>
This relands #167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
https://github.com/llvm/llvm-project/pull/163659#discussion_r2511546964

No additional changes have been made in this reland.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This relands #167348.

The original PR was reverted due to a reported build failure, which was
later diagnosed as a local issue in the developer’s checkout or build
state. See discussion here:
https://github.com/llvm/llvm-project/pull/163659#discussion_r2511546964

No additional changes have been made in this reland.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[clang] Refactor option-related code from clangDriver into new clangOptions library" (#167348)</title>
<updated>2025-11-10T17:27:20+00:00</updated>
<author>
<name>Naveen Seth Hanig</name>
<email>naveen.hanig@outlook.com</email>
</author>
<published>2025-11-10T17:27:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6bad2d139bd08c657620bb152113f9e957c582c5'/>
<id>6bad2d139bd08c657620bb152113f9e957c582c5</id>
<content type='text'>
Reverts #163659 due to missing one reference clang/Driver/Options.h in 
clang/include/clang/Driver/Driver.h.

See https://github.com/llvm/llvm-project/pull/163659#issuecomment-3512979187</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts #163659 due to missing one reference clang/Driver/Options.h in 
clang/include/clang/Driver/Driver.h.

See https://github.com/llvm/llvm-project/pull/163659#issuecomment-3512979187</pre>
</div>
</content>
</entry>
<entry>
<title>[clang] Refactor option-related code from clangDriver into new clangOptions library (#163659)</title>
<updated>2025-11-10T16:19:03+00:00</updated>
<author>
<name>Naveen Seth Hanig</name>
<email>naveen.hanig@outlook.com</email>
</author>
<published>2025-11-10T16:19:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9a783b63e647d95e001f55464a9bc7fa0c3929c3'/>
<id>9a783b63e647d95e001f55464a9bc7fa0c3929c3</id>
<content type='text'>
This change moves option-related code from clangDriver into a new
clangOptions library.

This refactoring is part of a broader effort to support driver-managed
builds for compilations using C++ named modules and/or Clang modules.
It is required for linking the dependency scanning tooling against the
driver without introducing cyclic dependencies, which would otherwise
cause build failures when dynamic linking is enabled.
In particular, clangFrontend must no longer depend on clangDriver
for this to be possible.

This PR is motivated by the following review comment:
https://github.com/llvm/llvm-project/pull/152770#discussion_r2430756918</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change moves option-related code from clangDriver into a new
clangOptions library.

This refactoring is part of a broader effort to support driver-managed
builds for compilations using C++ named modules and/or Clang modules.
It is required for linking the dependency scanning tooling against the
driver without introducing cyclic dependencies, which would otherwise
cause build failures when dynamic linking is enabled.
In particular, clangFrontend must no longer depend on clangDriver
for this to be possible.

This PR is motivated by the following review comment:
https://github.com/llvm/llvm-project/pull/152770#discussion_r2430756918</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][Driver] Better error message when multiple actions are specified (#165575)</title>
<updated>2025-11-06T18:39:19+00:00</updated>
<author>
<name>Tarun Prabhu</name>
<email>tarun@lanl.gov</email>
</author>
<published>2025-11-06T18:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f84c4c468353c5a9df0dac6eadd2acd51fd2107e'/>
<id>f84c4c468353c5a9df0dac6eadd2acd51fd2107e</id>
<content type='text'>
If multiple action options are specified on the command line, list them all 
in the error message that is emitted

Fixes #79458</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If multiple action options are specified on the command line, list them all 
in the error message that is emitted

Fixes #79458</pre>
</div>
</content>
</entry>
<entry>
<title>[Flang] Add -ffast-real-mod and direct code for MOD on REAL types (#160660)</title>
<updated>2025-10-02T08:50:05+00:00</updated>
<author>
<name>Michael Klemm</name>
<email>michael.klemm@amd.com</email>
</author>
<published>2025-10-02T08:50:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8aa64edb34ec6b30e1e7d0dbcc86236a6290eb0c'/>
<id>8aa64edb34ec6b30e1e7d0dbcc86236a6290eb0c</id>
<content type='text'>
This patch adds direct code-gen support for a faster MOD intrinsic for
REAL types. Flang has maintained and keeps maintaining a high-precision
implementation of the MOD intrinsic as part of the Fortran runtime. With
the -ffast-real-mod flag, users can opt to avoid calling into the
Fortran runtime, but instead trigger code-gen that produces faster code
by avoiding the runtime call, at the expense of potentially risking bit
cancelation by having the compiler use the MOD formula a specified by
ISO Fortran.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds direct code-gen support for a faster MOD intrinsic for
REAL types. Flang has maintained and keeps maintaining a high-precision
implementation of the MOD intrinsic as part of the Fortran runtime. With
the -ffast-real-mod flag, users can opt to avoid calling into the
Fortran runtime, but instead trigger code-gen that produces faster code
by avoiding the runtime call, at the expense of potentially risking bit
cancelation by having the compiler use the MOD formula a specified by
ISO Fortran.</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][Driver] Support -gsplit-dwarf. (#160540)</title>
<updated>2025-09-26T10:06:29+00:00</updated>
<author>
<name>Abid Qadeer</name>
<email>haqadeer@amd.com</email>
</author>
<published>2025-09-26T10:06:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=96675a467ef5811dc1e78b2bec3c90cf0c67ba1c'/>
<id>96675a467ef5811dc1e78b2bec3c90cf0c67ba1c</id>
<content type='text'>
This flags enables the compiler to generate most of the debug
information in a separate file which can be useful for executable size
and link times. Clang already supports this flag.
 
I have tried to follow the logic of the clang implementation where
possible. Some functions were moved where they could be used by both
clang and flang. The `addOtherOptions` was renamed to `addDebugOptions`
to better reflect its purpose.

Clang also set the `splitDebugFilename` field of the `DICompileUnit` in
the IR when this option is present. That part is currently missing from
this patch and will come in a follow-up PR.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This flags enables the compiler to generate most of the debug
information in a separate file which can be useful for executable size
and link times. Clang already supports this flag.
 
I have tried to follow the logic of the clang implementation where
possible. Some functions were moved where they could be used by both
clang and flang. The `addOtherOptions` was renamed to `addDebugOptions`
to better reflect its purpose.

Clang also set the `splitDebugFilename` field of the `DICompileUnit` in
the IR when this option is present. That part is currently missing from
this patch and will come in a follow-up PR.
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang][Driver] Enables lto-partitions and fat-lto-object. (#158125)</title>
<updated>2025-09-18T15:55:20+00:00</updated>
<author>
<name>Anchu Rajendran S</name>
<email>asudhaku@amd.com</email>
</author>
<published>2025-09-18T15:55:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5b2af16be591172cde8203160d1e01f5815a16ac'/>
<id>5b2af16be591172cde8203160d1e01f5815a16ac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[flang] Lowering support for -gdwarf-N flag. (#159137)</title>
<updated>2025-09-17T17:16:36+00:00</updated>
<author>
<name>Abid Qadeer</name>
<email>haqadeer@amd.com</email>
</author>
<published>2025-09-17T17:16:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=453e4102bd32b892e7fda2aea3f3ef9e9b038580'/>
<id>453e4102bd32b892e7fda2aea3f3ef9e9b038580</id>
<content type='text'>
This PR builds on the https://github.com/llvm/llvm-project/pull/158314
and adds the lowering support for `-gdwarf-N` flag. The changes to pass
the information to `AddDebugInfo` pass are mostly mechanical. The
`AddDebugInfo` pass adds `ModuleFlagsOp` in the module which gets
translated to correct llvm metadata during mlir-&gt;llvmir translation.

There is minor correction where the version is set to 0 in case no
-debug-version flag is provided. Previously it was set to 2 in this case
due to misreading of clang code.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR builds on the https://github.com/llvm/llvm-project/pull/158314
and adds the lowering support for `-gdwarf-N` flag. The changes to pass
the information to `AddDebugInfo` pass are mostly mechanical. The
`AddDebugInfo` pass adds `ModuleFlagsOp` in the module which gets
translated to correct llvm metadata during mlir-&gt;llvmir translation.

There is minor correction where the version is set to 0 in case no
-debug-version flag is provided. Previously it was set to 2 in this case
due to misreading of clang code.</pre>
</div>
</content>
</entry>
</feed>
