[all-commits] [llvm/llvm-project] 38101b: [flang][driver] Add support for -S and implement -...
Andrzej WarzyĆski via All-commits
all-commits at lists.llvm.org
Wed Mar 9 07:49:55 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 38101b4e95aa4983b7acf1e6351309db9ce5761b
https://github.com/llvm/llvm-project/commit/38101b4e95aa4983b7acf1e6351309db9ce5761b
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2022-03-09 (Wed, 09 Mar 2022)
Changed paths:
M clang/include/clang/Driver/Options.td
M flang/include/flang/Frontend/FrontendActions.h
M flang/include/flang/Frontend/FrontendOptions.h
M flang/lib/Frontend/CMakeLists.txt
M flang/lib/Frontend/CompilerInvocation.cpp
M flang/lib/Frontend/FrontendActions.cpp
M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
M flang/lib/Optimizer/Support/FIRContext.cpp
M flang/test/CMakeLists.txt
A flang/test/Driver/code-gen-aarch64.f90
A flang/test/Driver/code-gen-x86.f90
R flang/test/Driver/code-gen.f90
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
A flang/test/Driver/emit-asm-aarch64.f90
A flang/test/Driver/emit-asm-x86.f90
M flang/test/Driver/syntax-only.f90
M flang/test/Fir/target-rewrite-triple.fir
M flang/test/lit.cfg.py
M flang/test/lit.site.cfg.py.in
M flang/tools/flang-driver/fc1_main.cpp
M flang/unittests/Frontend/CMakeLists.txt
M flang/unittests/Frontend/FrontendActionTest.cpp
Log Message:
-----------
[flang][driver] Add support for -S and implement -c/-emit-obj
This patch adds support for:
* `-S` in Flang's compiler and frontend drivers,
and implements:
* `-emit-obj` in Flang's frontend driver and `-c` in Flang's compiler
driver (this is consistent with Clang).
(these options were already available before, but only as placeholders).
The semantics of these options in Clang and Flang are identical.
The `EmitObjAction` frontend action is renamed as `BackendAction`. This
new name more accurately reflects the fact that this action will
primarily run the code-gen/backend pipeline in LLVM. It also makes more
sense as an action implementing both `-emit-obj` and `-S` (originally,
it was just `-emit-obj`).
`tripleName` from FirContext.cpp is deleted and, when a target triple is
required, `mlir::LLVM::LLVMDialect::getTargetTripleAttrName()` is used
instead. In practice, this means that `fir.triple` is replaced with
`llvm.target_triple`. The former was effectively ignored. The latter is
used when lowering from the LLVM dialect in MLIR to LLVM IR (i.e. it's
embedded in the generated LLVM IR module). The driver can then re-use
it when configuring the backend. With this change, the LLVM IR files
generated by e.g. `tco` will from now on contain the correct target
triple.
The code-gen.f90 test is replaced with code-gen-x86.f90 and
code-gen-aarch64.f90. With 2 seperate files we can verify that
`--target` is correctly taken into account. LIT configuration is updated
to enable e.g.:
```
! REQUIRES: aarch64-registered-target
```
Differential Revision: https://reviews.llvm.org/D120568
More information about the All-commits
mailing list