@@ -891,9 +891,12 @@ void PhaseIterGVN::verify_step(Node* n) {
891
891
}
892
892
893
893
void PhaseIterGVN::trace_PhaseIterGVN (Node* n, Node* nn, const Type* oldtype) {
894
+ const Type* newtype = type_or_null (n);
895
+ if (nn != n || oldtype != newtype) {
896
+ C->print_method (PHASE_AFTER_ITER_GVN_STEP, 4 , n);
897
+ }
894
898
if (TraceIterativeGVN) {
895
899
uint wlsize = _worklist.size ();
896
- const Type* newtype = type_or_null (n);
897
900
if (nn != n) {
898
901
// print old node
899
902
tty->print (" < " );
@@ -1021,6 +1024,7 @@ void PhaseIterGVN::trace_PhaseIterGVN_verbose(Node* n, int num_processed) {
1021
1024
void PhaseIterGVN::optimize () {
1022
1025
DEBUG_ONLY (uint num_processed = 0 ;)
1023
1026
NOT_PRODUCT (init_verifyPhaseIterGVN ();)
1027
+ C->print_method (PHASE_BEFORE_ITER_GVN, 3 );
1024
1028
if (StressIGVN) {
1025
1029
shuffle_worklist ();
1026
1030
}
@@ -1030,12 +1034,14 @@ void PhaseIterGVN::optimize() {
1030
1034
// update edge info and put uses on worklist.
1031
1035
while (_worklist.size ()) {
1032
1036
if (C->check_node_count (NodeLimitFudgeFactor * 2 , " Out of nodes" )) {
1037
+ C->print_method (PHASE_AFTER_ITER_GVN, 3 );
1033
1038
return ;
1034
1039
}
1035
1040
Node* n = _worklist.pop ();
1036
1041
if (loop_count >= K * C->live_nodes ()) {
1037
1042
DEBUG_ONLY (dump_infinite_loop_info (n, " PhaseIterGVN::optimize" );)
1038
1043
C->record_method_not_compilable (" infinite loop in PhaseIterGVN::optimize" );
1044
+ C->print_method (PHASE_AFTER_ITER_GVN, 3 );
1039
1045
return ;
1040
1046
}
1041
1047
DEBUG_ONLY (trace_PhaseIterGVN_verbose (n, num_processed++);)
@@ -1050,6 +1056,7 @@ void PhaseIterGVN::optimize() {
1050
1056
loop_count++;
1051
1057
}
1052
1058
NOT_PRODUCT (verify_PhaseIterGVN ();)
1059
+ C->print_method (PHASE_AFTER_ITER_GVN, 3 );
1053
1060
}
1054
1061
1055
1062
#ifdef ASSERT
0 commit comments