Skip to content

Commit c1455b4

Browse files
committed
Add printString to CRunnerUtils and use that instead
I've also defined this in RunnerUtils so linking either or both gives you printString, this avoids the need to update a bunch of tests that use cf.assert.
1 parent c2f93b7 commit c1455b4

File tree

8 files changed

+17
-12
lines changed

8 files changed

+17
-12
lines changed

mlir/include/mlir/Dialect/LLVMIR/FunctionCallUtils.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ LLVM::LLVMFuncOp lookupOrCreatePrintF16Fn(ModuleOp moduleOp);
3838
LLVM::LLVMFuncOp lookupOrCreatePrintBF16Fn(ModuleOp moduleOp);
3939
LLVM::LLVMFuncOp lookupOrCreatePrintF32Fn(ModuleOp moduleOp);
4040
LLVM::LLVMFuncOp lookupOrCreatePrintF64Fn(ModuleOp moduleOp);
41-
LLVM::LLVMFuncOp lookupOrCreatePrintCStringFn(ModuleOp moduleOp,
42-
bool opaquePointers);
41+
LLVM::LLVMFuncOp lookupOrCreatePrintStringFn(ModuleOp moduleOp,
42+
bool opaquePointers);
4343
LLVM::LLVMFuncOp lookupOrCreatePrintOpenFn(ModuleOp moduleOp);
4444
LLVM::LLVMFuncOp lookupOrCreatePrintCloseFn(ModuleOp moduleOp);
4545
LLVM::LLVMFuncOp lookupOrCreatePrintCommaFn(ModuleOp moduleOp);

mlir/include/mlir/ExecutionEngine/CRunnerUtils.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ extern "C" MLIR_CRUNNERUTILS_EXPORT void printI64(int64_t i);
465465
extern "C" MLIR_CRUNNERUTILS_EXPORT void printU64(uint64_t u);
466466
extern "C" MLIR_CRUNNERUTILS_EXPORT void printF32(float f);
467467
extern "C" MLIR_CRUNNERUTILS_EXPORT void printF64(double d);
468+
extern "C" MLIR_CRUNNERUTILS_EXPORT void printString(char const *s);
468469
extern "C" MLIR_CRUNNERUTILS_EXPORT void printOpen();
469470
extern "C" MLIR_CRUNNERUTILS_EXPORT void printClose();
470471
extern "C" MLIR_CRUNNERUTILS_EXPORT void printComma();

