nx_ir.nx
buildroot/runtime/nx_ir.nx
about
dependencies 3 imports · 55 importers
diagram shows first 10 each side; +0 more imports, +45 more importers in the complete lists below.
imports: nx_types.nxnx_syscalls.nxnx_assert.nx
imported by: _offc_probe_callchain.nx_offc_probe_irbuild.nx_offc_probe_irfn.nx_offc_probe_module.nx_offc_regalloc_min.nxend2end_test.nxir.nxnx_compile_wat.nxnx_compile_x86.nxnx_dom_fn.nxnx_dom_oracle_gate.nxnx_ir_validate.nxnx_lang_struct.nxnx_main.nxnx_nxc.nxnx_opt.nxnx_parse.nxnx_quality_grade_daemon.nxnx_quality_grade_quad.nxnx_quality_grade_self.nxnx_quality_grade_septagon.nxnx_regalloc.nxnx_regalloc_liveness_diag.nxnx_regalloc_soundness_test.nxnx_riscv.nxnx_smoke_nxc_pipeline.nxnx_smoke_nxc_pipeline10.nxnx_smoke_nxc_pipeline11.nxnx_smoke_nxc_pipeline12.nxnx_smoke_nxc_pipeline13.nxnx_smoke_nxc_pipeline14.nxnx_smoke_nxc_pipeline15.nxnx_smoke_nxc_pipeline2.nxnx_smoke_nxc_pipeline3.nxnx_smoke_nxc_pipeline4.nxnx_smoke_nxc_pipeline5.nxnx_smoke_nxc_pipeline7.nxnx_smoke_nxc_pipeline8.nxnx_smoke_nxc_pipeline9.nxnx_smoke_nxc_tilde.nxnx_smoke_regalloc_min.nxnx_smoke_regalloc_min2.nxnx_smoke_regalloc_min3.nxnx_smoke_regalloc_min4.nxnx_smoke_regalloc_min5.nxnx_smoke_regalloc_min6.nxnx_smoke_regalloc_min7.nxnx_smoke_regalloc_step.nxnx_vcc_color_wat.nxnx_vcc_probe_wat.nxnx_wasm.nxnx_x86_64_ctx_test.nxnx_x86_64_module_test.nxregalloc_evict_test.nxregalloc_test.nx
structs
| none |
consts
| none |
functions
| 64 | func alloc_type(kind: i64, size: i64, align: i64) -> *Type {
called by 23: alloc_type_sir_type_struct_newir_type_voidir_type_boolir_type_i32ir_type_i64+17 calls 1: sys_mmap |
| 91 | func alloc_type_s(kind: i64, size: i64, align: i64) -> *Type { |
| 100 | func ir_type_struct_new(name_bytes: *u8, name_len: i64) -> *Type {
called by 3: instantiate_generic_nprepass_register_structsparse_module_enum calls 2: alloc_typesys_mmap |
| 114 | func ir_type_struct_add_field(t: *Type, name_bytes: *u8, name_len: i64, |
| 129 | func ir_type_struct_find_field(t: *Type, name_bytes: *u8, name_len: i64) -> *StructField { |
| 148 | func ir_type_void() -> *Type { return alloc_type(0, 0, 1) } |
| 149 | func ir_type_bool() -> *Type { return alloc_type(1, 1, 1) } |
| 150 | func ir_type_i32() -> *Type { return alloc_type(4, 4, 4) }
calls 1: alloc_type |
| 151 | func ir_type_i64() -> *Type { return alloc_type(5, 8, 8) } |
| 155 | func ir_type_f32() -> *Type { return alloc_type(9, 4, 4) } |
| 156 | func ir_type_f64() -> *Type { return alloc_type(10, 8, 8) }
calls 1: alloc_type |
| 180 | func ir_function_new(m: *Module, name: *u8, name_len: i64, |
| 238 | func val_at(f: *Function, id: i64) -> *Value { |
| 244 | func block_at(f: *Function, id: i64) -> *BasicBlock { |
| 250 | func alloc_value(f: *Function, kind: i64, ty: *Type) -> i64 { |
| 270 | func ir_block_new(f: *Function) -> *BasicBlock { |
| 292 | func ir_const_i64(f: *Function, n: i64) -> i64 {
called by 36: mainmainmainmainmaininline_call+30 calls 4: nx_assert_ptrnx_assertalloc_valueir_type_i64 |
| 303 | func ir_param(f: *Function, idx: i64, ty: *Type) -> i64 { |
| 314 | func append_instr(bb: *BasicBlock, inst: *Instr) -> i64 { |
| 329 | func alloc_instr(f: *Function, op: i64, ty: *Type) -> *Instr { |
| 358 | func ir_emit_binop(bb: *BasicBlock, op: i64,
called by 38: mainmainmainmainemit_bounds_check_vparse_field_chain+32 calls 5: nx_assert_ptrnx_assertalloc_instralloc_valueappend_instr |
| 379 | func ir_emit_unop(bb: *BasicBlock, op: i64, a: i64, ret_ty: *Type) -> i64 { |
| 399 | func ir_emit_atomic_load_i64(bb: *BasicBlock, addr: i64, mo: i64) -> i64 { |
| 413 | func ir_emit_atomic_store_i64(bb: *BasicBlock, addr: i64, val: i64, mo: i64) -> i64 { |
| 427 | func ir_emit_adc_acc(bb: *BasicBlock, acc_ptr: i64, lo: i64, hi: i64) -> i64 { |
| 438 | func ir_emit_q8rowdot(bb: *BasicBlock, qrow: i64, arow: i64, nblk: i64) -> i64 { |
| 453 | func ir_emit_i8fma32(bb: *BasicBlock, a: i64, b: i64, d: i64, acc: i64) -> i64 { |
| 469 | func ir_emit_atomic_cas_i64(bb: *BasicBlock, addr: i64, exp: i64, newv: i64, mo: i64) -> i64 { |
| 485 | func ir_emit_atomic_faa_i64(bb: *BasicBlock, addr: i64, delta: i64, mo: i64) -> i64 { |
| 500 | func ir_emit_atomic_fence(bb: *BasicBlock, mo: i64) -> i64 { |
| 510 | func ir_emit_thread_clone(bb: *BasicBlock, stack_top: i64, entry_fn: i64, ctx: i64) -> i64 { |
| 534 | func ir_bb_sealed(bb: *BasicBlock) -> i64 { |
| 545 | func ir_emit_return(bb: *BasicBlock, v: i64) -> i64 {
called by 24: mainmainmainmainparse_stmt_returnparse_function+18 calls 4: ir_bb_sealedalloc_instrir_type_voidappend_instr |
| 561 | func ir_emit_wfi(bb: *BasicBlock) -> i64 { |
| 571 | func ir_emit_csr_read(bb: *BasicBlock, csr_num: i64) -> i64 { |
| 586 | func ir_emit_csr_write(bb: *BasicBlock, csr_num: i64, val: i64) -> i64 { |
| 597 | func ir_emit_fence(bb: *BasicBlock) -> i64 { |
| 608 | func ir_emit_mret(bb: *BasicBlock) -> i64 { |
| 620 | func ir_emit_syscall(bb: *BasicBlock, args: *i64, n_args: i64) -> i64 {
called by 2: emit_bounds_trapparse_primary_intrinsic calls 5: alloc_instrir_type_i64alloc_valueval_atappend_instr |
| 644 | func ir_emit_f32_binop(bb: *BasicBlock, op: i64, a: i64, b: i64) -> i64 { |
| 659 | func ir_emit_f32_unop(bb: *BasicBlock, op: i64, a: i64) -> i64 { |
| 675 | func ir_emit_f64_unop(bb: *BasicBlock, op: i64, a: i64) -> i64 { |
| 689 | func ir_emit_f32x8_fma(bb: *BasicBlock, acc: i64, a: i64, b: i64) -> i64 { |
| 704 | func ir_emit_i16x16_madd(bb: *BasicBlock, acc: i64, a: i64, b: i64) -> i64 { |
| 720 | func ir_emit_q5unpack32(bb: *BasicBlock, qhqs: i64, out: i64, consts: i64) -> i64 { |
| 735 | func ir_emit_sha256_ni_block(bb: *BasicBlock, state: i64, block: i64, k: i64) -> i64 { |
| 753 | func ir_emit_mul256_wide(bb: *BasicBlock, dst: i64, a: i64, b: i64) -> i64 { |
| 773 | func ir_emit_simd_vdot_i16_x16(bb: *BasicBlock, a: i64, b: i64) -> i64 { |
| 788 | func ir_emit_simd_vreduce_min_i16_x16(bb: *BasicBlock, p: i64) -> i64 { |
| 800 | func ir_emit_simd_vreduce_max_i16_x16(bb: *BasicBlock, p: i64) -> i64 { |
| 814 | func ir_emit_simd_vsadd_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 829 | func ir_emit_simd_vssub_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 841 | func ir_emit_simd_vsaddu_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 853 | func ir_emit_simd_vssubu_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 866 | func ir_emit_simd_vmin_lane_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 876 | func ir_emit_simd_vmax_lane_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 886 | func ir_emit_simd_vadd_lane_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 896 | func ir_emit_simd_vsub_lane_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 906 | func ir_emit_simd_vmul_lane_i16_x16(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 918 | func ir_emit_simd_vsll_i16_x16(bb: *BasicBlock, a: i64, count: i64, out: i64) -> i64 { |
| 928 | func ir_emit_simd_vsrl_i16_x16(bb: *BasicBlock, a: i64, count: i64, out: i64) -> i64 { |
| 938 | func ir_emit_simd_vsra_i16_x16(bb: *BasicBlock, a: i64, count: i64, out: i64) -> i64 { |
| 949 | func ir_emit_simd_vreduce_sum_i16_x16(bb: *BasicBlock, p: i64) -> i64 { |
| 960 | func ir_emit_simd_vbroadcast_i16_x16(bb: *BasicBlock, scalar: i64, out: i64) -> i64 { |
| 973 | func ir_emit_simd_vadd_i8_x32(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 983 | func ir_emit_simd_vsub_i8_x32(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 993 | func ir_emit_simd_vsadd_i8_x32(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1003 | func ir_emit_simd_vssub_i8_x32(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1013 | func ir_emit_simd_vreduce_sum_i8_x32(bb: *BasicBlock, p: i64) -> i64 { |
| 1023 | func ir_emit_simd_vbroadcast_i8_x32(bb: *BasicBlock, scalar: i64, out: i64) -> i64 { |
| 1034 | func ir_emit_simd_vadd_i32_x8(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1044 | func ir_emit_simd_vsub_i32_x8(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1054 | func ir_emit_simd_vmul_i32_x8(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1064 | func ir_emit_simd_vsadd_i32_x8(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1074 | func ir_emit_simd_vssub_i32_x8(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1084 | func ir_emit_simd_vreduce_sum_i32_x8(bb: *BasicBlock, p: i64) -> i64 { |
| 1094 | func ir_emit_simd_vbroadcast_i32_x8(bb: *BasicBlock, scalar: i64, out: i64) -> i64 { |
| 1105 | func ir_emit_simd_vadd_i64_x4(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1114 | func ir_emit_simd_vsub_i64_x4(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1123 | func ir_emit_simd_vmul_i64_x4(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1132 | func ir_emit_simd_vsadd_i64_x4(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1141 | func ir_emit_simd_vssub_i64_x4(bb: *BasicBlock, a: i64, b: i64, out: i64) -> i64 { |
| 1150 | func ir_emit_simd_vreduce_sum_i64_x4(bb: *BasicBlock, p: i64) -> i64 { |
| 1159 | func ir_emit_simd_vbroadcast_i64_x4(bb: *BasicBlock, scalar: i64, out: i64) -> i64 { |
| 1174 | func ir_move_instr_before(anchor: *Instr, movee: *Instr) -> i64 {
called by 1: inl_clone_instr |
| 1201 | func ir_emit_gep(bb: *BasicBlock, base: i64, offset: i64, |
| 1222 | func ir_emit_call(bb: *BasicBlock, callee: *Function,
called by 1: parse_primary_call calls 6: nx_assert_ptrnx_assertalloc_instralloc_valueval_atappend_instr |
| 1266 | func ir_emit_call_indirect(bb: *BasicBlock, callee_val: i64, ret_ty: *Type, args: *i64, n_args: i64) -> i64 { |
| 1311 | func ir_module_new(name_bytes: *u8) -> *Module { |
| 1337 | func ir_add_global_bss(m: *Module, name_bytes: *u8, name_len: i64,
calls 1: nx_assert_lt |
| 1367 | func ir_add_global_data(m: *Module, name_bytes: *u8, name_len: i64, |
| 1399 | func ir_add_global_string(m: *Module, bytes: *u8, len: i64) -> i64 { |
| 1428 | func ir_global_value(f: *Function, gid: i64, ty: *Type) -> i64 { |
| 1438 | func ir_func_addr_value(f: *Function, fn: *Function, ty: *Type) -> i64 { |
| 1447 | func find_function(m: *Module, name: *u8, name_len: i64) -> *Function { |
| 1470 | func ir_emit_br(bb: *BasicBlock, target: *BasicBlock) -> i64 { |
| 1495 | func ir_emit_br_cond(bb: *BasicBlock, cond: i64, |
| 1530 | func ir_emit_alloca(bb: *BasicBlock, elem_ty: *Type) -> i64 { |
| 1547 | func ir_emit_load(bb: *BasicBlock, addr: i64, load_ty: *Type) -> i64 { |
| 1569 | func ir_emit_store(bb: *BasicBlock, addr: i64, val: i64, ty: *Type) -> i64 { |