This patch adds the following compiler frontend driver options:
- -fdebug-unparse (f18 spelling: -funparse)
- -fdebug-unparse-with-symbols (f18 spelling: -funparse-with-symbols)
The new driver will only accept the new spelling. f18 will accept both
the original and the new spelling.
A new base class for frontend actions is added: PrescanAndSemaAction.
This is added to reduce code duplication that otherwise these new
options would lead to. Implementation from
- ParseSyntaxOnlyAction::ExecutionAction
is moved to:
- PrescanAndSemaAction::BeginSourceFileAction
This implementation is now shared between:
- PrescanAndSemaAction
- ParseSyntaxOnlyAction
- DebugUnparseAction
- DebugUnparseWithSymbolsAction
All tests that don't require other yet unimplemented options are
updated. This way flang-new -fc1 is used instead of f18 when
FLANG_BUILD_NEW_DRIVER is set to On. In order to facilitate this,
%flang_fc1 is added in the LIT configuration (lit.cfg.py).
asFortran from f18.cpp is duplicated as getBasicAsFortran in
FrontendOptions.cpp. At this stage it's hard to find a good place to
share this method. I suggest that we revisit this once a switch from
f18 to flang-new is complete.
[nit] Is there a reason to have this as a separate if-else instead of merging with the existing if-else