src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6775880 Sdiff src/share/vm/opto

src/share/vm/opto/compile.cpp

Print this page




1515   ResourceMark rm;
1516   int          loop_opts_cnt;
1517 
1518   NOT_PRODUCT( verify_graph_edges(); )
1519 
1520   print_method("After Parsing");
1521 
1522  {
1523   // Iterative Global Value Numbering, including ideal transforms
1524   // Initialize IterGVN with types and values from parse-time GVN
1525   PhaseIterGVN igvn(initial_gvn());
1526   {
1527     NOT_PRODUCT( TracePhase t2("iterGVN", &_t_iterGVN, TimeCompiler); )
1528     igvn.optimize();
1529   }
1530 
1531   print_method("Iter GVN 1", 2);
1532 
1533   if (failing())  return;
1534 
1535   // get rid of the connection graph since it's information is not
1536   // updated by optimizations
1537   _congraph = NULL;
1538 
1539 
1540   // Loop transforms on the ideal graph.  Range Check Elimination,
1541   // peeling, unrolling, etc.
1542 
1543   // Set loop opts counter
1544   loop_opts_cnt = num_loop_opts();
1545   if((loop_opts_cnt > 0) && (has_loops() || has_split_ifs())) {
1546     {
1547       TracePhase t2("idealLoop", &_t_idealLoop, true);
1548       PhaseIdealLoop ideal_loop( igvn, NULL, true );
1549       loop_opts_cnt--;
1550       if (major_progress()) print_method("PhaseIdealLoop 1", 2);
1551       if (failing())  return;
1552     }
1553     // Loop opts pass if partial peeling occurred in previous pass
1554     if(PartialPeelLoop && major_progress() && (loop_opts_cnt > 0)) {
1555       TracePhase t3("idealLoop", &_t_idealLoop, true);
1556       PhaseIdealLoop ideal_loop( igvn, NULL, false );
1557       loop_opts_cnt--;
1558       if (major_progress()) print_method("PhaseIdealLoop 2", 2);
1559       if (failing())  return;




1515   ResourceMark rm;
1516   int          loop_opts_cnt;
1517 
1518   NOT_PRODUCT( verify_graph_edges(); )
1519 
1520   print_method("After Parsing");
1521 
1522  {
1523   // Iterative Global Value Numbering, including ideal transforms
1524   // Initialize IterGVN with types and values from parse-time GVN
1525   PhaseIterGVN igvn(initial_gvn());
1526   {
1527     NOT_PRODUCT( TracePhase t2("iterGVN", &_t_iterGVN, TimeCompiler); )
1528     igvn.optimize();
1529   }
1530 
1531   print_method("Iter GVN 1", 2);
1532 
1533   if (failing())  return;
1534 





1535   // Loop transforms on the ideal graph.  Range Check Elimination,
1536   // peeling, unrolling, etc.
1537 
1538   // Set loop opts counter
1539   loop_opts_cnt = num_loop_opts();
1540   if((loop_opts_cnt > 0) && (has_loops() || has_split_ifs())) {
1541     {
1542       TracePhase t2("idealLoop", &_t_idealLoop, true);
1543       PhaseIdealLoop ideal_loop( igvn, NULL, true );
1544       loop_opts_cnt--;
1545       if (major_progress()) print_method("PhaseIdealLoop 1", 2);
1546       if (failing())  return;
1547     }
1548     // Loop opts pass if partial peeling occurred in previous pass
1549     if(PartialPeelLoop && major_progress() && (loop_opts_cnt > 0)) {
1550       TracePhase t3("idealLoop", &_t_idealLoop, true);
1551       PhaseIdealLoop ideal_loop( igvn, NULL, false );
1552       loop_opts_cnt--;
1553       if (major_progress()) print_method("PhaseIdealLoop 2", 2);
1554       if (failing())  return;


src/share/vm/opto/compile.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File