Lines Matching refs:ir_ref

388 typedef int32_t ir_ref;  typedef
420 ir_ref name;
421 ir_ref str;
463 ir_ref ops[1];
466 ir_ref op1;
467 ir_ref prev_const;
472 ir_ref op2,
473 ir_ref op3
496 typedef void (*ir_strtab_apply_t)(const char *str, uint32_t len, ir_ref val);
499 ir_ref ir_strtab_lookup(ir_strtab *strtab, const char *str, uint32_t len, ir_ref val);
500 ir_ref ir_strtab_find(const ir_strtab *strtab, const char *str, uint32_t len);
501 ir_ref ir_strtab_update(ir_strtab *strtab, const char *str, uint32_t len, ir_ref val);
502 const char *ir_strtab_str(const ir_strtab *strtab, ir_ref idx);
503 const char *ir_strtab_strl(const ir_strtab *strtab, ir_ref idx, size_t *len);
556 typedef void (*ir_snapshot_create_t)(ir_ctx *ctx, ir_ref addr);
572ir_ref insns_count; /* number of instructions stored in instructions buffe…
573ir_ref insns_limit; /* size of allocated instructions buffer (it's extende…
574 ir_ref consts_count; /* number of constants stored in constants buffer */
575ir_ref consts_limit; /* size of allocated constants buffer (it's extended w…
581ir_ref fold_cse_limit; /* CSE finds identical insns backward from "insn_count…
585ir_ref *use_edges; /* the actual uses: use = ctx->use_edges[ctx->use_list…
586 ir_ref use_edges_count; /* number of elements in use_edges[] array */
595 ir_ref vregs_count;
611 ir_ref *prev_ref;
614 ir_ref control; /* used by IR construction API (see ir_builder.h) */
615 ir_ref bb_start; /* used by target CPU instruction matcher */
616 ir_ref vars; /* list of VARs (used by register allocator) */
641 ir_ref prev_insn_chain[IR_LAST_FOLDABLE_OP + 1];
642 ir_ref prev_const_chain[IR_LAST_TYPE];
646 void ir_init(ir_ctx *ctx, uint32_t flags, ir_ref consts_limit, ir_ref insns_limit);
650 ir_ref ir_const(ir_ctx *ctx, ir_val val, uint8_t type);
651 ir_ref ir_const_i8(ir_ctx *ctx, int8_t c);
652 ir_ref ir_const_i16(ir_ctx *ctx, int16_t c);
653 ir_ref ir_const_i32(ir_ctx *ctx, int32_t c);
654 ir_ref ir_const_i64(ir_ctx *ctx, int64_t c);
655 ir_ref ir_const_u8(ir_ctx *ctx, uint8_t c);
656 ir_ref ir_const_u16(ir_ctx *ctx, uint16_t c);
657 ir_ref ir_const_u32(ir_ctx *ctx, uint32_t c);
658 ir_ref ir_const_u64(ir_ctx *ctx, uint64_t c);
659 ir_ref ir_const_bool(ir_ctx *ctx, bool c);
660 ir_ref ir_const_char(ir_ctx *ctx, char c);
661 ir_ref ir_const_float(ir_ctx *ctx, float c);
662 ir_ref ir_const_double(ir_ctx *ctx, double c);
663 ir_ref ir_const_addr(ir_ctx *ctx, uintptr_t c);
665 ir_ref ir_const_func_addr(ir_ctx *ctx, uintptr_t c, ir_ref proto);
666 ir_ref ir_const_func(ir_ctx *ctx, ir_ref str, ir_ref proto);
667 ir_ref ir_const_sym(ir_ctx *ctx, ir_ref str);
668 ir_ref ir_const_str(ir_ctx *ctx, ir_ref str);
670 ir_ref ir_unique_const_addr(ir_ctx *ctx, uintptr_t c);
674 ir_ref ir_str(ir_ctx *ctx, const char *s);
675 ir_ref ir_strl(ir_ctx *ctx, const char *s, size_t len);
676 const char *ir_get_str(const ir_ctx *ctx, ir_ref idx);
677 const char *ir_get_strl(const ir_ctx *ctx, ir_ref idx, size_t *len);
688 ir_ref ir_proto_0(ir_ctx *ctx, uint8_t flags, ir_type ret_type);
689 ir_ref ir_proto_1(ir_ctx *ctx, uint8_t flags, ir_type ret_type, ir_type t1);
690 ir_ref ir_proto_2(ir_ctx *ctx, uint8_t flags, ir_type ret_type, ir_type t1, ir_type t2);
691 ir_ref ir_proto_3(ir_ctx *ctx, uint8_t flags, ir_type ret_type, ir_type t1, ir_type t2, ir_type t3);
692 ir_ref ir_proto_4(ir_ctx *ctx, uint8_t flags, ir_type ret_type, ir_type t1, ir_type t2, ir_type t3,
694 ir_ref ir_proto_5(ir_ctx *ctx, uint8_t flags, ir_type ret_type, ir_type t1, ir_type t2, ir_type t3,
696 ir_ref ir_proto(ir_ctx *ctx, uint8_t flags, ir_type ret_type, uint32_t params_counts, uint8_t *para…
698 ir_ref ir_emit(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3);
700 ir_ref ir_emit0(ir_ctx *ctx, uint32_t opt);
701 ir_ref ir_emit1(ir_ctx *ctx, uint32_t opt, ir_ref op1);
702 ir_ref ir_emit2(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2);
703 ir_ref ir_emit3(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3);
705 ir_ref ir_emit_N(ir_ctx *ctx, uint32_t opt, int32_t count);
706 void ir_set_op(ir_ctx *ctx, ir_ref ref, int32_t n, ir_ref val);
708 IR_ALWAYS_INLINE void ir_set_op1(ir_ctx *ctx, ir_ref ref, ir_ref val) in ir_set_op1()
713 IR_ALWAYS_INLINE void ir_set_op2(ir_ctx *ctx, ir_ref ref, ir_ref val) in ir_set_op2()
718 IR_ALWAYS_INLINE void ir_set_op3(ir_ctx *ctx, ir_ref ref, ir_ref val) in ir_set_op3()
723 IR_ALWAYS_INLINE ir_ref ir_insn_op(const ir_insn *insn, int32_t n) in ir_insn_op()
725 const ir_ref *p = insn->ops + n; in ir_insn_op()
729 IR_ALWAYS_INLINE void ir_insn_set_op(ir_insn *insn, int32_t n, ir_ref val) in ir_insn_set_op()
731 ir_ref *p = insn->ops + n; in ir_insn_set_op()
735 ir_ref ir_fold(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3);
737 ir_ref ir_fold0(ir_ctx *ctx, uint32_t opt);
738 ir_ref ir_fold1(ir_ctx *ctx, uint32_t opt, ir_ref op1);
739 ir_ref ir_fold2(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2);
740 ir_ref ir_fold3(ir_ctx *ctx, uint32_t opt, ir_ref op1, ir_ref op2, ir_ref op3);
742 ir_ref ir_param(ir_ctx *ctx, ir_type type, ir_ref region, const char *name, int pos);
743 ir_ref ir_var(ir_ctx *ctx, ir_type type, ir_ref region, const char *name);
744 ir_ref ir_bind(ir_ctx *ctx, ir_ref var, ir_ref def);
783 int32_t ir_get_spill_slot_offset(ir_ctx *ctx, ir_ref ref);
860 void ir_print_proto(const ir_ctx *ctx, ir_ref proto, FILE *f);