454 void MethodLiveness::BasicBlock::compute_gen_kill_range(ciBytecodeStream *bytes) {
455 _gen.clear();
456 _kill.clear();
457
458 while (bytes->next() != ciBytecodeStream::EOBC()) {
459 compute_gen_kill_single(bytes);
460 }
461 }
462
463 void MethodLiveness::BasicBlock::compute_gen_kill_single(ciBytecodeStream *instruction) {
464 // We prohibit _gen and _kill from having locals in common. If we
465 // know that one is definitely going to be applied before the other,
466 // we could save some computation time by relaxing this prohibition.
467
468 switch (instruction->cur_bc()) {
469 case Bytecodes::_nop:
470 case Bytecodes::_goto:
471 case Bytecodes::_goto_w:
472 case Bytecodes::_aconst_null:
473 case Bytecodes::_new:
474 case Bytecodes::_iconst_m1:
475 case Bytecodes::_iconst_0:
476 case Bytecodes::_iconst_1:
477 case Bytecodes::_iconst_2:
478 case Bytecodes::_iconst_3:
479 case Bytecodes::_iconst_4:
480 case Bytecodes::_iconst_5:
481 case Bytecodes::_fconst_0:
482 case Bytecodes::_fconst_1:
483 case Bytecodes::_fconst_2:
484 case Bytecodes::_bipush:
485 case Bytecodes::_sipush:
486 case Bytecodes::_lconst_0:
487 case Bytecodes::_lconst_1:
488 case Bytecodes::_dconst_0:
489 case Bytecodes::_dconst_1:
490 case Bytecodes::_ldc2_w:
491 case Bytecodes::_ldc:
492 case Bytecodes::_ldc_w:
493 case Bytecodes::_iaload:
|
454 void MethodLiveness::BasicBlock::compute_gen_kill_range(ciBytecodeStream *bytes) {
455 _gen.clear();
456 _kill.clear();
457
458 while (bytes->next() != ciBytecodeStream::EOBC()) {
459 compute_gen_kill_single(bytes);
460 }
461 }
462
463 void MethodLiveness::BasicBlock::compute_gen_kill_single(ciBytecodeStream *instruction) {
464 // We prohibit _gen and _kill from having locals in common. If we
465 // know that one is definitely going to be applied before the other,
466 // we could save some computation time by relaxing this prohibition.
467
468 switch (instruction->cur_bc()) {
469 case Bytecodes::_nop:
470 case Bytecodes::_goto:
471 case Bytecodes::_goto_w:
472 case Bytecodes::_aconst_null:
473 case Bytecodes::_new:
474 case Bytecodes::_aconst_init:
475 case Bytecodes::_withfield:
476 case Bytecodes::_iconst_m1:
477 case Bytecodes::_iconst_0:
478 case Bytecodes::_iconst_1:
479 case Bytecodes::_iconst_2:
480 case Bytecodes::_iconst_3:
481 case Bytecodes::_iconst_4:
482 case Bytecodes::_iconst_5:
483 case Bytecodes::_fconst_0:
484 case Bytecodes::_fconst_1:
485 case Bytecodes::_fconst_2:
486 case Bytecodes::_bipush:
487 case Bytecodes::_sipush:
488 case Bytecodes::_lconst_0:
489 case Bytecodes::_lconst_1:
490 case Bytecodes::_dconst_0:
491 case Bytecodes::_dconst_1:
492 case Bytecodes::_ldc2_w:
493 case Bytecodes::_ldc:
494 case Bytecodes::_ldc_w:
495 case Bytecodes::_iaload:
|