mlir/lib/Conversion/LLVMCommon/PrintCallHelper.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void mlir::LLVM::createPrintStrCall(OpBuilder &builder, Location loc,
6060
Value gep = builder.create<LLVM::GEPOp>(
6161
loc, typeConverter.getPointerType(builder.getI8Type()), arrayTy, msgAddr,
6262
indices);
63-
Operation *printer = LLVM::lookupOrCreatePrintCStringFn(
63+
Operation *printer = LLVM::lookupOrCreatePrintStringFn(
6464
moduleOp, typeConverter.useOpaquePointers());
6565
builder.create<LLVM::CallOp>(loc, TypeRange(), SymbolRefAttr::get(printer),
6666
gep);

mlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ static constexpr llvm::StringRef kPrintF16 = "printF16";
3030
static constexpr llvm::StringRef kPrintBF16 = "printBF16";
3131
static constexpr llvm::StringRef kPrintF32 = "printF32";
3232
static constexpr llvm::StringRef kPrintF64 = "printF64";
33-
static constexpr llvm::StringRef kPrintCString = "printCString";
33+
static constexpr llvm::StringRef kPrintString = "printString";
3434
static constexpr llvm::StringRef kPrintOpen = "printOpen";
3535
static constexpr llvm::StringRef kPrintClose = "printClose";
3636
static constexpr llvm::StringRef kPrintComma = "printComma";
@@ -107,9 +107,9 @@ static LLVM::LLVMPointerType getVoidPtr(MLIRContext *context,
107107
return getCharPtr(context, opaquePointers);
108108
}
109109

110-
LLVM::LLVMFuncOp mlir::LLVM::lookupOrCreatePrintCStringFn(ModuleOp moduleOp,
111-
bool opaquePointers) {
112-
return lookupOrCreateFn(moduleOp, kPrintCString,
110+
LLVM::LLVMFuncOp mlir::LLVM::lookupOrCreatePrintStringFn(ModuleOp moduleOp,
111+
bool opaquePointers) {
112+
return lookupOrCreateFn(moduleOp, kPrintString,
113113
getCharPtr(moduleOp->getContext(), opaquePointers),
114114
LLVM::LLVMVoidType::get(moduleOp->getContext()));
115115
}

mlir/lib/ExecutionEngine/CRunnerUtils.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ extern "C" void printI64(int64_t i) { fprintf(stdout, "%" PRId64, i); }
5252
extern "C" void printU64(uint64_t u) { fprintf(stdout, "%" PRIu64, u); }
5353
extern "C" void printF32(float f) { fprintf(stdout, "%g", f); }
5454
extern "C" void printF64(double d) { fprintf(stdout, "%lg", d); }
55+
extern "C" void printString(char const *s) { fputs(s, stdout); }
5556
extern "C" void printOpen() { fputs("( ", stdout); }
5657
extern "C" void printClose() { fputs(" )", stdout); }
5758
extern "C" void printComma() { fputs(", ", stdout); }

mlir/lib/ExecutionEngine/RunnerUtils.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,10 @@ extern "C" void printMemrefC64(int64_t rank, void *ptr) {
158158
_mlir_ciface_printMemrefC64(&descriptor);
159159
}
160160

161-
extern "C" void printCString(char *str) { printf("%s", str); }
161+
extern "C" void printCString(char *str) { fputs(str, stdout); }
162+
extern "C" void printString(char const *str) {
163+
printCString(const_cast<char *>(str));
164+
}
162165

163166
extern "C" void _mlir_ciface_printMemref0dF32(StridedMemRefType<float, 0> *M) {
164167
impl::printMemRef(*M);

mlir/test/Conversion/ControlFlowToLLVM/assert.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ func.func @main() {
1010
return
1111
}
1212

13-
// CHECK: llvm.func @printCString(!llvm.ptr)
13+
// CHECK: llvm.func @printString(!llvm.ptr)
1414

1515
// CHECK-LABEL: @main
1616
// CHECK: llvm.cond_br %{{.*}}, ^{{.*}}, ^[[FALSE_BRANCH:[[:alnum:]]+]]
1717

1818
// CHECK: ^[[FALSE_BRANCH]]:
1919
// CHECK: %[[ADDRESS_OF:.*]] = llvm.mlir.addressof @{{.*}} : !llvm.ptr{{$}}
2020
// CHECK: %[[GEP:.*]] = llvm.getelementptr %[[ADDRESS_OF]][0] : (!llvm.ptr) -> !llvm.ptr, !llvm.array<{{[0-9]+}} x i8>
21-
// CHECK: llvm.call @printCString(%[[GEP]]) : (!llvm.ptr) -> ()
21+
// CHECK: llvm.call @printString(%[[GEP]]) : (!llvm.ptr) -> ()

mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1069,12 +1069,12 @@ func.func @vector_print_scalar_f64(%arg0: f64) {
10691069
// -----
10701070

10711071
// CHECK-LABEL: module {
1072-
// CHECK: llvm.func @printCString(!llvm.ptr)
1072+
// CHECK: llvm.func @printString(!llvm.ptr)
10731073
// CHECK: llvm.mlir.global private constant @[[GLOBAL_STR:.*]]({{.*}})
10741074
// CHECK: @vector_print_string
10751075
// CHECK-NEXT: %[[GLOBAL_ADDR:.*]] = llvm.mlir.addressof @[[GLOBAL_STR]] : !llvm.ptr
10761076
// CHECK-NEXT: %[[STR_PTR:.*]] = llvm.getelementptr %[[GLOBAL_ADDR]][0] : (!llvm.ptr) -> !llvm.ptr
1077-
// CHECK-NEXT: llvm.call @printCString(%[[STR_PTR]]) : (!llvm.ptr) -> ()
1077+
// CHECK-NEXT: llvm.call @printString(%[[STR_PTR]]) : (!llvm.ptr) -> ()
10781078
func.func @vector_print_string() {
10791079
vector.print str "Hello, World!"
10801080
return

0 commit comments

Comments
 (0)