< prev index next >

src/hotspot/share/opto/valuetypenode.hpp

Print this page

        

*** 51,61 **** int make_scalar_in_safepoint(PhaseIterGVN* igvn, Unique_Node_List& worklist, SafePointNode* sfpt); // Initialize the value type fields with the inputs or outputs of a MultiNode void initialize(GraphKit* kit, MultiNode* multi, ciValueKlass* vk, int base_offset, uint& base_input, bool in); ! const TypePtr* field_adr_type(Node* base, int offset, ciInstanceKlass* holder, PhaseGVN& gvn) const; public: // Support for control flow merges bool has_phi_inputs(Node* region); ValueTypeBaseNode* clone_with_phis(PhaseGVN* gvn, Node* region); --- 51,61 ---- int make_scalar_in_safepoint(PhaseIterGVN* igvn, Unique_Node_List& worklist, SafePointNode* sfpt); // Initialize the value type fields with the inputs or outputs of a MultiNode void initialize(GraphKit* kit, MultiNode* multi, ciValueKlass* vk, int base_offset, uint& base_input, bool in); ! const TypePtr* field_adr_type(Node* base, int offset, ciInstanceKlass* holder, DecoratorSet decorators, PhaseGVN& gvn) const; public: // Support for control flow merges bool has_phi_inputs(Node* region); ValueTypeBaseNode* clone_with_phis(PhaseGVN* gvn, Node* region);
*** 79,93 **** // Replace ValueTypeNodes in debug info at safepoints with SafePointScalarObjectNodes void make_scalar_in_safepoints(PhaseIterGVN* igvn); // Store the value type as a flattened (headerless) representation ! void store_flattened(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0) const; // Store the field values to memory ! void store(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0, bool deoptimize_on_exception = false) const; // Initialize the value type by loading its field values from memory ! void load(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0); // Allocates the value type (if not yet allocated) ValueTypeBaseNode* allocate(GraphKit* kit, bool deoptimize_on_exception = false); bool is_allocated(PhaseGVN* phase) const; --- 79,93 ---- // Replace ValueTypeNodes in debug info at safepoints with SafePointScalarObjectNodes void make_scalar_in_safepoints(PhaseIterGVN* igvn); // Store the value type as a flattened (headerless) representation ! void store_flattened(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0, DecoratorSet decorators = IN_HEAP | MO_UNORDERED) const; // Store the field values to memory ! void store(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0, bool deoptimize_on_exception = false, DecoratorSet decorators = IN_HEAP | MO_UNORDERED) const; // Initialize the value type by loading its field values from memory ! void load(GraphKit* kit, Node* base, Node* ptr, ciInstanceKlass* holder, int holder_offset = 0, DecoratorSet decorators = IN_HEAP | MO_UNORDERED); // Allocates the value type (if not yet allocated) ValueTypeBaseNode* allocate(GraphKit* kit, bool deoptimize_on_exception = false); bool is_allocated(PhaseGVN* phase) const;
*** 121,133 **** // Create with default field values static ValueTypeNode* make_default(PhaseGVN& gvn, ciValueKlass* vk); // Create and initialize by loading the field values from an oop static ValueTypeNode* make_from_oop(GraphKit* kit, Node* oop, ciValueKlass* vk); // Create and initialize by loading the field values from a flattened field or array ! static ValueTypeNode* make_from_flattened(GraphKit* kit, ciValueKlass* vk, Node* obj, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0); // Create and initialize with the inputs or outputs of a MultiNode (method entry or call) static ValueTypeNode* make_from_multi(GraphKit* kit, MultiNode* multi, ciValueKlass* vk, uint& base_input, bool in); // Returns the constant oop of the default value type allocation static Node* default_oop(PhaseGVN& gvn, ciValueKlass* vk); // Allocate all non-flattened value type fields --- 121,135 ---- // Create with default field values static ValueTypeNode* make_default(PhaseGVN& gvn, ciValueKlass* vk); // Create and initialize by loading the field values from an oop static ValueTypeNode* make_from_oop(GraphKit* kit, Node* oop, ciValueKlass* vk); // Create and initialize by loading the field values from a flattened field or array ! static ValueTypeNode* make_from_flattened(GraphKit* kit, ciValueKlass* vk, Node* obj, Node* ptr, ciInstanceKlass* holder = NULL, int holder_offset = 0, DecoratorSet decorators = IN_HEAP | MO_UNORDERED); // Create and initialize with the inputs or outputs of a MultiNode (method entry or call) static ValueTypeNode* make_from_multi(GraphKit* kit, MultiNode* multi, ciValueKlass* vk, uint& base_input, bool in); + ValueTypeNode* make_larval(GraphKit* kit, bool allocate) const; + ValueTypeNode* finish_larval(GraphKit* kit) const; // Returns the constant oop of the default value type allocation static Node* default_oop(PhaseGVN& gvn, ciValueKlass* vk); // Allocate all non-flattened value type fields
< prev index next >