2391 // Keep loop predicates and perform optimizations with them
2392 // until no more loop optimizations could be done.
2393 // After that switch predicates off and do more loop optimizations.
2394 if (!C->major_progress() && (C->predicate_count() > 0)) {
2395 C->cleanup_loop_predicates(_igvn);
2396 #ifndef PRODUCT
2397 if (TraceLoopOpts) {
2398 tty->print_cr("PredicatesOff");
2399 }
2400 #endif
2401 C->set_major_progress();
2402 }
2403
2404 // Convert scalar to superword operations at the end of all loop opts.
2405 if (UseSuperWord && C->has_loops() && !C->major_progress()) {
2406 // SuperWord transform
2407 SuperWord sw(this);
2408 for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) {
2409 IdealLoopTree* lpt = iter.current();
2410 if (lpt->is_counted()) {
2411 sw.transform_loop(lpt);
2412 }
2413 }
2414 }
2415
2416 // Cleanup any modified bits
2417 _igvn.optimize();
2418
2419 // disable assert until issue with split_flow_path is resolved (6742111)
2420 // assert(!_has_irreducible_loops || C->parsed_irreducible_loop() || C->is_osr_compilation(),
2421 // "shouldn't introduce irreducible loops");
2422
2423 if (C->log() != NULL) {
2424 log_loop_tree(_ltree_root, _ltree_root, C->log());
2425 }
2426 }
2427
2428 #ifndef PRODUCT
2429 //------------------------------print_statistics-------------------------------
2430 int PhaseIdealLoop::_loop_invokes=0;// Count of PhaseIdealLoop invokes
2431 int PhaseIdealLoop::_loop_work=0; // Sum of PhaseIdealLoop x unique
|
2391 // Keep loop predicates and perform optimizations with them
2392 // until no more loop optimizations could be done.
2393 // After that switch predicates off and do more loop optimizations.
2394 if (!C->major_progress() && (C->predicate_count() > 0)) {
2395 C->cleanup_loop_predicates(_igvn);
2396 #ifndef PRODUCT
2397 if (TraceLoopOpts) {
2398 tty->print_cr("PredicatesOff");
2399 }
2400 #endif
2401 C->set_major_progress();
2402 }
2403
2404 // Convert scalar to superword operations at the end of all loop opts.
2405 if (UseSuperWord && C->has_loops() && !C->major_progress()) {
2406 // SuperWord transform
2407 SuperWord sw(this);
2408 for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) {
2409 IdealLoopTree* lpt = iter.current();
2410 if (lpt->is_counted()) {
2411 sw.transform_loop(lpt, true);
2412 }
2413 }
2414 }
2415
2416 // Cleanup any modified bits
2417 _igvn.optimize();
2418
2419 // disable assert until issue with split_flow_path is resolved (6742111)
2420 // assert(!_has_irreducible_loops || C->parsed_irreducible_loop() || C->is_osr_compilation(),
2421 // "shouldn't introduce irreducible loops");
2422
2423 if (C->log() != NULL) {
2424 log_loop_tree(_ltree_root, _ltree_root, C->log());
2425 }
2426 }
2427
2428 #ifndef PRODUCT
2429 //------------------------------print_statistics-------------------------------
2430 int PhaseIdealLoop::_loop_invokes=0;// Count of PhaseIdealLoop invokes
2431 int PhaseIdealLoop::_loop_work=0; // Sum of PhaseIdealLoop x unique
|