8 Commits

Author SHA1 Message Date
Omar Ahmed
06ee672fc5
[clang] Move opt level in clang toolchain to clang::ConstructJob start (#141036)
We currently transfer the opt level from the user clang call to CC1 args
at the end of the `ConstructJob` function, this might lead to bugs as
`ConstructJob` is a big function and we easily could add a change that
would return early from it. That would cause the opt level to not be
transferred to CC1 args and lead to wrong opt level compilation and
would be hard to spot. This PR moves the opt level to the beginning of
the function as opt level should be a direct transfer without any
problems, it also removes the redundancy where it was added 2 times
through the function.
2025-05-28 07:40:00 -06:00
Nico Weber
5cf3677a7b [clang] Pass -c to clang in test/Driver/Ofast.c
Without this, `-###` prints the linker invocation as well, which
can lead to `-Wno-msvc-not-found` warnings on Windows bots that
don't have MSVC on path, causing the test to fail.

Since the test isn't trying to test linker-related things, just
pass `-c`. See discussion on #98736.
2024-09-06 08:27:41 -04:00
Vlad Serebrennikov
5a45fed188 [clang][NFC] Fix typo in -Ofast deprecation warning
A follow-up for #98736
2024-07-19 12:43:52 +03:00
Vlad Serebrennikov
2ef7cbf71c
[clang] Add deprecation warning for -Ofast driver option (#98736)
This patch implements consensus on the corresponding RFC documented
here: https://discourse.llvm.org/t/rfc-deprecate-ofast/78687/72
Specifically, I added a deprecation warning for `-Ofast`, that suggests
to use `-O3` or `-O3` with `-ffast-math`, and a new diagnostic group for
aforementioned warning.
Deprecation period is going to be lengthy, so I hope this PR can be
merged in time for Clang 19.
2024-07-18 11:49:53 +04:00
Max Winkler
d63764718c
[clang][Driver] Fix enabling strict alising by default when the environment is MSVC (#91689)
From looking at the rest of code and from my own understanding, the
driver mode is supposed to be independent of MSVC compatibility when the
target triple is `*-windows-msvc`.
Therefore strict aliasing should be disabled by default when the target
triple is `*-windows-msvc` so code assuming MSVC behaves as expected
when compiled with Clang.
2024-05-24 19:12:38 -04:00
Chad Rosier
e41edc2e4e [driver] Test that last option wins between -Ofast and -O2.
Part of rdar://13622687

llvm-svn: 180207
2013-04-24 18:43:57 +00:00
Chad Rosier
679b07500e [driver] Put -fvectorize under the -Ofast umbrella flag.
Part of rdar://13622687

llvm-svn: 180206
2013-04-24 18:29:59 +00:00
Chad Rosier
b71f6aa33c [driver] Improve the implementation of the -Ofast option.
Specifically, allow the flags that fall under this umbrella (i.e., -O3,
-ffast-math, and -fstrict-aliasing) to be overridden/disabled with the
individual -O[0|1|2|s|z]/-fno- flags.

This also fixes the handling of various floating point optimization
flags that are modified by -ffast-math (and thus -Ofast as well).
Part of rdar://13622687

llvm-svn: 180204
2013-04-24 18:09:54 +00:00