blob: ca8648b8118bce9e42a2c5849bbd7e13067b75d1 [file] [log] [blame]
module @main {
util.global private @tokens_list : !util.list<?>
func.func private @detokenizer.accumtokens(tensor<?xi32>, !util.list<?>) -> i32
func.func private @detokenizer.jointokens(!util.list<?>) -> !util.buffer
func.func private @detokenizer.reset()
util.initializer {
%capacity = arith.constant 25 : index
%0 = util.list.create %capacity : !util.list<?>
util.global.store %0, @tokens_list : !util.list<?>
util.return
}
func.func public @add_tokens(%ids : tensor<?xi32>) -> i32 {
%lst = util.global.load @tokens_list : !util.list<?>
%count = call @detokenizer.accumtokens(%ids, %lst) : (tensor<?xi32>, !util.list<?>) -> (i32)
return %count : i32
}
func.func public @reset() {
%zero = arith.constant 0 : index
%lst = util.global.load @tokens_list : !util.list<?>
util.list.resize %lst, %zero : !util.list<?>
call @detokenizer.reset() : () -> ()
return
}
func.func public @get_results() -> !util.buffer {
%lst = util.global.load @tokens_list : !util.list<?>
%buffer = call @detokenizer.jointokens(%lst) : (!util.list<?>) -> (!util.buffer)
return %buffer : !util.buffer
}
}