/php-src/ext/opcache/jit/ir/ |
H A D | ir_sccp.c | 847 if (insn->op1 == insn->op2) { in ir_promote_d2f() 848 insn->op2 = insn->op1 = ir_promote_d2f(ctx, insn->op1, ref); in ir_promote_d2f() 920 if (insn->op1 == insn->op2) { in ir_promote_f2d() 921 insn->op2 = insn->op1 = ir_promote_f2d(ctx, insn->op1, ref); in ir_promote_f2d() 1019 if (insn->op1 == insn->op2) { in ir_promote_i2i() 1467 insn->op1 = insn->op2; in ir_optimize_phi() 1468 insn->op2 = insn->op3; in ir_optimize_phi() 1470 insn->op1 = insn->op3; in ir_optimize_phi() 1550 insn->op1 = insn->op3; in ir_optimize_phi() 1553 insn->op1 = insn->op2; in ir_optimize_phi() [all …]
|
H A D | ir_check.c | 92 ir_insn *insn, *use_insn; in ir_check() local 130 && !(insn->op == IR_PHI && ctx->ir_base[insn->op1].op == IR_LOOP_BEGIN)) { in ir_check() 177 if (insn->op == IR_NOT && insn->type == IR_BOOL) { in ir_check() 239 } else if ((insn->op == IR_RETURN || insn->op == IR_UNREACHABLE) && j == 2) { in ir_check() 256 switch (insn->op) { in ir_check() 258 if (insn->inputs_count != ctx->ir_base[insn->op1].inputs_count + 1) { in ir_check() 260 i, insn->inputs_count, ctx->ir_base[insn->op1].inputs_count + 1); in ir_check() 283 if (ctx->ret_type != (insn->op2 ? ctx->ir_base[insn->op2].type : IR_VOID)) { in ir_check() 309 switch (insn->op) { in ir_check() 353 if ((insn->op == IR_LOOP_END || insn->op == IR_END) && count == 2) { in ir_check() [all …]
|
H A D | ir_gcm.c | 23 ir_insn *insn; in ir_gcm_schedule_early() local 29 IR_ASSERT(insn->op != IR_PARAM && insn->op != IR_VAR); in ir_gcm_schedule_early() 30 IR_ASSERT(insn->op != IR_PHI && insn->op != IR_PI); in ir_gcm_schedule_early() 94 if (insn->op == IR_IF || insn->op == IR_GUARD || insn->op == IR_GUARD_NOT) { in ir_gcm_select_best_block() 203 ir_insn *insn; in ir_split_partially_dead_node() local 400 clones[i].ref = clone = ir_emit(ctx, insn->optx, insn->op1, insn->op2, insn->op3); in ir_split_partially_dead_node() 402 if (insn->op1 > 0) ir_use_list_add(ctx, insn->op1, clone); in ir_split_partially_dead_node() 860 while (insn->op == IR_PHI || insn->op == IR_PARAM || insn->op == IR_VAR || insn->op == IR_PI) { in ir_schedule() 908 while (insn->op == IR_PARAM || insn->op == IR_VAR || insn->op == IR_PI) { in ir_schedule() 1117 } else if (insn->op == IR_SYM || insn->op == IR_STR) { in ir_schedule() [all …]
|
H A D | ir_disasm.c | 253 if (insn->id == X86_INS_MOV in ir_disasm_rodata_reference() 269 return insn->detail->x86.operands[i].mem.disp + insn->address + insn->size; in ir_disasm_rodata_reference() 340 cs_insn *insn; local 398 ir_hashtab_add(&labels, insn->op3, insn->op2); 441 insn = cs_malloc(cs); 498 p = insn->op_str; 501 if (insn->id == X86_INS_MOVQ && strcmp(insn->mnemonic, "movd") == 0) { 502 insn->mnemonic[3] = 'q'; 515 p = insn[i].op_str; 645 cs_free(insn, 1); [all …]
|
H A D | ir_dump.c | 14 ir_insn *insn; in ir_dump() local 17 for (i = 1 - ctx->consts_count, insn = ctx->ir_base + i; i < IR_UNUSED; i++, insn++) { in ir_dump() 18 fprintf(f, "%05d %s %s(", i, ir_op_name[insn->op], ir_type_name[insn->type]); in ir_dump() 40 insn++; in ir_dump() 61 ir_insn *insn; in ir_dump_dot() local 95 i, i, ir_op_name[insn->op], ir_type_name[insn->type], ir_get_str(ctx, insn->op2)); in ir_dump_dot() 137 insn += n; in ir_dump_dot() 481 ir_insn *insn; in ir_dump_codegen() local 593 if ((insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) && n != 2) { in ir_dump_codegen() 697 insn += n; in ir_dump_codegen() [all …]
|
H A D | ir_x86.dasc | 61 #define IR_IS_FP_ZERO(insn) ((insn.type == IR_DOUBLE) ? (insn.val.u64 == 0) : (insn.val.u32… 1152 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 1207 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 1226 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 1310 insn = &ctx->ir_base[insn->op3]; 1340 insn = &ctx->ir_base[insn->op3]; 1532 SWAP_REFS(insn->op1, insn->op2); 1540 if (insn->op1 == insn->op2) { 1607 } else if (insn->op2 == ref && insn->op1 != insn->op2) { 1628 insn = &ctx->ir_base[insn->op2]; [all …]
|
H A D | ir_aarch64.dasc | 357 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 475 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 490 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 491 insn = &ctx->ir_base[insn->op2]; 509 if (IR_IS_CONST_REF(insn->op2) && insn->op1 != insn->op2) { 518 insn = &ctx->ir_base[insn->op3]; 545 insn = &ctx->ir_base[insn->op3]; 559 insn = &ctx->ir_base[insn->op2]; 563 insn = &ctx->ir_base[insn->op2]; 687 if (insn->op != IR_LOAD && (insn->op != IR_STORE || insn->op3 == addr_ref)) { [all …]
|
H A D | ir.c | 121 if (insn->op == IR_FUNC || insn->op == IR_SYM) { 850 if (insn->opt == opt && insn->op1 == op1 && insn->op2 == op2 && insn->op3 == op3) { 1151 insn += n; 1173 insn += n; 1226 insn += n; 1924 …} else if (insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN || insn->op == IR_CALL || insn->op ==… 2093 } else if (insn->op == IR_START || insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { 2601 } else if (insn->op == IR_START || insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { 2647 } else if (insn->op == IR_START || insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { 2734 …} else if (insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN || insn->op == IR_CALL || insn->op ==… [all …]
|
H A D | ir_save.c | 92 ir_insn *insn; in ir_save() local 97 for (i = IR_UNUSED + 1, insn = ctx->ir_base - i; i < ctx->consts_count; i++, insn--) { in ir_save() 99 if (insn->op == IR_FUNC) { in ir_save() 102 } else if (insn->op == IR_SYM) { in ir_save() 106 ir_print_const(ctx, insn, f, true); in ir_save() 109 ir_print_const(ctx, insn, f, true); in ir_save() 115 flags = ir_op_flags[insn->op]; in ir_save() 203 n = ir_operands_count(ctx, insn); in ir_save() 204 if ((insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) && n != 2) { in ir_save() 206 } else if ((insn->op == IR_CALL || insn->op == IR_TAILCALL) && n != 2) { in ir_save() [all …]
|
H A D | ir_ra.c | 48 ir_insn *insn; in ir_assign_virtual_registers_slow() local 62 insn += n; in ir_assign_virtual_registers_slow() 73 insn += n; in ir_assign_virtual_registers_slow() 87 ir_insn *insn; in ir_assign_virtual_registers() local 707 if (insn->op == IR_END || insn->op == IR_LOOP_END) { in ir_compute_live_ranges() 764 if (insn->op == IR_PARAM || insn->op == IR_RLOAD) { in ir_compute_live_ranges() 1325 if (insn->op == IR_END || insn->op == IR_LOOP_END) { in ir_compute_live_ranges() 1380 if (insn->op == IR_PARAM || insn->op == IR_RLOAD) { in ir_compute_live_ranges() 1728 insn->op1 = insn->op2; in ir_swap_operands() 1753 if (insn->op2 > 0 && ctx->vregs[insn->op2]) { in ir_swap_operands() [all …]
|
H A D | ir_cfg.c | 46 if (insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { in _ir_add_predecessors() 47 n = insn->inputs_count; in _ir_add_predecessors() 64 ir_insn *insn; in ir_build_cfg() local 107 ref = insn->op1; in ir_build_cfg() 210 if (insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { in ir_build_cfg() 253 ref = insn->op1; in ir_build_cfg() 327 IR_ASSERT(insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN); in ir_remove_merge_input() 490 ref = insn->op1; in ir_remove_unreachable_blocks() 1678 ir_insn *insn; in ir_schedule_blocks_top_down() local 1729 if (insn->op == IR_IF_TRUE || insn->op == IR_IF_FALSE) { in ir_schedule_blocks_top_down() [all …]
|
H A D | ir_emit.c | 73 if (IR_IS_CONST_REF(insn->op2)) { in ir_call_proto() 147 ir_insn *insn; in ir_get_param_reg() local 166 insn = &ctx->ir_base[use]; in ir_get_param_reg() 167 if (insn->op == IR_PARAM) { in ir_get_param_reg() 222 n = insn->inputs_count; in ir_get_args_regs() 350 addr = IR_SNAPSHOT_HANDLER(ctx, insn->op1, &ctx->ir_base[insn->op1], addr); in ir_jmp_addr() 921 if (insn->op == IR_PHI) { in ir_emit_dessa_moves() 966 ir_insn *insn; in ir_match() local 988 insn->op3 = entries_count; in ir_match() 995 insn = &ctx->ir_base[ref]; in ir_match() [all …]
|
H A D | ir_php.h | 17 #define IR_SNAPSHOT_HANDLER(ctx, ref, insn, addr) \ argument 18 zend_jit_snapshot_handler(ctx, ref, insn, addr)
|
H A D | ir_private.h | 953 IR_ALWAYS_INLINE ir_ref ir_operands_count(const ir_ctx *ctx, const ir_insn *insn) in ir_operands_count() argument 955 uint32_t flags = ir_op_flags[insn->op]; in ir_operands_count() 960 n = insn->inputs_count; in ir_operands_count() 965 IR_ALWAYS_INLINE ir_ref ir_input_edges_count(const ir_ctx *ctx, const ir_insn *insn) in ir_input_edges_count() argument 967 uint32_t flags = ir_op_flags[insn->op]; in ir_input_edges_count() 971 n = insn->inputs_count; in ir_input_edges_count() 981 IR_ALWAYS_INLINE uint32_t ir_insn_len(const ir_insn *insn) in ir_insn_len() argument 983 return ir_insn_inputs_to_len(insn->inputs_count); in ir_insn_len() 1373 bool ir_is_fastcall(const ir_ctx *ctx, const ir_insn *insn); 1374 bool ir_is_vararg(const ir_ctx *ctx, ir_insn *insn);
|
H A D | ir.h | 672 void ir_print_const(const ir_ctx *ctx, const ir_insn *insn, FILE *f, bool quoted); 723 IR_ALWAYS_INLINE ir_ref ir_insn_op(const ir_insn *insn, int32_t n) in ir_insn_op() argument 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() argument 731 ir_ref *p = insn->ops + n; in ir_insn_set_op()
|
/php-src/ext/opcache/jit/ |
H A D | zend_jit_ir.c | 468 ir_insn *insn; in jit_TLS() local 476 if (insn->op >= IR_START || insn->op == IR_CALL) { in jit_TLS() 511 ir_insn *insn; in jit_CONST_FUNC_PROTO() local 578 ir_insn *insn; in jit_STUB_FUNC_ADDR() local 588 insn->proto = 0; in jit_STUB_FUNC_ADDR() 874 ir_insn *insn; in jit_FP() local 882 if (insn->op >= IR_START || insn->op == IR_CALL) { in jit_FP() 3532 if (insn->op == IR_MERGE || insn->op == IR_LOOP_BEGIN) { in _zend_jit_fix_merges() 3672 while (insn->op >= IR_CALL && insn->op <= IR_TRAP) { in zend_jit_bb_start() 4279 ir_insn *insn; in zend_jit_deopt_rload() local [all …]
|