@@ -33,40 +33,53 @@ class LLVMFuncOp;
3333// / implemented separately (e.g. as part of a support runtime library or as part
3434// / of the libc).
3535// / Failure if an unexpected version of function is found.
36- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintI64Fn (Operation *moduleOp);
37- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintU64Fn (Operation *moduleOp);
38- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF16Fn (Operation *moduleOp);
39- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintBF16Fn (Operation *moduleOp);
40- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF32Fn (Operation *moduleOp);
41- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF64Fn (Operation *moduleOp);
36+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintI64Fn (OpBuilder &b,
37+ Operation *moduleOp);
38+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintU64Fn (OpBuilder &b,
39+ Operation *moduleOp);
40+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF16Fn (OpBuilder &b,
41+ Operation *moduleOp);
42+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintBF16Fn (OpBuilder &b,
43+ Operation *moduleOp);
44+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF32Fn (OpBuilder &b,
45+ Operation *moduleOp);
46+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintF64Fn (OpBuilder &b,
47+ Operation *moduleOp);
4248// / Declares a function to print a C-string.
4349// / If a custom runtime function is defined via `runtimeFunctionName`, it must
4450// / have the signature void(char const*). The default function is `printString`.
4551FailureOr<LLVM::LLVMFuncOp>
46- lookupOrCreatePrintStringFn (Operation *moduleOp,
52+ lookupOrCreatePrintStringFn (OpBuilder &b, Operation *moduleOp,
4753 std::optional<StringRef> runtimeFunctionName = {});
48- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintOpenFn (Operation *moduleOp);
49- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintCloseFn (Operation *moduleOp);
50- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintCommaFn (Operation *moduleOp);
51- FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintNewlineFn (Operation *moduleOp);
52- FailureOr<LLVM::LLVMFuncOp> lookupOrCreateMallocFn (Operation *moduleOp,
53- Type indexType);
54- FailureOr<LLVM::LLVMFuncOp> lookupOrCreateAlignedAllocFn (Operation *moduleOp,
55- Type indexType);
56- FailureOr<LLVM::LLVMFuncOp> lookupOrCreateFreeFn (Operation *moduleOp);
57- FailureOr<LLVM::LLVMFuncOp> lookupOrCreateGenericAllocFn (Operation *moduleOp,
58- Type indexType);
54+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintOpenFn (OpBuilder &b,
55+ Operation *moduleOp);
56+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintCloseFn (OpBuilder &b,
57+ Operation *moduleOp);
58+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintCommaFn (OpBuilder &b,
59+ Operation *moduleOp);
60+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreatePrintNewlineFn (OpBuilder &b,
61+ Operation *moduleOp);
5962FailureOr<LLVM::LLVMFuncOp>
60- lookupOrCreateGenericAlignedAllocFn (Operation *moduleOp, Type indexType);
61- FailureOr<LLVM::LLVMFuncOp> lookupOrCreateGenericFreeFn (Operation *moduleOp);
63+ lookupOrCreateMallocFn (OpBuilder &b, Operation *moduleOp, Type indexType);
6264FailureOr<LLVM::LLVMFuncOp>
63- lookupOrCreateMemRefCopyFn (Operation *moduleOp, Type indexType,
65+ lookupOrCreateAlignedAllocFn (OpBuilder &b, Operation *moduleOp, Type indexType);
66+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreateFreeFn (OpBuilder &b,
67+ Operation *moduleOp);
68+ FailureOr<LLVM::LLVMFuncOp>
69+ lookupOrCreateGenericAllocFn (OpBuilder &b, Operation *moduleOp, Type indexType);
70+ FailureOr<LLVM::LLVMFuncOp>
71+ lookupOrCreateGenericAlignedAllocFn (OpBuilder &b, Operation *moduleOp,
72+ Type indexType);
73+ FailureOr<LLVM::LLVMFuncOp> lookupOrCreateGenericFreeFn (OpBuilder &b,
74+ Operation *moduleOp);
75+ FailureOr<LLVM::LLVMFuncOp>
76+ lookupOrCreateMemRefCopyFn (OpBuilder &b, Operation *moduleOp, Type indexType,
6477 Type unrankedDescriptorType);
6578
6679// / Create a FuncOp with signature `resultType`(`paramTypes`)` and name `name`.
6780// / Return a failure if the FuncOp found has unexpected signature.
6881FailureOr<LLVM::LLVMFuncOp>
69- lookupOrCreateFn (Operation *moduleOp, StringRef name,
82+ lookupOrCreateFn (OpBuilder &b, Operation *moduleOp, StringRef name,
7083 ArrayRef<Type> paramTypes = {}, Type resultType = {},
7184 bool isVarArg = false , bool isReserved = false );
7285
0 commit comments