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

src/share/vm/opto/phaseX.cpp

Print this page




 847   debug_only(uint num_processed  = 0;);
 848 #ifndef PRODUCT
 849   {
 850     _verify_counter = 0;
 851     _verify_full_passes = 0;
 852     for ( int i = 0; i < _verify_window_size; i++ ) {
 853       _verify_window[i] = NULL;
 854     }
 855   }
 856 #endif
 857 
 858 #ifdef ASSERT
 859   Node* prev = NULL;
 860   uint rep_cnt = 0;
 861 #endif
 862   uint loop_count = 0;
 863 
 864   // Pull from worklist; transform node;
 865   // If node has changed: update edge info and put uses on worklist.
 866   while( _worklist.size() ) {




 867     Node *n  = _worklist.pop();
 868     if (++loop_count >= K * C->unique()) {
 869       debug_only(n->dump(4);)
 870       assert(false, "infinite loop in PhaseIterGVN::optimize");
 871       C->record_method_not_compilable("infinite loop in PhaseIterGVN::optimize");
 872       return;
 873     }
 874 #ifdef ASSERT
 875     if (n == prev) {
 876       if (++rep_cnt > 3) {
 877         n->dump(4);
 878         assert(false, "loop in Ideal transformation");
 879       }
 880     } else {
 881       rep_cnt = 0;
 882     }
 883     prev = n;
 884 #endif
 885     if (TraceIterativeGVN && Verbose) {
 886       tty->print("  Pop ");




 847   debug_only(uint num_processed  = 0;);
 848 #ifndef PRODUCT
 849   {
 850     _verify_counter = 0;
 851     _verify_full_passes = 0;
 852     for ( int i = 0; i < _verify_window_size; i++ ) {
 853       _verify_window[i] = NULL;
 854     }
 855   }
 856 #endif
 857 
 858 #ifdef ASSERT
 859   Node* prev = NULL;
 860   uint rep_cnt = 0;
 861 #endif
 862   uint loop_count = 0;
 863 
 864   // Pull from worklist; transform node;
 865   // If node has changed: update edge info and put uses on worklist.
 866   while( _worklist.size() ) {
 867     if (C->check_node_count(NodeLimitFudgeFactor * 2,
 868                             "out of nodes optimizing method")) {
 869       return;
 870     }
 871     Node *n  = _worklist.pop();
 872     if (++loop_count >= K * C->unique()) {
 873       debug_only(n->dump(4);)
 874       assert(false, "infinite loop in PhaseIterGVN::optimize");
 875       C->record_method_not_compilable("infinite loop in PhaseIterGVN::optimize");
 876       return;
 877     }
 878 #ifdef ASSERT
 879     if (n == prev) {
 880       if (++rep_cnt > 3) {
 881         n->dump(4);
 882         assert(false, "loop in Ideal transformation");
 883       }
 884     } else {
 885       rep_cnt = 0;
 886     }
 887     prev = n;
 888 #endif
 889     if (TraceIterativeGVN && Verbose) {
 890       tty->print("  Pop ");


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