This patch adds support for generating MLIR files in Flang's frontend
driver (i.e. flang-new -fc1). -emit-fir is added as an alias for
-emit-mlir. We may want to decide to split the two in the future.
A new parent class for code-gen frontend actions is introduced:
CodeGenAction. We will be using this class to encapsulate logic shared
between all code-generation actions, but not required otherwise. For
now, it will:
- run prescanning, parsing and semantic checks,
- lower the input to MLIR.
EmitObjAction is updated to inherit from this class. This means that
the behaviour of flang-new -fc1 -emit-obj is also updated (previously,
it would just exit immediately). This change required
flang/test/Driver/syntax-only.f90 to be updated.
For -emit-fir, a specialisation of CodeGenAction is introduced:
EmitMLIRAction. The key logic for this class is implemented in
EmitMLIRAction::ExecuteAction.
This appears in a header file. Should there be doxygen comments?