6#include <clang-c/Index.h>
7#include <aclspv/spvty.h>
10#include "../vec.auto.h"
18
19
20
24
25
26
30
31
32
33
34
36 aclspv_id_t m_type_id;
37 aclspv_id_t m_ptr_type_id;
40
41
42
43
44
45
46 aclspv_id_t m_init_val_0;
47 aclspv_id_t m_init_val_1;
50
51
52
53
54
55
60
61
62
63
64
65
66
67
71
72
73
74
78
79
80
81
91
92
93
94
117
118
122 const CXCursor c_cursor_to_find
126 unless(rd_cursors)
return c_num_cursor;
129 if(clang_equalCursors(rd_cursors[IDX]
.m_cursor, c_cursor_to_find))
133 if(IDX < c_num_cursor)
143 const CXCursor c_cursor_to_add
148 IDX = util_find_cursor(c_num_cursor, h_cursors->m_p, c_cursor_to_add);
149 {
ae2f_assume((size_t)(c_num_cursor *
sizeof(util_cursor)) >= h_cursors->m_sz); }
150 unless(IDX == c_num_cursor)
return IDX;
152 _aclspv_grow_vec_with_copy(
158 , ((size_t)((c_num_cursor + 1) *
sizeof(util_cursor)))
162 return c_num_cursor + 1;
168ae2f_inline static e_aclspv_compile_t util_tell_cursor_lbl(
171 const h_util_ctx_t h_ctx
174 assert(wr_cursor || !c_num_cursor);
177#define CURSORDATA wr_cursor[IDX].m_data.m_var_simple
178 if(wr_cursor[IDX]
.m_cursor.kind == CXCursor_VarDecl) {
184 &h_ctx->m_section.m_fndef
185 , h_ctx->m_count.m_fndef
188 , SpvStorageClassFunction))
189 return ACLSPV_COMPILE_ALLOC_FAILED;
195 return ACLSPV_COMPILE_OK;
#define ae2f_WhenCXX(a)
Appears when the current language is C.
#define ae2f_WhenC(a)
Appears when the current language is C++.
#define unless(a)
Invokes when condition is false.
#define ae2f_extern
Suggests the existence of external variable or function, in naming of C. [non-mangling].
#define ACLSPV_ABI_DECL
Declaration as ABI.
#define ae2f_retnew
The returning pointer does not alias to existing object.
#define ae2f_assume(a)
tells the compiler that value if a is false, below this keyword is not expected to be reached.
#define ae2f_unexpected_but_if(a)
#define ae2f_ccpure
Keyword as [[pure]] on C23.
#define ae2f_expected_but_else(a)
#define ae2f_expected_if(a)
#define ae2f_ccconst
Keyword as [[const]] on C23..
#define ae2f_noexcept
marker that this function does not throw something.
#define ae2f_restrict
Keyword as restrict on C99.
#define ae2f_expected_not(a)
expectes a as false.
#define ae2f_unreachable()
tells the compiler that below this keyword is not expected to be reached.
#define ae2f_fallthrough
explicitly tells compiler that fallthrough on switch is expected.
#define ae2f_inline
inline
#define ae2f_expected(a)
expectes a as true.
#define util_emitx_spec_constant(h_wrds, c_wrdcount, c_ty, c_retid, c_val)
#define util_emitx_variable(h_wrds, c_wrdcount, c_type, c_retid, c_storage_class)
#define util_emitx_spec_constant_op2(h_wrds, c_wrdcount, c_retid, c_ty, c_operator, c_opr_0, c_opr_1)
#define util_emitx_type_array(h_wrds, c_wrdcount, c_retid, c_elm_type_id, c_arrcount_id)
#define util_emitx_type_pointer(h_wrds, c_wrdcount, c_retid, c_storage_class, c_elm_type_id)
#define ___mkname_on_dbg(c_ID)
#define get_buf_from_scale(h_alloc, c_scale)
#define get_last_scale_from_vec(h_alloc)
#define get_prv_from_scale(h_alloc, c_scale)
#define SCALE_HEADER_SIZE
#define get_first_scale_from_vec(h_alloc)
#define get_nxt_from_scale(h_alloc, c_scale)
#define get_scale_header_from_vec(h_alloc)
#define aclspv_opcode_t
integer as operation code
aclspv_wrd_t aclspv_wrdcount_t
the integer type represents the number of word.
#define ACLSPV_MASK_OPCODE
mask for opcode
#define aclspv_wrd_t
integer as word
#define ACLSPV_MASK_NOPRNDS
mask for number of operands
x_aclspv_vec m_scale_vars
aclspv_wrdcount_t m_num_type_uniques
x_aclspv_vec m_cursors
cache for cursors for parsing one function for its use see util/cursor.h
x_aclspv_vec m_constant_cache
x_aclspv_vec m_ret
word count for m_ret
aclspv_wrd_t m_is_logical
when on, ignores m_is_buffer_64.
aclspv_wrdcount_t m_num_cursor
number of m_cursors. for its use see util/cursor.h
x_aclspv_vec m_type_uniques
cache for complex types which needs to be stored somewhere for its use see util/type_unique....
CXCursor m_cursor
CXCursorKind could be retrieved here
aclspv_id_t m_id
label id for goto
aclspv_wrd_t m_is_allocated
aclspv_wrd_t m_met_branch
aclspv_wrdcount_t m_arr_count_id
util_bind_unified m_unified
#define mk_noprnds(c_num_opprm)
#define emit_opcode(h_wrds, c_wrdcount, c_opcode, c_num_opprm_opt)
try emit opcode with num_opprm
#define sz_to_count(c_sz)
byte size to word count
#define get_wrd_of_vec(vec)
get word buffer from vector
aclspv_wrdcount_t spvsz_t
#define count_to_sz(c_count)
word count to byte size
#define set_oprnd_count_for_opcode(cr_wrd, c_num_opprm)
#define opcode_to_wrd(c_opcode, c_num_opprm)