aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDominik Adamski <dominik.adamski@amd.com>2023-11-28 19:57:36 +0100
committerGitHub <noreply@github.com>2023-11-28 19:57:36 +0100
commita8ac930b99d93b2a539ada7e566993d148899144 (patch)
tree0ba6d2b8f18cdd5d9a8219f2436fc10112969d69 /flang/lib/Frontend/CompilerInvocation.cpp
parent02cbae4fe0683c90ccd544d0be7fa82732a502e8 (diff)
downloadllvm-a8ac930b99d93b2a539ada7e566993d148899144.zip
llvm-a8ac930b99d93b2a539ada7e566993d148899144.tar.gz
llvm-a8ac930b99d93b2a539ada7e566993d148899144.tar.bz2
[Flang] Add code-object-version option (#72638)
Information about code object version can be configured by the user for AMD GPU target and it needs to be placed in LLVM IR generated by Flang. Information about code object version in MLIR generated by the parser can be reused by other tools. There is no need to specify extra flags if we want to invoke MLIR tools (like fir-opt) separately.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r--flang/lib/Frontend/CompilerInvocation.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerInvocation.cpp
index 1c09ae9..0dc11ab 100644
--- a/flang/lib/Frontend/CompilerInvocation.cpp
+++ b/flang/lib/Frontend/CompilerInvocation.cpp
@@ -268,6 +268,17 @@ static void parseCodeGenArgs(Fortran::frontend::CodeGenOptions &opts,
opts.PrepareForThinLTO = true;
}
+ if (const llvm::opt::Arg *a = args.getLastArg(
+ clang::driver::options::OPT_mcode_object_version_EQ)) {
+ llvm::StringRef s = a->getValue();
+ if (s == "5")
+ opts.CodeObjectVersion = llvm::CodeObjectVersionKind::COV_5;
+ if (s == "4")
+ opts.CodeObjectVersion = llvm::CodeObjectVersionKind::COV_4;
+ if (s == "none")
+ opts.CodeObjectVersion = llvm::CodeObjectVersionKind::COV_None;
+ }
+
// -f[no-]save-optimization-record[=<format>]
if (const llvm::opt::Arg *a =
args.getLastArg(clang::driver::options::OPT_opt_record_file))