Mercurial > hg > truffle
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 |