comparison src/share/vm/opto/compile.hpp @ 63:eac007780a58

6671807: (Escape Analysis) Add new ideal node to represent the state of a scalarized object at a safepoint Summary: Values of non-static fields of a scalarized object should be saved in debug info to reallocate the object during deoptimization. Reviewed-by: never
author kvn
date Thu, 13 Mar 2008 16:06:34 -0700
parents b789bcaf2dd9
children 99269dbf4ba8
comparison
equal deleted inserted replaced
46:8b6e49187640 63:eac007780a58
604 // Schedule and Bundle the instructions 604 // Schedule and Bundle the instructions
605 void ScheduleAndBundle(); 605 void ScheduleAndBundle();
606 606
607 // Build OopMaps for each GC point 607 // Build OopMaps for each GC point
608 void BuildOopMaps(); 608 void BuildOopMaps();
609 // Append debug info for the node to the array 609
610 void FillLocArray( int idx, Node *local, GrowableArray<ScopeValue*> *array ); 610 // Append debug info for the node "local" at safepoint node "sfpt" to the
611 // "array", May also consult and add to "objs", which describes the
612 // scalar-replaced objects.
613 void FillLocArray( int idx, MachSafePointNode* sfpt,
614 Node *local, GrowableArray<ScopeValue*> *array,
615 GrowableArray<ScopeValue*> *objs );
616
617 // If "objs" contains an ObjectValue whose id is "id", returns it, else NULL.
618 static ObjectValue* sv_for_node_id(GrowableArray<ScopeValue*> *objs, int id);
619 // Requres that "objs" does not contains an ObjectValue whose id matches
620 // that of "sv. Appends "sv".
621 static void set_sv_for_object_node(GrowableArray<ScopeValue*> *objs,
622 ObjectValue* sv );
611 623
612 // Process an OopMap Element while emitting nodes 624 // Process an OopMap Element while emitting nodes
613 void Process_OopMap_Node(MachNode *mach, int code_offset); 625 void Process_OopMap_Node(MachNode *mach, int code_offset);
614 626
615 // Write out basic block data to code buffer 627 // Write out basic block data to code buffer