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;
|