[TVM][Codegen] I want to know what happens Mutate method in Split method(split_host_device.cc)

I found that all of LoweredFunc’s default functype is kMixedFunc.
So, in split_dev_host_funcs, all of LoweredFunc go into ir::SplitHostDevice(func) and Split(func).

Could you explain the process of dividing host function and device function through Mutate function in Split (func) function?