Lines Matching refs:op_id

441       int op_id = op->id();
443 if (op_id == -1) {
446 assert(op->code() == lir_move, "only moves can have a op_id of -1");
461 assert(interval == Interval::end() || interval->spill_definition_pos() >= op_id, "invalid order");
464 while (interval != Interval::end() && interval->spill_definition_pos() == op_id) {
477 TRACE_LINEAR_SCAN(4, tty->print_cr("inserting move after definition of interval %d to stack slot %d at op_id %d", interval->reg_num(), interval->canonical_spill_slot() - LinearScan::nof_regs, op_id));
516 int op_id = 0;
521 block->set_first_lir_instruction_id(op_id);
527 op->set_id(op_id);
531 assert(lir_op_with_id(op_id) == op, "must match");
534 op_id += 2; // numbering of lir_ops by two
536 block->set_last_lir_instruction_id(op_id - 2);
539 assert(idx * 2 == op_id, "must match");
563 TRACE_LINEAR_SCAN(4, tty->print_cr(" Setting live_gen for value %c%d, LIR op_id %d, register number %d", value->type()->tchar(), value->id(), op->id(), reg));
1242 TRACE_LINEAR_SCAN(4, tty->print_cr("operation at op_id %d: added hint from interval %d to %d", move->id(), from->reg_num(), to->reg_num()));
1259 TRACE_LINEAR_SCAN(4, tty->print_cr("operation at op_id %d: added hint from interval %d to %d", cmove->id(), from->reg_num(), to->reg_num()));
1357 int op_id = op->id();
1365 add_temp(caller_save_registers[k], op_id, noUse, T_ILLEGAL);
1379 add_def(opr, op_id, use_kind_of_output_operand(op, opr));
1386 add_temp(opr, op_id, mustHaveRegister);
1394 add_use(opr, block_from, op_id, use_kind_of_input_operand(op, opr));
1406 add_use(value, block_from, op_id + 1, noUse);
1660 Interval* LinearScan::split_child_at_op_id(Interval* interval, int op_id, LIR_OpVisitState::OprMode mode) {
1661 Interval* result = interval->split_child_at_op_id(op_id, mode);
1688 Interval* LinearScan::interval_at_op_id(int reg_num, int op_id) {
1692 return split_child_at_op_id(interval_at(reg_num), op_id, LIR_OpVisitState::inputMode);
1920 // search split child at the throwing op_id
1927 // search split child at the throwing op_id
1992 int op_id = op->id();
1994 if (op_id != -1 && has_info(op_id)) {
2002 resolve_exception_edge(xhandlers->handler_at(k), op_id, move_resolver);
2163 LIR_Opr LinearScan::color_lir_opr(LIR_Opr opr, int op_id, LIR_OpVisitState::OprMode mode) {
2169 if (op_id != -1) {
2171 BlockBegin* block = block_of_op_with_id(op_id);
2172 if (block->number_of_sux() <= 1 && op_id == block->last_lir_instruction_id()) {
2188 interval = split_child_at_op_id(interval, op_id, mode);
2200 if (opr->is_last_use() || op_id == interval->to() || (op_id != -1 && interval->has_hole_between(op_id, op_id + 1))) {
2201 assert(op_id == -1 || !is_block_begin(op_id), "holes at begin of block may also result from control flow");
2366 TRACE_LINEAR_SCAN(3, tty->print_cr("creating oop map at op_id %d", op->id()));
2777 int LinearScan::append_scope_value(int op_id, Value value, GrowableArray<ScopeValue*>* scope_values) {
2796 BlockBegin* block = block_of_op_with_id(op_id);
2797 if (block->number_of_sux() == 1 && op_id == block->last_lir_instruction_id()) {
2802 // Solution: use the first op_id of the branch target block instead.
2805 op_id = block->sux_at(0)->first_lir_instruction_id();
2814 opr = color_lir_opr(opr, op_id, mode);
2815 assert(!has_call(op_id) || opr->is_stack() || !is_caller_save(reg_num(opr)), "can not have caller-save register operands at calls");
2834 IRScopeDebugInfo* LinearScan::compute_debug_info_for_scope(int op_id, IRScope* cur_scope, ValueStack* cur_state, ValueStack* innermost_state) {
2840 caller_debug_info = compute_debug_info_for_scope(op_id, cur_scope->caller(), caller_state, innermost_state);
2860 pos += append_scope_value(op_id, local, locals);
2883 append_scope_value(op_id, expression, expressions);
2904 void LinearScan::compute_debug_info(CodeEmitInfo* info, int op_id) {
2905 TRACE_LINEAR_SCAN(3, tty->print_cr("creating debug information at op_id %d", op_id));
2916 info->_scope_debug_info = compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state);
2919 DEBUG_ONLY(assert_equal(info->_scope_debug_info, compute_debug_info_for_scope(op_id, innermost_scope, innermost_state, innermost_state)));
2935 int op_id = op->id();
2946 visitor.set_opr_at(mode, k, color_lir_opr(opr, op_id, mode));
2978 compute_debug_info(visitor.info_at(k), op_id);
3275 int op_id = op->id();
3343 if (interval->to() >= op_id + 1) {
3344 assert(interval->to() < op_id + 2 ||
3345 interval->has_hole_between(op_id, op_id + 2),
3349 if (interval->from() <= op_id - 1) {
3350 assert(interval->has_hole_between(op_id - 1, op_id),
4125 assert(i2->from() < i1->from(), "intervals start at same op_id");
4163 Interval* Interval::split_child_at_op_id(int op_id, LIR_OpVisitState::OprMode mode) {
4165 assert(op_id >= 0, "invalid op_id (method can not be called for spill moves)");
4174 // in outputMode, the end of the interval (op_id == cur->to()) is not valid
4180 if (cur->from() <= op_id && op_id < cur->to() + to_offset) {
4196 if (tmp != result && tmp->from() <= op_id && op_id < tmp->to() + to_offset) {
4197 tty->print_cr("two valid result intervals found for op_id %d: %d and %d", op_id, result->reg_num(), tmp->reg_num());
4207 assert(result->covers(op_id, mode), "op_id not covered by interval");
4213 // returns the last split child that ends before the given op_id
4214 Interval* Interval::split_child_before_op_id(int op_id) {
4215 assert(op_id >= 0, "invalid op_id");
4225 if (cur->to() <= op_id && (result == NULL || result->to() < cur->to())) {
4235 // checks if op_id is covered by any split child
4236 bool Interval::split_child_covers(int op_id, LIR_OpVisitState::OprMode mode) {
4238 assert(op_id >= 0, "invalid op_id (method can not be called for spill moves)");
4242 return covers(op_id, mode);
4249 if (cur->covers(op_id, mode)) {
4475 // returns true if the op_id is inside the interval
4476 bool Interval::covers(int op_id, LIR_OpVisitState::OprMode mode) const {
4479 while (cur != Range::end() && cur->to() < op_id) {
4486 return cur->from() <= op_id && op_id < cur->to();
4488 return cur->from() <= op_id && op_id <= cur->to();
4973 void LinearScanWalker::insert_move(int op_id, Interval* src_it, Interval* dst_it) {
4977 op_id = (op_id + 1) & ~1;
4978 BlockBegin* op_block = allocator()->block_of_op_with_id(op_id);
4979 assert(op_id > 0 && allocator()->block_of_op_with_id(op_id - 2) == op_block, "cannot insert move at block boundary");
4987 int index = (op_id - list->at(0)->id()) / 2;
4988 assert(list->at(index)->id() <= op_id, "error in calculation");
4990 while (list->at(index)->id() != op_id) {
4995 assert(list->at(index)->id() == op_id, "error in calculation");
5053 // block at this op_id)
5142 // must calculate this before the actual split is performed and before split position is moved to odd op_id
5146 // move position before actual instruction (odd op_id)
5222 // move position before actual instruction (odd op_id)