< prev index next > src/hotspot/share/opto/macro.hpp
BarrierSetC2_enhancements
class PhaseMacroExpand : public Phase {
private:
PhaseIterGVN &_igvn;
+public:
// Helper methods roughly modeled after GraphKit:
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) {
Node* make_load( Node* ctl, Node* mem, Node* base, int offset,
const Type* value_type, BasicType bt);
Node* make_store(Node* ctl, Node* mem, Node* base, int offset,
Node* value, BasicType bt);
+private:
// projections extracted from a call node
ProjNode *_fallthroughproj;
ProjNode *_fallthroughcatchproj;
ProjNode *_ioproj_fallthrough;
ProjNode *_ioproj_catchall;
_igvn.set_delay_transform(true);
}
void eliminate_macro_nodes();
bool expand_macro_nodes();
+ PhaseIterGVN &igvn() const { return _igvn; }
+
// 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); }
< prev index next >