[flang-dev] RFC: new Flang driver options
Andrzej Warzynski via flang-dev
flang-dev at lists.llvm.org
Fri Nov 20 04:09:26 PST 2020
I've just updated the spreadsheet based on the feedback on Slack
(flang-compiler.slack.com):
* Removed `-cpp`/`-nocpp` (as per
http://flang.llvm.org/docs/Parsing.html, the preprocessor is always run)
* Added `-futf-8` and `-flatin`
* Replaced `std=<standard>` with `-std=f2018` ("flang' spelling:
"-Mstandard")
* Added `-I` (it should be there from the start)
Please comment either here or on Slack.
-Andrzej
On 17/11/2020 15:33, Andrzej Warzynski via flang-dev wrote:
> Hi All,
>
> We would like to start adding the remaining features in the new Flang
> driver and would appreciate your feedback on the list of proposed
> compiler options.
>
> Flang - llvm-project/flang
> "flang" - current Flang compiler and frontend driver
> "flang-new" - new Flang compiler driver
> "flang-new -fc1" - new Flang frontend driver
>
> The list of proposed options is available in Google Docs:
>
> https://docs.google.com/spreadsheets/d/1JRe39lP_KhtkYxFEIvwrCFlE5v1Ofa_krOHI-XXXWPY/edit?usp=sharing
>
>
> If you are unable to read Google Docs, please suggest a different format
> and I will port it for you. The "unsupported options" sheet lists
> options from "flang" that won't be supported in "flang-new".
>
> Below you will find our rationale.
>
> # *SPELLINGS*
> The current driver implements both "gfortran " and "Classic Flang"
> spellings for options. For the sake of simplicity (it's easier to focus
> on 1 set) and consistency with libclangDriver (which the new driver is
> implemented in terms of), we propose that for now we focus on "gfortran"
> style spellings.
>
> # *COMPILER VS FRONTED DRIVER OPTIONS*
> Options available in the frontend driver ("flang-new -fc1") won't be
> automatically available in the compile driver ("flang-new"). We propose
> the following rule of thumb:
> * if an option is available in "gfortran" then it should also be
> available in "flang-new"
> For all other options one either has to use the frontend driver or the
> `-Xflang` compiler driver flag (equivalent to `-Xclang`).
>
> # *EXTERNAL TOOL*
> "flang" calls a tool defined with the "F18_FC" environment variable to
> perform the actual compilation. In the new driver we want to focus on
> typical compiler driver tasks, the interface and the user experience.
> Also, with the ongoing efforts to bring the code-generation capabilities
> to llvm-project/flang, we assume that this functionality won't be needed
> in "flang-new". In other words, we suggest that this is not supported.
>
> # *FUTURE CHANGES*
> The proposed set of options is _not_ set in stone and can be refined in
> future. In particular, "Classic Flang" spellings can be added in a
> similar manner as MSVC spelling were added to Clang (e.g. "flang-new-cf"
> could represent the new driver in "Classic Flang" compatibility mode).
>
> # *FINER DETAILS*
> * In some cases we suggest a completely new spelling (e.g.
> "-fdebug-unparse" instead of "-unparse") - please see the "Notes" column
> * "flang-new" already supports a few options that are not supported by
> "flang" (e.g. "-###") - these are also listed
> * "-fget-definition" seems like a rather complex and obscure
> proof-of-concept option and we suggest that it's skipped for now
>
> # *QUESTIONS*
> * Are the descriptions accurate? We might have missed or misinterpreted
> something.
> * What are `-ed` and `-fdebug-module-writer` for? We couldn't find any
> documentation.
>
> Is this sufficient for you to adopt the new Flang driver once these
> options are available? Is there anything that we missed? Does this sound
> sensible to you?
>
> Thank you for reading,
> -Andrzej
> _______________________________________________
> flang-dev mailing list
> flang-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/flang-dev
More information about the flang-dev
mailing list