hotspot/src/share/vm/opto/matcher.cpp
changeset 2573 b5002ef26155
parent 2348 4e71ed4c2709
child 3176 2a5f513df340
equal deleted inserted replaced
2572:6c972d3d2144 2573:b5002ef26155
   273   find_shared( C->root() );
   273   find_shared( C->root() );
   274   find_shared( C->top() );
   274   find_shared( C->top() );
   275 
   275 
   276   C->print_method("Before Matching");
   276   C->print_method("Before Matching");
   277 
   277 
       
   278   // Create new ideal node ConP #NULL even if it does exist in old space
       
   279   // to avoid false sharing if the corresponding mach node is not used.
       
   280   // The corresponding mach node is only used in rare cases for derived
       
   281   // pointers.
       
   282   Node* new_ideal_null = ConNode::make(C, TypePtr::NULL_PTR);
       
   283 
   278   // Swap out to old-space; emptying new-space
   284   // Swap out to old-space; emptying new-space
   279   Arena *old = C->node_arena()->move_contents(C->old_arena());
   285   Arena *old = C->node_arena()->move_contents(C->old_arena());
   280 
   286 
   281   // Save debug and profile information for nodes in old space:
   287   // Save debug and profile information for nodes in old space:
   282   _old_node_note_array = C->node_note_array();
   288   _old_node_note_array = C->node_note_array();
   314           --j;
   320           --j;
   315           --jmax;
   321           --jmax;
   316         }
   322         }
   317       }
   323       }
   318 
   324 
       
   325       // Generate new mach node for ConP #NULL
       
   326       assert(new_ideal_null != NULL, "sanity");
       
   327       _mach_null = match_tree(new_ideal_null);
       
   328       // Don't set control, it will confuse GCM since there are no uses.
       
   329       // The control will be set when this node is used first time
       
   330       // in find_base_for_derived().
       
   331       assert(_mach_null != NULL, "");
       
   332 
   319       C->set_root(xroot->is_Root() ? xroot->as_Root() : NULL);
   333       C->set_root(xroot->is_Root() ? xroot->as_Root() : NULL);
       
   334 
   320 #ifdef ASSERT
   335 #ifdef ASSERT
   321       verify_new_nodes_only(xroot);
   336       verify_new_nodes_only(xroot);
   322 #endif
   337 #endif
   323     }
   338     }
   324   }
   339   }