< prev index next >
src/share/vm/opto/memnode.hpp
Print this page
*** 1011,1033 ****
virtual int Opcode() const;
};
//------------------------------ClearArray-------------------------------------
class ClearArrayNode: public Node {
public:
! ClearArrayNode( Node *ctrl, Node *arymem, Node *word_cnt, Node *base )
! : Node(ctrl,arymem,word_cnt,base) {
init_class_id(Class_ClearArray);
}
virtual int Opcode() const;
virtual const Type *bottom_type() const { return Type::MEMORY; }
// ClearArray modifies array elements, and so affects only the
// array memory addressed by the bottom_type of its base address.
virtual const class TypePtr *adr_type() const;
virtual Node* Identity(PhaseGVN* phase);
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual uint match_edge(uint idx) const;
// Clear the given area of an object or array.
// The start offset must always be aligned mod BytesPerInt.
// The end offset must always be aligned mod BytesPerLong.
// Return the new memory.
--- 1011,1036 ----
virtual int Opcode() const;
};
//------------------------------ClearArray-------------------------------------
class ClearArrayNode: public Node {
+ private:
+ bool _is_large;
public:
! ClearArrayNode( Node *ctrl, Node *arymem, Node *word_cnt, Node *base, bool is_large = false)
! : Node(ctrl,arymem,word_cnt,base), _is_large(is_large) {
init_class_id(Class_ClearArray);
}
virtual int Opcode() const;
virtual const Type *bottom_type() const { return Type::MEMORY; }
// ClearArray modifies array elements, and so affects only the
// array memory addressed by the bottom_type of its base address.
virtual const class TypePtr *adr_type() const;
virtual Node* Identity(PhaseGVN* phase);
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
virtual uint match_edge(uint idx) const;
+ bool is_large() const { return _is_large; }
// Clear the given area of an object or array.
// The start offset must always be aligned mod BytesPerInt.
// The end offset must always be aligned mod BytesPerLong.
// Return the new memory.
< prev index next >