< prev index next >
src/hotspot/share/opto/macro.hpp
BarrierSetC2
class PhaseMacroExpand : public Phase {
private:
PhaseIterGVN &_igvn;
// Helper methods roughly modeled after GraphKit:
- Node* top() const { return C->top(); }
- Node* intcon(jint con) const { return _igvn.intcon(con); }
- Node* longcon(jlong con) const { return _igvn.longcon(con); }
- Node* makecon(const Type *t) const { return _igvn.makecon(t); }
Node* basic_plus_adr(Node* base, int offset) {
return (offset == 0)? base: basic_plus_adr(base, MakeConX(offset));
}
Node* basic_plus_adr(Node* base, Node* ptr, int offset) {
return (offset == 0)? ptr: basic_plus_adr(base, ptr, MakeConX(offset));
***************
bool eliminate_allocate_node(AllocateNode *alloc);
bool can_eliminate_allocation(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints);
bool scalar_replacement(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints_done);
void process_users_of_allocation(CallNode *alloc);
! void eliminate_card_mark(Node *cm);
void mark_eliminated_box(Node* box, Node* obj);
void mark_eliminated_locking_nodes(AbstractLockNode *alock);
bool eliminate_locking_node(AbstractLockNode *alock);
void expand_lock_node(LockNode *lock);
void expand_unlock_node(UnlockNode *unlock);
bool eliminate_allocate_node(AllocateNode *alloc);
bool can_eliminate_allocation(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints);
bool scalar_replacement(AllocateNode *alloc, GrowableArray <SafePointNode *>& safepoints_done);
void process_users_of_allocation(CallNode *alloc);
! void eliminate_gc_barrier(Node *p2x);
void mark_eliminated_box(Node* box, Node* obj);
void mark_eliminated_locking_nodes(AbstractLockNode *alock);
bool eliminate_locking_node(AbstractLockNode *alock);
void expand_lock_node(LockNode *lock);
void expand_unlock_node(UnlockNode *unlock);
***************
_igvn.set_delay_transform(true);
}
void eliminate_macro_nodes();
bool expand_macro_nodes();
+ // Members accessed from BarrierSetC2
+ void replace_node(Node* source, Node* target) { _igvn.replace_node(source, target); }
+ Node* intcon(jint con) const { return _igvn.intcon(con); }
+ Node* longcon(jlong con) const { return _igvn.longcon(con); }
+ Node* makecon(const Type *t) const { return _igvn.makecon(t); }
+ Node* top() const { return C->top(); }
};
#endif // SHARE_VM_OPTO_MACRO_HPP
< prev index next >