|
#define | IR_ASSERT(x) |
|
#define | __has_builtin(x) |
|
#define | EXPECTED(condition) |
|
#define | UNEXPECTED(condition) |
|
#define | IR_SET_ALIGNED(alignment, decl) |
|
#define | IR_FALLTHROUGH ((void)0) |
|
#define | IR_ALIGNED_SIZE(size, alignment) |
|
#define | IR_MAX(a, b) |
|
#define | IR_MIN(a, b) |
|
#define | IR_IS_POWER_OF_TWO(x) |
|
#define | IR_LOG2(x) |
|
#define | IR_BITSET_BITS 64 |
|
#define | IR_BITSET_ONE 1UL |
|
#define | ir_bitset_base_t uint64_t |
|
#define | ir_bitset_ntz ir_ntzl |
|
#define | IR_BITSET_FOREACH(set, len, bit) |
|
#define | IR_BITSET_FOREACH_DIFFERENCE(set1, set2, len, bit) |
|
#define | IR_BITSET_FOREACH_END() |
|
#define | IR_SPARSE_SET_DENSE(set, n) |
|
#define | IR_SPARSE_SET_SPARSE(set, n) |
|
#define | IR_SPARSE_SET_FOREACH(set, bit) |
|
#define | IR_SPARSE_SET_FOREACH_END() |
|
#define | IR_INVALID_IDX 0xffffffff |
|
#define | IR_INVALID_VAL 0x80000000 |
|
#define | IR_IS_CONST_OP(op) |
|
#define | IR_IS_FOLDABLE_OP(op) |
|
#define | IR_IS_SYM_CONST(op) |
|
#define | IR_OP_FLAG_OPERANDS_SHIFT 3 |
|
#define | IR_OP_FLAG_EDGES_MASK 0x03 |
|
#define | IR_OP_FLAG_VAR_INPUTS 0x04 |
|
#define | IR_OP_FLAG_OPERANDS_MASK 0x18 |
|
#define | IR_OP_FLAG_MEM_MASK ((1<<6)|(1<<7)) |
|
#define | IR_OP_FLAG_DATA (1<<8) |
|
#define | IR_OP_FLAG_CONTROL (1<<9) |
|
#define | IR_OP_FLAG_MEM (1<<10) |
|
#define | IR_OP_FLAG_COMMUTATIVE (1<<11) |
|
#define | IR_OP_FLAG_BB_START (1<<12) |
|
#define | IR_OP_FLAG_BB_END (1<<13) |
|
#define | IR_OP_FLAG_TERMINATOR (1<<14) |
|
#define | IR_OP_FLAG_PINNED (1<<15) |
|
#define | IR_OP_FLAG_MEM_LOAD ((0<<6)|(0<<7)) |
|
#define | IR_OP_FLAG_MEM_STORE ((0<<6)|(1<<7)) |
|
#define | IR_OP_FLAG_MEM_CALL ((1<<6)|(0<<7)) |
|
#define | IR_OP_FLAG_MEM_ALLOC ((1<<6)|(1<<7)) |
|
#define | IR_OP_FLAG_MEM_MASK ((1<<6)|(1<<7)) |
|
#define | IR_OPND_UNUSED 0x0 |
|
#define | IR_OPND_DATA 0x1 |
|
#define | IR_OPND_CONTROL 0x2 |
|
#define | IR_OPND_CONTROL_DEP 0x3 |
|
#define | IR_OPND_CONTROL_REF 0x4 |
|
#define | IR_OPND_STR 0x5 |
|
#define | IR_OPND_NUM 0x6 |
|
#define | IR_OPND_PROB 0x7 |
|
#define | IR_OPND_PROTO 0x8 |
|
#define | IR_OP_FLAGS(op_flags, op1_flags, op2_flags, op3_flags) |
|
#define | IR_INPUT_EDGES_COUNT(flags) |
|
#define | IR_OPERANDS_COUNT(flags) |
|
#define | IR_OP_HAS_VAR_INPUTS(flags) |
|
#define | IR_OPND_KIND(flags, i) |
|
#define | IR_IS_REF_OPND_KIND(kind) |
|
#define | IR_CFG_HAS_LOOPS (1<<0) |
|
#define | IR_IRREDUCIBLE_CFG (1<<1) |
|
#define | IR_HAS_ALLOCA (1<<2) |
|
#define | IR_HAS_CALLS (1<<3) |
|
#define | IR_OPT_IN_SCCP (1<<4) |
|
#define | IR_LINEAR (1<<5) |
|
#define | IR_HAS_VA_START (1<<6) |
|
#define | IR_HAS_VA_COPY (1<<7) |
|
#define | IR_HAS_VA_ARG_GP (1<<8) |
|
#define | IR_HAS_VA_ARG_FP (1<<9) |
|
#define | IR_HAS_FP_RET_SLOT (1<<10) |
|
#define | IR_16B_FRAME_ALIGNMENT (1<<11) |
|
#define | IR_MEM2SSA_VARS (1<<25) |
|
#define | IR_CFG_REACHABLE (1<<26) |
|
#define | IR_NO_LOOPS (1<<25) |
|
#define | IR_LR_HAVE_DESSA_MOVES (1<<25) |
|
#define | IR_RA_HAVE_SPLITS (1<<25) |
|
#define | IR_RA_HAVE_SPILLS (1<<26) |
|
#define | IR_RESERVED_FLAG_1 (1U<<31) |
|
#define | MAKE_NOP(_insn) |
|
#define | CLEAR_USES(_ref) |
|
#define | SWAP_REFS(_ref1, _ref2) |
|
#define | SWAP_INSNS(_insn1, _insn2) |
|
#define | IR_IS_BB_START(op) |
|
#define | IR_IS_BB_MERGE(op) |
|
#define | IR_IS_BB_END(op) |
|
#define | IR_BB_UNREACHABLE (1<<0) |
|
#define | IR_BB_START (1<<1) |
|
#define | IR_BB_ENTRY (1<<2) |
|
#define | IR_BB_LOOP_HEADER (1<<3) |
|
#define | IR_BB_IRREDUCIBLE_LOOP (1<<4) |
|
#define | IR_BB_DESSA_MOVES (1<<5) /* translation out of SSA requires MOVEs */ |
|
#define | IR_BB_EMPTY (1<<6) |
|
#define | IR_BB_PREV_EMPTY_ENTRY (1<<7) |
|
#define | IR_BB_OSR_ENTRY_LOADS (1<<8) /* OSR Entry-point with register LOADs */ |
|
#define | IR_BB_LOOP_WITH_ENTRY (1<<9) /* set together with LOOP_HEADER if there is an ENTRY in the loop */ |
|
#define | IR_BB_HAS_PHI (1<<10) |
|
#define | IR_BB_HAS_PI (1<<11) |
|
#define | IR_BB_HAS_PARAM (1<<12) |
|
#define | IR_BB_HAS_VAR (1<<13) |
|
#define | IR_BB_ALIGN_LOOP (1<<14) |
|
#define | IR_SUB_REFS_COUNT 4 |
|
#define | IR_LOAD_SUB_REF 0 |
|
#define | IR_USE_SUB_REF 1 |
|
#define | IR_DEF_SUB_REF 2 |
|
#define | IR_SAVE_SUB_REF 3 |
|
#define | IR_LIVE_POS_TO_REF(pos) |
|
#define | IR_LIVE_POS_TO_SUB_REF(pos) |
|
#define | IR_LIVE_POS_FROM_REF(ref) |
|
#define | IR_START_LIVE_POS_FROM_REF(ref) |
|
#define | IR_LOAD_LIVE_POS_FROM_REF(ref) |
|
#define | IR_USE_LIVE_POS_FROM_REF(ref) |
|
#define | IR_DEF_LIVE_POS_FROM_REF(ref) |
|
#define | IR_SAVE_LIVE_POS_FROM_REF(ref) |
|
#define | IR_END_LIVE_POS_FROM_REF(ref) |
|
#define | IR_USE_MUST_BE_IN_REG (1<<0) |
|
#define | IR_USE_SHOULD_BE_IN_REG (1<<1) |
|
#define | IR_DEF_REUSES_OP1_REG (1<<2) |
|
#define | IR_DEF_CONFLICTS_WITH_INPUT_REGS (1<<3) |
|
#define | IR_FUSED_USE (1<<6) |
|
#define | IR_PHI_USE (1<<7) |
|
#define | IR_OP1_MUST_BE_IN_REG (1<<8) |
|
#define | IR_OP1_SHOULD_BE_IN_REG (1<<9) |
|
#define | IR_OP2_MUST_BE_IN_REG (1<<10) |
|
#define | IR_OP2_SHOULD_BE_IN_REG (1<<11) |
|
#define | IR_OP3_MUST_BE_IN_REG (1<<12) |
|
#define | IR_OP3_SHOULD_BE_IN_REG (1<<13) |
|
#define | IR_USE_FLAGS(def_flags, op_num) |
|
#define | IR_LIVE_INTERVAL_FIXED (1<<0) |
|
#define | IR_LIVE_INTERVAL_TEMP (1<<1) |
|
#define | IR_LIVE_INTERVAL_HAS_HINT_REGS (1<<2) |
|
#define | IR_LIVE_INTERVAL_HAS_HINT_REFS (1<<3) |
|
#define | IR_LIVE_INTERVAL_MEM_PARAM (1<<4) |
|
#define | IR_LIVE_INTERVAL_MEM_LOAD (1<<5) |
|
#define | IR_LIVE_INTERVAL_COALESCED (1<<6) |
|
#define | IR_LIVE_INTERVAL_SPILL_SPECIAL (1<<7) /* spill slot is pre-allocated in a special area (see ir_ctx.spill_reserved_base) */ |
|
#define | IR_LIVE_INTERVAL_SPILLED (1<<8) |
|
#define | IR_LIVE_INTERVAL_SPLIT_CHILD (1<<9) |
|
#define | IR_FUSED (1U<<31) /* Insn is fused into others (code is generated as part of the fusion root) */ |
|
#define | IR_SKIPPED (1U<<30) /* Insn is skipped (code is not generated) */ |
|
#define | IR_SIMPLE (1U<<29) /* Insn doesn't have any target constraints */ |
|
#define | IR_FUSED_REG (1U<<28) /* Register assignemnt may be stored in ctx->fused_regs instead of ctx->regs */ |
|
#define | IR_MAY_SWAP (1U<<27) /* Allow swapping operands for better register allocation */ |
|
#define | IR_MAY_REUSE (1U<<26) /* Result may reuse register of the source */ |
|
#define | IR_RULE_MASK 0xff |
|
#define | IR_TMP_REG(_num, _type, _start, _end) |
|
#define | IR_SCRATCH_REG(_reg, _start, _end) |
|
|
IR_ALWAYS_INLINE uint8_t | ir_rol8 (uint8_t op1, uint8_t op2) |
|
IR_ALWAYS_INLINE uint16_t | ir_rol16 (uint16_t op1, uint16_t op2) |
|
IR_ALWAYS_INLINE uint32_t | ir_rol32 (uint32_t op1, uint32_t op2) |
|
IR_ALWAYS_INLINE uint64_t | ir_rol64 (uint64_t op1, uint64_t op2) |
|
IR_ALWAYS_INLINE uint8_t | ir_ror8 (uint8_t op1, uint8_t op2) |
|
IR_ALWAYS_INLINE uint16_t | ir_ror16 (uint16_t op1, uint16_t op2) |
|
IR_ALWAYS_INLINE uint32_t | ir_ror32 (uint32_t op1, uint32_t op2) |
|
IR_ALWAYS_INLINE uint64_t | ir_ror64 (uint64_t op1, uint64_t op2) |
|
IR_ALWAYS_INLINE uint32_t | ir_ntz (uint32_t num) |
|
IR_ALWAYS_INLINE uint32_t | ir_ntzl (uint64_t num) |
|
IR_ALWAYS_INLINE int | ir_nlz (uint32_t num) |
|
IR_ALWAYS_INLINE int | ir_nlzl (uint64_t num) |
|
IR_ALWAYS_INLINE ir_arena * | ir_arena_create (size_t size) |
|
IR_ALWAYS_INLINE void | ir_arena_free (ir_arena *arena) |
|
IR_ALWAYS_INLINE void * | ir_arena_alloc (ir_arena **arena_ptr, size_t size) |
|
IR_ALWAYS_INLINE void * | ir_arena_checkpoint (ir_arena *arena) |
|
IR_ALWAYS_INLINE void | ir_release (ir_arena **arena_ptr, void *checkpoint) |
|
IR_ALWAYS_INLINE uint32_t | ir_bitset_len (uint32_t n) |
|
IR_ALWAYS_INLINE ir_bitset | ir_bitset_malloc (uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitset_incl (ir_bitset set, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitset_excl (ir_bitset set, uint32_t n) |
|
IR_ALWAYS_INLINE bool | ir_bitset_in (const ir_bitset set, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitset_clear (ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_bitset_fill (ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE bool | ir_bitset_empty (const ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE bool | ir_bitset_equal (const ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_bitset_copy (ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_bitset_intersection (ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_bitset_union (ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_bitset_difference (ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE bool | ir_bitset_is_subset (const ir_bitset set1, const ir_bitset set2, uint32_t len) |
|
IR_ALWAYS_INLINE int | ir_bitset_first (const ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE int | ir_bitset_last (const ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE int | ir_bitset_pop_first (ir_bitset set, uint32_t len) |
|
IR_ALWAYS_INLINE void | ir_sparse_set_init (ir_sparse_set *set, uint32_t size) |
|
IR_ALWAYS_INLINE void | ir_sparse_set_clear (ir_sparse_set *set) |
|
IR_ALWAYS_INLINE void | ir_sparse_set_free (ir_sparse_set *set) |
|
IR_ALWAYS_INLINE bool | ir_sparse_set_empty (const ir_sparse_set *set) |
|
IR_ALWAYS_INLINE bool | ir_sparse_set_in (const ir_sparse_set *set, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_sparse_set_add (ir_sparse_set *set, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_sparse_set_del (ir_sparse_set *set, uint32_t n) |
|
IR_ALWAYS_INLINE uint32_t | ir_sparse_set_pop (ir_sparse_set *set) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_init (ir_bitqueue *q, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_grow (ir_bitqueue *q, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_free (ir_bitqueue *q) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_clear (ir_bitqueue *q) |
|
IR_ALWAYS_INLINE int | ir_bitqueue_pop (ir_bitqueue *q) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_add (ir_bitqueue *q, uint32_t n) |
|
IR_ALWAYS_INLINE void | ir_bitqueue_del (ir_bitqueue *q, uint32_t n) |
|
IR_ALWAYS_INLINE bool | ir_bitqueue_in (const ir_bitqueue *q, uint32_t n) |
|
void | ir_array_grow (ir_array *a, uint32_t size) |
|
void | ir_array_insert (ir_array *a, uint32_t i, ir_ref val) |
|
void | ir_array_remove (ir_array *a, uint32_t i) |
|
IR_ALWAYS_INLINE void | ir_array_init (ir_array *a, uint32_t size) |
|
IR_ALWAYS_INLINE void | ir_array_free (ir_array *a) |
|
IR_ALWAYS_INLINE uint32_t | ir_array_size (const ir_array *a) |
|
IR_ALWAYS_INLINE ir_ref | ir_array_get (const ir_array *a, uint32_t i) |
|
IR_ALWAYS_INLINE ir_ref | ir_array_at (const ir_array *a, uint32_t i) |
|
IR_ALWAYS_INLINE void | ir_array_set (ir_array *a, uint32_t i, ir_ref val) |
|
IR_ALWAYS_INLINE void | ir_array_set_unchecked (ir_array *a, uint32_t i, ir_ref val) |
|
uint32_t | ir_list_find (const ir_list *l, ir_ref val) |
|
void | ir_list_insert (ir_list *l, uint32_t i, ir_ref val) |
|
void | ir_list_remove (ir_list *l, uint32_t i) |
|
IR_ALWAYS_INLINE void | ir_list_init (ir_list *l, uint32_t size) |
|
IR_ALWAYS_INLINE void | ir_list_free (ir_list *l) |
|
IR_ALWAYS_INLINE void | ir_list_clear (ir_list *l) |
|
IR_ALWAYS_INLINE uint32_t | ir_list_len (const ir_list *l) |
|
IR_ALWAYS_INLINE uint32_t | ir_list_capasity (const ir_list *l) |
|
IR_ALWAYS_INLINE void | ir_list_push (ir_list *l, ir_ref val) |
|
IR_ALWAYS_INLINE void | ir_list_push_unchecked (ir_list *l, ir_ref val) |
|
IR_ALWAYS_INLINE ir_ref | ir_list_pop (ir_list *l) |
|
IR_ALWAYS_INLINE ir_ref | ir_list_peek (const ir_list *l) |
|
IR_ALWAYS_INLINE ir_ref | ir_list_at (const ir_list *l, uint32_t i) |
|
IR_ALWAYS_INLINE void | ir_list_set (ir_list *l, uint32_t i, ir_ref val) |
|
IR_ALWAYS_INLINE void | ir_list_del (ir_list *l, uint32_t i) |
|
IR_ALWAYS_INLINE bool | ir_list_contains (const ir_list *l, ir_ref val) |
|
IR_ALWAYS_INLINE void | ir_worklist_init (ir_worklist *w, uint32_t size) |
|
IR_ALWAYS_INLINE void | ir_worklist_free (ir_worklist *w) |
|
IR_ALWAYS_INLINE uint32_t | ir_worklist_len (const ir_worklist *w) |
|
IR_ALWAYS_INLINE uint32_t | ir_worklist_capasity (const ir_worklist *w) |
|
IR_ALWAYS_INLINE void | ir_worklist_clear (ir_worklist *w) |
|
IR_ALWAYS_INLINE bool | ir_worklist_push (ir_worklist *w, ir_ref val) |
|
IR_ALWAYS_INLINE ir_ref | ir_worklist_pop (ir_worklist *w) |
|
IR_ALWAYS_INLINE ir_ref | ir_worklist_peek (const ir_worklist *w) |
|
void | ir_hashtab_init (ir_hashtab *tab, uint32_t size) |
|
void | ir_hashtab_free (ir_hashtab *tab) |
|
ir_ref | ir_hashtab_find (const ir_hashtab *tab, uint32_t key) |
|
bool | ir_hashtab_add (ir_hashtab *tab, uint32_t key, ir_ref val) |
|
void | ir_hashtab_key_sort (ir_hashtab *tab) |
|
void | ir_addrtab_init (ir_hashtab *tab, uint32_t size) |
|
void | ir_addrtab_free (ir_hashtab *tab) |
|
ir_ref | ir_addrtab_find (const ir_hashtab *tab, uint64_t key) |
|
void | ir_addrtab_set (ir_hashtab *tab, uint64_t key, ir_ref val) |
|
void | ir_print_escaped_str (const char *s, size_t len, FILE *f) |
|
ir_ref | ir_const_ex (ir_ctx *ctx, ir_val val, uint8_t type, uint32_t optx) |
|
IR_ALWAYS_INLINE bool | ir_const_is_true (const ir_insn *v) |
|
IR_ALWAYS_INLINE bool | ir_ref_is_true (ir_ctx *ctx, ir_ref ref) |
|
IR_ALWAYS_INLINE ir_ref | ir_operands_count (const ir_ctx *ctx, const ir_insn *insn) |
|
IR_ALWAYS_INLINE ir_ref | ir_input_edges_count (const ir_ctx *ctx, const ir_insn *insn) |
|
IR_ALWAYS_INLINE uint32_t | ir_insn_inputs_to_len (uint32_t inputs_count) |
|
IR_ALWAYS_INLINE uint32_t | ir_insn_len (const ir_insn *insn) |
|
void | ir_use_list_remove_all (ir_ctx *ctx, ir_ref def, ir_ref use) |
|
void | ir_use_list_remove_one (ir_ctx *ctx, ir_ref def, ir_ref use) |
|
void | ir_use_list_replace_all (ir_ctx *ctx, ir_ref def, ir_ref use, ir_ref new_use) |
|
void | ir_use_list_replace_one (ir_ctx *ctx, ir_ref def, ir_ref use, ir_ref new_use) |
|
bool | ir_use_list_add (ir_ctx *ctx, ir_ref def, ir_ref use) |
|
void | ir_use_list_sort (ir_ctx *ctx, ir_ref def) |
|
IR_ALWAYS_INLINE ir_ref | ir_next_control (const ir_ctx *ctx, ir_ref ref) |
|
void | ir_replace (ir_ctx *ctx, ir_ref ref, ir_ref new_ref) |
|
void | ir_update_op (ir_ctx *ctx, ir_ref ref, uint32_t idx, ir_ref new_val) |
|
void | ir_iter_replace (ir_ctx *ctx, ir_ref ref, ir_ref new_ref, ir_bitqueue *worklist) |
|
void | ir_iter_update_op (ir_ctx *ctx, ir_ref ref, uint32_t idx, ir_ref new_val, ir_bitqueue *worklist) |
|
void | ir_iter_opt (ir_ctx *ctx, ir_bitqueue *worklist) |
|
void | ir_build_prev_refs (ir_ctx *ctx) |
|
uint32_t | ir_skip_empty_target_blocks (const ir_ctx *ctx, uint32_t b) |
|
uint32_t | ir_next_block (const ir_ctx *ctx, uint32_t b) |
|
void | ir_get_true_false_blocks (const ir_ctx *ctx, uint32_t b, uint32_t *true_block, uint32_t *false_block) |
|
IR_ALWAYS_INLINE uint32_t | ir_phi_input_number (const ir_ctx *ctx, const ir_block *bb, uint32_t from) |
|
ir_ref | ir_folding (ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3, ir_insn *op1_insn, ir_insn *op2_insn, ir_insn *op3_insn) |
|
ir_ref | ir_find_aliasing_load (ir_ctx *ctx, ir_ref ref, ir_type type, ir_ref addr) |
|
ir_ref | ir_find_aliasing_vload (ir_ctx *ctx, ir_ref ref, ir_type type, ir_ref var) |
|
ir_ref | ir_find_aliasing_store (ir_ctx *ctx, ir_ref ref, ir_ref addr, ir_ref val) |
|
ir_ref | ir_find_aliasing_vstore (ir_ctx *ctx, ir_ref ref, ir_ref addr, ir_ref val) |
|
ir_ref | ir_check_dominating_predicates (ir_ctx *ctx, ir_ref ref, ir_ref condition) |
|
int | ir_gen_dessa_moves (ir_ctx *ctx, uint32_t b, emit_copy_t emit_copy) |
|
int32_t | ir_allocate_spill_slot (ir_ctx *ctx, ir_type type, ir_reg_alloc_data *data) |
|
IR_ALWAYS_INLINE void | ir_set_alocated_reg (ir_ctx *ctx, ir_ref ref, int op_num, int8_t reg) |
|
IR_ALWAYS_INLINE int8_t | ir_get_alocated_reg (const ir_ctx *ctx, ir_ref ref, int op_num) |
|
int | ir_get_target_constraints (ir_ctx *ctx, ir_ref ref, ir_target_constraints *constraints) |
|
void | ir_fix_stack_frame (ir_ctx *ctx) |
|
ir_type | ir_get_return_type (ir_ctx *ctx) |
|
bool | ir_is_fastcall (const ir_ctx *ctx, const ir_insn *insn) |
|
bool | ir_is_vararg (const ir_ctx *ctx, ir_insn *insn) |
|