Skip to content

Commit 4ee3467

Browse files
committed
cleanup
1 parent cb8d8db commit 4ee3467

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

src/device/intrinsics/output.jl

+20-18
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,26 @@ end
7575
T_pint8 = LLVM.PointerType(LLVM.Int8Type())
7676
T_pint8a2 = LLVM.PointerType(LLVM.Int8Type(), 2)
7777

78+
79+
7880
# create functions
7981
param_types = LLVMType[convert(LLVMType, typ) for typ in arg_types]
80-
llvm_f, llvm_ft = create_function(T_void, LLVMType[]; vararg=true)
81-
mod = LLVM.parent(llvm_f)
82+
wrapper_f, wrapper_ft = create_function(T_void, param_types)
83+
mod = LLVM.parent(wrapper_f)
84+
85+
llvm_ft = LLVM.FunctionType(T_void, LLVMType[]; vararg=true)
86+
llvm_f = LLVM.Function(mod, "vararg", llvm_ft)
87+
push!(function_attributes(llvm_f), EnumAttribute("alwaysinline", 0))
8288

8389
# generate IR
8490
@dispose builder=IRBuilder() begin
8591
entry = BasicBlock(llvm_f, "entry")
8692
position!(builder, entry)
8793

8894
str = globalstring_ptr!(builder, String(fmt), addrspace=2)
95+
subsystem_str = globalstring_ptr!(builder, MTLLOG_SUBSYSTEM, addrspace=2)
96+
category_str = globalstring_ptr!(builder, MTLLOG_CATEGRORY, addrspace=2)
97+
log_type = LLVM.ConstantInt(T_int32, __METAL_OS_LOG_TYPE_DEBUG__)
8998

9099
# compute argsize
91100
argtypes = LLVM.StructType(param_types)
@@ -103,16 +112,11 @@ end
103112
va_start_fty = LLVM.FunctionType(T_void, [T_pint8])
104113
va_start = LLVM.Function(mod, "llvm.va_start", va_start_fty)
105114
call!(builder, va_start_fty, va_start, [buffer])
106-
107-
# invoke @air.os_log and return
108-
subsystem_str = globalstring_ptr!(builder, MTLLOG_SUBSYSTEM, addrspace=2)
109-
category_str = globalstring_ptr!(builder, MTLLOG_CATEGRORY, addrspace=2)
110-
log_type = LLVM.ConstantInt(T_int32, __METAL_OS_LOG_TYPE_DEBUG__)
111-
os_log_fty = LLVM.FunctionType(T_void, [T_pint8a2, T_pint8a2, T_int32, T_pint8a2, T_pint8, T_int64])
112-
os_log = LLVM.Function(mod, "air.os_log", os_log_fty)
113115

114116
arg_ptr = load!(builder, T_pint8, alloc)
115117

118+
os_log_fty = LLVM.FunctionType(T_void, [T_pint8a2, T_pint8a2, T_int32, T_pint8a2, T_pint8, T_int64])
119+
os_log = LLVM.Function(mod, "air.os_log", os_log_fty)
116120
call!(builder, os_log_fty, os_log, [subsystem_str, category_str, log_type, str, arg_ptr, arg_size])
117121

118122
va_end_fty = LLVM.FunctionType(T_void, [T_pint8])
@@ -126,19 +130,17 @@ end
126130
ret!(builder)
127131
end
128132

129-
wrapper_f, wrapper_ft = create_function(T_void, param_types)
130-
131-
@dispose builder=IRBuilder() begin
132-
entry = BasicBlock(wrapper_f, "entry")
133-
position!(builder, entry)
133+
# @dispose builder=IRBuilder() begin
134+
# entry = BasicBlock(wrapper_f, "entry")
135+
# position!(builder, entry)
134136

135-
# call!(builder, llvm_ft, llvm_f, collect(parameters(wrapper_f)))
137+
# call!(builder, llvm_ft, llvm_f, collect(parameters(wrapper_f)))
136138

137-
ret!(builder)
138-
end
139+
# ret!(builder)
140+
# end
139141

140142

141-
call_function(wrapper_f, Nothing, Tuple{arg_types...}, arg_exprs...)
143+
call_function(llvm_f, Nothing, Tuple{arg_types...}, arg_exprs...)
142144
end
143145
end
144146

0 commit comments

Comments
 (0)