1 | #pragma once |
---|---|
2 | |
3 | #include <vector> |
4 | |
5 | #include "taichi/common/core.h" |
6 | #include "taichi/common/serialization.h" |
7 | |
8 | namespace taichi::lang { |
9 | |
10 | // TODO: It would be better if this can be unified with Callable::Arg. However, |
11 | // Callable::Arg is not easily serializable. |
12 | struct LlvmLaunchArgInfo { |
13 | bool is_array{false}; |
14 | |
15 | TI_IO_DEF(is_array); |
16 | |
17 | bool operator==(const LlvmLaunchArgInfo &other) const; |
18 | bool operator!=(const LlvmLaunchArgInfo &other) const { |
19 | return !(*this == other); |
20 | } |
21 | }; |
22 | |
23 | class Kernel; |
24 | |
25 | std::vector<LlvmLaunchArgInfo> infer_launch_args(const Kernel *kernel); |
26 | |
27 | } // namespace taichi::lang |
28 |