aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend
diff options
context:
space:
mode:
authorTom Eccles <tom.eccles@arm.com>2025-03-13 15:22:13 +0000
committerGitHub <noreply@github.com>2025-03-13 15:22:13 +0000
commit01aca42363ac18f29580d21f6a30af677c2581b9 (patch)
tree5e1bcc286b54677e9551e4d1b3ca6624ce773667 /flang/lib/Frontend
parent143bf95d41f427bb91335198d5eccd624b5b47d4 (diff)
downloadllvm-01aca42363ac18f29580d21f6a30af677c2581b9.zip
llvm-01aca42363ac18f29580d21f6a30af677c2581b9.tar.gz
llvm-01aca42363ac18f29580d21f6a30af677c2581b9.tar.bz2
[flang] Add support for -f[no-]verbose-asm (#130788)
This flag provides extra commentary in the assembly output.
Diffstat (limited to 'flang/lib/Frontend')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp4
-rw-r--r--flang/lib/Frontend/FrontendActions.cpp3
2 files changed, 7 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 1537122..edf7387 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -476,6 +476,10 @@ static void parseTargetArgs(TargetOptions &opts, llvm::opt::ArgList &args) {
opts.EnableAIXExtendedAltivecABI = false;
}
}
+
+ opts.asmVerbose =
+ args.hasFlag(clang::driver::options::OPT_fverbose_asm,
+ clang::driver::options::OPT_fno_verbose_asm, false);
}
// Tweak the frontend configuration based on the frontend action
static void setUpFrontendBasedOnAction(FrontendOptions &opts) {
diff --git a/flang/lib/Frontend/FrontendActions.cpp b/flang/lib/Frontend/FrontendActions.cpp
index 94de376..46ec755 100644
--- a/flang/lib/Frontend/FrontendActions.cpp
+++ b/flang/lib/Frontend/FrontendActions.cpp
@@ -1220,6 +1220,7 @@ void CodeGenAction::executeAction() {
clang::DiagnosticsEngine &diags = ci.getDiagnostics();
const CodeGenOptions &codeGenOpts = ci.getInvocation().getCodeGenOpts();
+ const TargetOptions &targetOpts = ci.getInvocation().getTargetOpts();
Fortran::lower::LoweringOptions &loweringOpts =
ci.getInvocation().getLoweringOpts();
mlir::DefaultTimingManager &timingMgr = ci.getTimingManager();
@@ -1284,6 +1285,8 @@ void CodeGenAction::executeAction() {
// given on the command-line).
llvm::TargetMachine &targetMachine = ci.getTargetMachine();
+ targetMachine.Options.MCOptions.AsmVerbose = targetOpts.asmVerbose;
+
const llvm::Triple &theTriple = targetMachine.getTargetTriple();
if (llvmModule->getTargetTriple() != theTriple) {