[flang-commits] [flang] [clang] [Flang] Add code-object-version option (PR #72638)
Sergio Afonso via flang-commits
flang-commits at lists.llvm.org
Fri Nov 17 05:03:49 PST 2023
================
@@ -264,6 +263,37 @@ static void addDepdendentLibs(mlir::ModuleOp &mlirModule,
}
}
+// Add to MLIR code target specific items which are dependent on target
+// configuration specified by the user
+static void addTargetSpecificMLIRItems(mlir::ModuleOp &mlirModule,
+ CompilerInstance &ci) {
+ const TargetOptions &targetOpts = ci.getInvocation().getTargetOpts();
+ const llvm::Triple triple(targetOpts.triple);
+ if (triple.isAMDGPU()) {
+ unsigned oclcABIVERsion;
+ const unsigned defaultOclcABIVERsion = 400;
+ mlir::OpBuilder builder(mlirModule.getContext());
+ const CodeGenOptions &codeGenOpts = ci.getInvocation().getCodeGenOpts();
+ if (codeGenOpts.CodeObjectVersion ==
+ CodeGenOptions::CodeObjectVersionKind::COV_None)
+ oclcABIVERsion = defaultOclcABIVERsion;
+ else
+ oclcABIVERsion = static_cast<unsigned>(codeGenOpts.CodeObjectVersion);
+
+ auto int32Type = builder.getI32Type();
+ auto covInfo = builder.create<mlir::LLVM::GlobalOp>(
+ mlirModule.getLoc(), int32Type, true, mlir::LLVM::Linkage::WeakODR,
+ "__oclc_ABI_version",
+ builder.getIntegerAttr(int32Type, oclcABIVERsion));
+ covInfo.setUnnamedAddr(mlir::LLVM::UnnamedAddr::Local);
+ covInfo.setAddrSpace(4);
----------------
skatrak wrote:
Is this address space value defined in any enumeration that could be used here, rather than passing just a number? Of if they are documented somewhere, at least refer to it in a comment.
https://github.com/llvm/llvm-project/pull/72638
More information about the flang-commits
mailing list