summaryrefslogtreecommitdiff
path: root/flang/lib/Optimizer/CodeGen/CodeGen.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2024-08-21 17:47:17 -0700
committerVitaly Buka <vitalybuka@google.com>2024-08-21 17:47:17 -0700
commit54081b7e4a315cdbe1017eeded9e2cf861ecc0b4 (patch)
treed7a4ed030ea94cd06ff903d648901fbe339a55bd /flang/lib/Optimizer/CodeGen/CodeGen.cpp
parentee572ed4ac2d9e2ff37217d6bedc20f530a5d3af (diff)
parent64e464349bfca0d90e07f6db2f710d4d53cdacd4 (diff)
[𝘀𝗽𝗿] changes introduced through rebaseusers/vitalybuka/spr/main.asandarwin-simplify-test
Created using spr 1.3.4 [skip ci]
Diffstat (limited to 'flang/lib/Optimizer/CodeGen/CodeGen.cpp')
-rw-r--r--flang/lib/Optimizer/CodeGen/CodeGen.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/flang/lib/Optimizer/CodeGen/CodeGen.cpp b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
index 1713cf98a8b9..e419b2612529 100644
--- a/flang/lib/Optimizer/CodeGen/CodeGen.cpp
+++ b/flang/lib/Optimizer/CodeGen/CodeGen.cpp
@@ -1201,7 +1201,9 @@ struct EmboxCommonConversion : public fir::FIROpConversion<OP> {
mlir::Location loc,
fir::RecordType recType) const {
std::string name =
- fir::NameUniquer::getTypeDescriptorName(recType.getName());
+ this->options.typeDescriptorsRenamedForAssembly
+ ? fir::NameUniquer::getTypeDescriptorAssemblyName(recType.getName())
+ : fir::NameUniquer::getTypeDescriptorName(recType.getName());
mlir::Type llvmPtrTy = ::getLlvmPtrType(mod.getContext());
if (auto global = mod.template lookupSymbol<fir::GlobalOp>(name)) {
return rewriter.create<mlir::LLVM::AddressOfOp>(loc, llvmPtrTy,
@@ -2704,7 +2706,10 @@ struct TypeDescOpConversion : public fir::FIROpConversion<fir::TypeDescOp> {
auto recordType = mlir::dyn_cast<fir::RecordType>(inTy);
auto module = typeDescOp.getOperation()->getParentOfType<mlir::ModuleOp>();
std::string typeDescName =
- fir::NameUniquer::getTypeDescriptorName(recordType.getName());
+ this->options.typeDescriptorsRenamedForAssembly
+ ? fir::NameUniquer::getTypeDescriptorAssemblyName(
+ recordType.getName())
+ : fir::NameUniquer::getTypeDescriptorName(recordType.getName());
auto llvmPtrTy = ::getLlvmPtrType(typeDescOp.getContext());
if (auto global = module.lookupSymbol<mlir::LLVM::GlobalOp>(typeDescName)) {
rewriter.replaceOpWithNewOp<mlir::LLVM::AddressOfOp>(
@@ -3653,6 +3658,10 @@ public:
if (!forcedTargetFeatures.empty())
fir::setTargetFeatures(mod, forcedTargetFeatures);
+ if (typeDescriptorsRenamedForAssembly)
+ options.typeDescriptorsRenamedForAssembly =
+ typeDescriptorsRenamedForAssembly;
+
// Run dynamic pass pipeline for converting Math dialect
// operations into other dialects (llvm, func, etc.).
// Some conversions of Math operations cannot be done