< prev index next >
src/share/vm/opto/node.hpp
Print this page
*** 283,292 ****
--- 283,294 ----
// users of this node.
node_idx_t _outcnt; // Total number of Node outputs.
node_idx_t _outmax; // Actual length of output array.
+ node_idx_t _attr; // Programmable phase attribute used for scratch info
+
// Grow the actual input array to the next larger power-of-2 bigger than len.
void grow( uint len );
// Grow the output array to the next larger power-of-2 bigger than len.
void out_grow( uint len );
*** 298,307 ****
--- 300,310 ----
const node_idx_t _idx;
// Get the (read-only) number of input edges
uint req() const { return _cnt; }
uint len() const { return _max; }
+ uint attr() const { return _attr; }
// Get the (read-only) number of output edges
uint outcnt() const { return _outcnt; }
#if OPTO_DU_ITERATOR_ASSERT
// Iterate over the out-edges of this node. Deletions are illegal.
*** 400,409 ****
--- 403,413 ----
if (*p != NULL) (*p)->del_out((Node *)this);
(*p) = n;
if (n != NULL) n->add_out((Node *)this);
Compile::current()->record_modified_node(this);
}
+ void set_attr(uint i) { _attr = i; }
// Light version of set_req() to init inputs after node creation.
void init_req( uint i, Node *n ) {
assert( i == 0 && this == n ||
is_not_dead(n), "can not use dead node");
assert( i < _cnt, "oob");
*** 671,681 ****
Flag_is_dead_loop_safe = Flag_is_cisc_alternate << 1,
Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
Flag_avoid_back_to_back_before = Flag_may_be_short_branch << 1,
Flag_avoid_back_to_back_after = Flag_avoid_back_to_back_before << 1,
Flag_has_call = Flag_avoid_back_to_back_after << 1,
! Flag_is_expensive = Flag_has_call << 1,
_max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination
};
private:
jushort _class_id;
--- 675,687 ----
Flag_is_dead_loop_safe = Flag_is_cisc_alternate << 1,
Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
Flag_avoid_back_to_back_before = Flag_may_be_short_branch << 1,
Flag_avoid_back_to_back_after = Flag_avoid_back_to_back_before << 1,
Flag_has_call = Flag_avoid_back_to_back_after << 1,
! Flag_is_loop_carried_dep = Flag_has_call << 1,
! Flag_has_reduction = Flag_is_loop_carried_dep << 1,
! Flag_is_expensive = Flag_has_reduction << 1,
_max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination
};
private:
jushort _class_id;
*** 699,708 ****
--- 705,718 ----
public:
const jushort class_id() const { return _class_id; }
const jushort flags() const { return _flags; }
+ void add_flag(jushort fl) { init_flags(fl); }
+
+ void remove_flag(jushort fl) { clear_flag(fl); }
+
// Return a dense integer opcode number
virtual int Opcode() const;
// Virtual inherited Node size
virtual uint size_of() const;
< prev index next >