< prev index next >
src/hotspot/share/opto/valuetypenode.hpp
Print this page
*** 49,59 ****
virtual ciValueKlass* value_klass() const = 0;
int make_scalar_in_safepoint(Unique_Node_List& worklist, SafePointNode* sfpt, Node* root, PhaseGVN* gvn);
// Initialize the value type fields with the inputs or outputs of a MultiNode
! void initialize(GraphKit* kit, MultiNode* multi, ciValueKlass* vk, int base_offset = 0, int base_input = TypeFunc::Parms+1, bool in = false);
const TypePtr* field_adr_type(Node* base, int offset, ciInstanceKlass* holder, PhaseGVN& gvn) const;
public:
// Support for control flow merges
--- 49,59 ----
virtual ciValueKlass* value_klass() const = 0;
int make_scalar_in_safepoint(Unique_Node_List& worklist, SafePointNode* sfpt, Node* root, PhaseGVN* gvn);
// 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
*** 123,142 ****
// 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, int 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
Node* allocate_fields(GraphKit* kit);
Node* tagged_klass(PhaseGVN& gvn);
- void pass_klass(Node* n, uint pos, const GraphKit& kit);
uint pass_fields(Node* call, int base_input, GraphKit& kit, bool assert_allocated = false, ciValueKlass* base_vk = NULL, int base_offset = 0);
// Allocation optimizations
void remove_redundant_allocations(PhaseIterGVN* igvn, PhaseIdealLoop* phase);
--- 123,141 ----
// 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
Node* allocate_fields(GraphKit* kit);
Node* tagged_klass(PhaseGVN& gvn);
uint pass_fields(Node* call, int base_input, GraphKit& kit, bool assert_allocated = false, ciValueKlass* base_vk = NULL, int base_offset = 0);
// Allocation optimizations
void remove_redundant_allocations(PhaseIterGVN* igvn, PhaseIdealLoop* phase);
< prev index next >