Lines Matching refs:ival

229 static bool zend_ival_is_last_use(const zend_lifetime_interval *ival, int use)  in zend_ival_is_last_use()  argument
231 if (ival->flags & ZREG_LAST_USE) { in zend_ival_is_last_use()
232 const zend_life_range *range = &ival->range; in zend_ival_is_last_use()
948 zend_lifetime_interval *ival; in dasm_link_and_encode() local
953 ival = ra[i]; in dasm_link_and_encode()
955 if (ival && ival->reg != ZREG_NONE) { in dasm_link_and_encode()
956 range = &ival->range; in dasm_link_and_encode()
959 if (!zend_jit_load_var(dasm_state, ssa->var_info[i].type, ssa->vars[i].var, ival->reg)) { in dasm_link_and_encode()
1382 zend_lifetime_interval *ival = intervals[var]; in zend_jit_add_range() local
1384 if (!ival) { in zend_jit_add_range()
1385 ival = zend_arena_alloc(&CG(arena), sizeof(zend_lifetime_interval)); in zend_jit_add_range()
1386 if (!ival) { in zend_jit_add_range()
1389 ival->ssa_var = var; in zend_jit_add_range()
1390 ival->reg = ZREG_NONE; in zend_jit_add_range()
1391 ival->flags = 0; in zend_jit_add_range()
1392 ival->range.start = from; in zend_jit_add_range()
1393 ival->range.end = to; in zend_jit_add_range()
1394 ival->range.next = NULL; in zend_jit_add_range()
1395 ival->hint = NULL; in zend_jit_add_range()
1396 ival->used_as_hint = NULL; in zend_jit_add_range()
1397 intervals[var] = ival; in zend_jit_add_range()
1398 } else if (ival->range.start > to + 1) { in zend_jit_add_range()
1404 range->start = ival->range.start; in zend_jit_add_range()
1405 range->end = ival->range.end; in zend_jit_add_range()
1406 range->next = ival->range.next; in zend_jit_add_range()
1407 ival->range.start = from; in zend_jit_add_range()
1408 ival->range.end = to; in zend_jit_add_range()
1409 ival->range.next = range; in zend_jit_add_range()
1410 } else if (ival->range.start == to + 1) { in zend_jit_add_range()
1411 ival->range.start = from; in zend_jit_add_range()
1413 zend_life_range *range = &ival->range; in zend_jit_add_range()
1485 static void zend_jit_insert_interval(zend_lifetime_interval **list, zend_lifetime_interval *ival) in zend_jit_insert_interval() argument
1489 *list = ival; in zend_jit_insert_interval()
1490 ival->list_next = NULL; in zend_jit_insert_interval()
1492 } else if (ival->range.start < (*list)->range.start) { in zend_jit_insert_interval()
1493 ival->list_next = *list; in zend_jit_insert_interval()
1494 *list = ival; in zend_jit_insert_interval()
1503 zend_lifetime_interval *ival; in zend_jit_split_interval() local
1508 ival = *free; in zend_jit_split_interval()
1509 *free = ival->list_next; in zend_jit_split_interval()
1511 ival = zend_arena_alloc(&CG(arena), sizeof(zend_lifetime_interval)); in zend_jit_split_interval()
1513 if (!ival) { in zend_jit_split_interval()
1520 ival->ssa_var = current->ssa_var; in zend_jit_split_interval()
1521 ival->reg = ZREG_NONE; in zend_jit_split_interval()
1522 ival->flags |= ZREG_SPLIT | ZREG_LOAD; in zend_jit_split_interval()
1523 ival->flags &= ~ZREG_STORE; in zend_jit_split_interval()
1524 ival->hint = NULL; in zend_jit_split_interval()
1536 ival->range.start = pos; in zend_jit_split_interval()
1537 ival->range.end = range->end; in zend_jit_split_interval()
1538 ival->range.next = range->next; in zend_jit_split_interval()
1547 zend_jit_insert_interval(list, ival); in zend_jit_split_interval()
1570 zend_lifetime_interval *ival = intervals[i]; in zend_jit_sort_intervals() local
1573 if (ival) { in zend_jit_sort_intervals()
1574 if ((ival->range.start > last->range.start) || in zend_jit_sort_intervals()
1575 (ival->range.start == last->range.start && in zend_jit_sort_intervals()
1576 ((!ival->hint && last->hint && last->hint != ival) || in zend_jit_sort_intervals()
1577 ival->range.end > last->range.end))) { in zend_jit_sort_intervals()
1578 last->list_next = ival; in zend_jit_sort_intervals()
1579 last = ival; in zend_jit_sort_intervals()
1580 ival->list_next = NULL; in zend_jit_sort_intervals()
1586 *p = last = ival; in zend_jit_sort_intervals()
1587 ival->list_next = NULL; in zend_jit_sort_intervals()
1589 } else if ((ival->range.start < (*p)->range.start) || in zend_jit_sort_intervals()
1590 (ival->range.start == (*p)->range.start && in zend_jit_sort_intervals()
1591 ((ival->hint && !(*p)->hint && ival->hint != *p) || in zend_jit_sort_intervals()
1592 ival->range.end < (*p)->range.end))) { in zend_jit_sort_intervals()
1593 ival->list_next = *p; in zend_jit_sort_intervals()
1594 *p = ival; in zend_jit_sort_intervals()
2012 zend_lifetime_interval *ival = *list; in zend_jit_compute_liveness() local
2013 while (ival) { in zend_jit_compute_liveness()
2014 if (ival->hint) { in zend_jit_compute_liveness()
2015 ival->hint->used_as_hint = ival; in zend_jit_compute_liveness()
2017 ival = ival->list_next; in zend_jit_compute_liveness()
2030 static uint32_t zend_interval_end(zend_lifetime_interval *ival) in zend_interval_end() argument
2032 zend_life_range *range = &ival->range; in zend_interval_end()
2040 static bool zend_interval_covers(zend_lifetime_interval *ival, uint32_t position) in zend_interval_covers() argument
2042 zend_life_range *range = &ival->range; in zend_interval_covers()
2403 …me_interval(const zend_op_array *op_array, const zend_ssa *ssa, const zend_lifetime_interval *ival) in zend_jit_dump_lifetime_interval() argument
2406 int var_num = ssa->vars[ival->ssa_var].var; in zend_jit_dump_lifetime_interval()
2408 fprintf(stderr, "#%d.", ival->ssa_var); in zend_jit_dump_lifetime_interval()
2410 fprintf(stderr, ": %u-%u", ival->range.start, ival->range.end); in zend_jit_dump_lifetime_interval()
2411 range = ival->range.next; in zend_jit_dump_lifetime_interval()
2416 if (ival->reg != ZREG_NONE) { in zend_jit_dump_lifetime_interval()
2417 fprintf(stderr, " (%s)", zend_reg_name[ival->reg]); in zend_jit_dump_lifetime_interval()
2419 if (ival->flags & ZREG_LAST_USE) { in zend_jit_dump_lifetime_interval()
2422 if (ival->flags & ZREG_LOAD) { in zend_jit_dump_lifetime_interval()
2425 if (ival->flags & ZREG_STORE) { in zend_jit_dump_lifetime_interval()
2428 if (ival->hint) { in zend_jit_dump_lifetime_interval()
2430 if (ival->hint->ssa_var >= 0) { in zend_jit_dump_lifetime_interval()
2431 var_num = ssa->vars[ival->hint->ssa_var].var; in zend_jit_dump_lifetime_interval()
2432 fprintf(stderr, "=#%d.", ival->hint->ssa_var); in zend_jit_dump_lifetime_interval()
2435 if (ival->hint->reg != ZREG_NONE) { in zend_jit_dump_lifetime_interval()
2436 fprintf(stderr, " (%s)", zend_reg_name[ival->hint->reg]); in zend_jit_dump_lifetime_interval()
2447 zend_lifetime_interval *list, *ival; in zend_jit_allocate_registers() local
2483 ival = list; in zend_jit_allocate_registers()
2484 while (ival) { in zend_jit_allocate_registers()
2485 zend_life_range *range = &ival->range; in zend_jit_allocate_registers()
2490 if (zend_ssa_is_last_use(op_array, ssa, ival->ssa_var, range->end)) { in zend_jit_allocate_registers()
2491 ival->flags |= ZREG_LAST_USE; in zend_jit_allocate_registers()
2493 ival = ival->list_next; in zend_jit_allocate_registers()
2500 ival = list; in zend_jit_allocate_registers()
2501 while (ival) { in zend_jit_allocate_registers()
2502 zend_jit_dump_lifetime_interval(op_array, ssa, ival); in zend_jit_allocate_registers()
2503 ival = ival->list_next; in zend_jit_allocate_registers()
2517 ival = list; in zend_jit_allocate_registers()
2518 while (ival != NULL) { in zend_jit_allocate_registers()
2519 zend_lifetime_interval *next = ival->list_next; in zend_jit_allocate_registers()
2521 ival->list_next = intervals[ival->ssa_var]; in zend_jit_allocate_registers()
2522 intervals[ival->ssa_var] = ival; in zend_jit_allocate_registers()
2523 ival = next; in zend_jit_allocate_registers()
2643 ival = intervals[i]; in zend_jit_allocate_registers()
2644 while (ival) { in zend_jit_allocate_registers()
2645 zend_jit_dump_lifetime_interval(op_array, ssa, ival); in zend_jit_allocate_registers()
2646 ival = ival->list_next; in zend_jit_allocate_registers()
2896 zend_lifetime_interval *ival = ra[phi->ssa_var]; in zend_jit() local
2898 if (ival) { in zend_jit()
2899 if (ival->flags & ZREG_LOAD) { in zend_jit()
2900 ZEND_ASSERT(ival->reg != ZREG_NONE); in zend_jit()
2902 …_load_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var, ival->reg)) { in zend_jit()
2905 } else if (ival->flags & ZREG_STORE) { in zend_jit()
2906 ZEND_ASSERT(ival->reg != ZREG_NONE); in zend_jit()
2908 …re_var(&dasm_state, ssa->var_info[phi->ssa_var].type, ssa->vars[phi->ssa_var].var, ival->reg, 1)) { in zend_jit()