hotspot/src/share/vm/opto/parse2.cpp
changeset 17383 3665c0901a0d
parent 16613 58c6d72ad0ef
child 20693 1d94d9407c58
equal deleted inserted replaced
17382:bba473b81ec0 17383:3665c0901a0d
   985     // the path may be cold again. Make sure it doesn't look untaken
   985     // the path may be cold again. Make sure it doesn't look untaken
   986     profile_taken_branch(target_bci, !ProfileInterpreter);
   986     profile_taken_branch(target_bci, !ProfileInterpreter);
   987     uncommon_trap(Deoptimization::Reason_unreached,
   987     uncommon_trap(Deoptimization::Reason_unreached,
   988                   Deoptimization::Action_reinterpret,
   988                   Deoptimization::Action_reinterpret,
   989                   NULL, "cold");
   989                   NULL, "cold");
   990     if (EliminateAutoBox) {
   990     if (C->eliminate_boxing()) {
   991       // Mark the successor blocks as parsed
   991       // Mark the successor blocks as parsed
   992       branch_block->next_path_num();
   992       branch_block->next_path_num();
   993       next_block->next_path_num();
   993       next_block->next_path_num();
   994     }
   994     }
   995     return;
   995     return;
  1010     Node* iftrue  = _gvn.transform( new (C) IfTrueNode (iff) );
  1010     Node* iftrue  = _gvn.transform( new (C) IfTrueNode (iff) );
  1011     set_control(iftrue);
  1011     set_control(iftrue);
  1012 
  1012 
  1013     if (stopped()) {            // Path is dead?
  1013     if (stopped()) {            // Path is dead?
  1014       explicit_null_checks_elided++;
  1014       explicit_null_checks_elided++;
  1015       if (EliminateAutoBox) {
  1015       if (C->eliminate_boxing()) {
  1016         // Mark the successor block as parsed
  1016         // Mark the successor block as parsed
  1017         branch_block->next_path_num();
  1017         branch_block->next_path_num();
  1018       }
  1018       }
  1019     } else {                    // Path is live.
  1019     } else {                    // Path is live.
  1020       // Update method data
  1020       // Update method data
  1030   Node* iffalse = _gvn.transform( new (C) IfFalseNode(iff) );
  1030   Node* iffalse = _gvn.transform( new (C) IfFalseNode(iff) );
  1031   set_control(iffalse);
  1031   set_control(iffalse);
  1032 
  1032 
  1033   if (stopped()) {              // Path is dead?
  1033   if (stopped()) {              // Path is dead?
  1034     explicit_null_checks_elided++;
  1034     explicit_null_checks_elided++;
  1035     if (EliminateAutoBox) {
  1035     if (C->eliminate_boxing()) {
  1036       // Mark the successor block as parsed
  1036       // Mark the successor block as parsed
  1037       next_block->next_path_num();
  1037       next_block->next_path_num();
  1038     }
  1038     }
  1039   } else  {                     // Path is live.
  1039   } else  {                     // Path is live.
  1040     // Update method data
  1040     // Update method data
  1067     // the path may be cold again. Make sure it doesn't look untaken
  1067     // the path may be cold again. Make sure it doesn't look untaken
  1068     profile_taken_branch(target_bci, !ProfileInterpreter);
  1068     profile_taken_branch(target_bci, !ProfileInterpreter);
  1069     uncommon_trap(Deoptimization::Reason_unreached,
  1069     uncommon_trap(Deoptimization::Reason_unreached,
  1070                   Deoptimization::Action_reinterpret,
  1070                   Deoptimization::Action_reinterpret,
  1071                   NULL, "cold");
  1071                   NULL, "cold");
  1072     if (EliminateAutoBox) {
  1072     if (C->eliminate_boxing()) {
  1073       // Mark the successor blocks as parsed
  1073       // Mark the successor blocks as parsed
  1074       branch_block->next_path_num();
  1074       branch_block->next_path_num();
  1075       next_block->next_path_num();
  1075       next_block->next_path_num();
  1076     }
  1076     }
  1077     return;
  1077     return;
  1133   { PreserveJVMState pjvms(this);
  1133   { PreserveJVMState pjvms(this);
  1134     taken_branch = _gvn.transform(taken_branch);
  1134     taken_branch = _gvn.transform(taken_branch);
  1135     set_control(taken_branch);
  1135     set_control(taken_branch);
  1136 
  1136 
  1137     if (stopped()) {
  1137     if (stopped()) {
  1138       if (EliminateAutoBox) {
  1138       if (C->eliminate_boxing()) {
  1139         // Mark the successor block as parsed
  1139         // Mark the successor block as parsed
  1140         branch_block->next_path_num();
  1140         branch_block->next_path_num();
  1141       }
  1141       }
  1142     } else {
  1142     } else {
  1143       // Update method data
  1143       // Update method data
  1152   untaken_branch = _gvn.transform(untaken_branch);
  1152   untaken_branch = _gvn.transform(untaken_branch);
  1153   set_control(untaken_branch);
  1153   set_control(untaken_branch);
  1154 
  1154 
  1155   // Branch not taken.
  1155   // Branch not taken.
  1156   if (stopped()) {
  1156   if (stopped()) {
  1157     if (EliminateAutoBox) {
  1157     if (C->eliminate_boxing()) {
  1158       // Mark the successor block as parsed
  1158       // Mark the successor block as parsed
  1159       next_block->next_path_num();
  1159       next_block->next_path_num();
  1160     }
  1160     }
  1161   } else {
  1161   } else {
  1162     // Update method data
  1162     // Update method data