Index: mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp =================================================================== --- mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp +++ mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp @@ -3208,9 +3208,11 @@ OpBuilder moduleBuilder(module.getBodyRegion(), builder.getListener()); MLIRContext *ctx = builder.getContext(); auto type = LLVM::LLVMArrayType::get(IntegerType::get(ctx, 8), value.size()); - auto global = moduleBuilder.create( - loc, type, /*isConstant=*/true, linkage, name, - builder.getStringAttr(value), /*alignment=*/0); + auto symbol = module.lookupSymbol(name.str()); + auto global = symbol ? symbol + : moduleBuilder.create( + loc, type, /*isConstant=*/true, linkage, name, + builder.getStringAttr(value), /*alignment=*/0); LLVMPointerType resultType; LLVMPointerType charPtr;