-
Notifications
You must be signed in to change notification settings - Fork 15.4k
[flang][driver] Introduce FCC_OVERRIDE_OPTIONS. #140556
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 6 commits
5d20af4
d1f2c9b
d093a6a
9faf4d3
db45474
2efd653
f41f8ff
de566e3
3345334
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -614,3 +614,30 @@ nvfortran defines `-fast` as | |
| - `-Mcache_align`: there is no equivalent flag in Flang or Clang. | ||
| - `-Mflushz`: flush-to-zero mode - when `-ffast-math` is specified, Flang will | ||
| link to `crtfastmath.o` to ensure denormal numbers are flushed to zero. | ||
|
|
||
|
|
||
| ## FCC_OVERRIDE_OPTIONS | ||
|
|
||
| The environment variable `FCC_OVERRIDE_OPTIONS` can be used to edit flang's | ||
| command line arguments. The value of this variable is a space-separated list of | ||
| edits to perform. The edits are applied in the order in which they appear in | ||
| `FCC_OVERRIDE_OPTIONS`. Each edit should be one of the following forms: | ||
|
|
||
| - `#`: Silence information about the changes to the command line arguments. | ||
|
|
||
| - `^FOO`: Add `FOO` as a new argument at the beginning of the command line. | ||
|
||
|
|
||
| - `+FOO`: Add `FOO` as a new argument at the end of the command line. | ||
|
|
||
| - `s/XXX/YYY/`: Substitute the regular expression `XXX` with `YYY` in the | ||
| command line. | ||
|
|
||
| - `xOPTION`: Removes all instances of the literal argument `OPTION`. | ||
|
|
||
| - `XOPTION`: Removes all instances of the literal argument `OPTION`, and the | ||
| following argument. | ||
|
|
||
| - `Ox`: Removes all flags matching `O` or `O[sz0-9]` and adds `Ox` at the end | ||
| of the command line. | ||
|
|
||
| This environment variable does not affect the options added by the config files. | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| -Werror |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| ! RUN: env FCC_OVERRIDE_OPTIONS="#+-Os +-Oz +-O +-O3 +-Oignore +a +b +c xb Xa Omagic ^-### " %flang -target x86_64-unknown-linux-gnu %s -O2 b -O3 2>&1 | FileCheck %s | ||
|
||
| ! RUN: env FCC_OVERRIDE_OPTIONS="x-Werror +-g" %flang --target=x86_64-unknown-linux-gnu -Werror %s -c -### 2>&1 | FileCheck %s -check-prefix=RM-WERROR | ||
| ! RUN: env FCC_OVERRIDE_OPTIONS="x-Werror" %flang --config=%S/Inputs/config-7.cfg -### %s -c 2>&1 | FileCheck %s -check-prefix=CONF | ||
|
|
||
| ! CHECK: "-fc1" | ||
| ! CHECK-NOT: "-Oignore" | ||
| ! CHECK: "-Omagic" | ||
| ! CHECK-NOT: "-Oignore" | ||
|
|
||
| ! RM-WERROR: ### FCC_OVERRIDE_OPTIONS: x-Werror +-g | ||
| ! RM-WERROR-NEXT: ### Deleting argument -Werror | ||
| ! RM-WERROR-NEXT: ### Adding argument -g at end | ||
| ! RM-WERROR-NOT: "-Werror" | ||
|
|
||
| ! Test that FCC_OVERRIDE_OPTIONS does not affect the options from config files. | ||
| ! CONF: ### FCC_OVERRIDE_OPTIONS: x-Werror | ||
| ! CONF: "-Werror" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed that clang/docs doesn't have the documentation. Perhaps we should document
clang/docs/UsersManual.rstas well and reference it from FlangDriver.md?(
"Each edit should be one of the following forms:" listshould probably reference the clang doc)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will add clang documentation in a separate PR. The
FCC_OVERRIDE_OPTIONSone can then probably just refer to it.