diff options
author | Dominik Adamski <dominik.adamski@amd.com> | 2023-11-28 19:57:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-28 19:57:36 +0100 |
commit | a8ac930b99d93b2a539ada7e566993d148899144 (patch) | |
tree | 0ba6d2b8f18cdd5d9a8219f2436fc10112969d69 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 02cbae4fe0683c90ccd544d0be7fa82732a502e8 (diff) | |
download | llvm-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.cpp | 11 |
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)) |