comparison src/share/vm/opto/idealKit.hpp @ 2468:6c97c830fb6f

Merge
author jrose
date Sat, 09 Apr 2011 21:16:12 -0700
parents 1d1603768966 07acc51c1d2a
children e626685e9f6c
comparison
equal deleted inserted replaced
2439:0930dc920c18 2468:6c97c830fb6f
106 Node* _cvstate; // current cvstate (control, memory and variables) 106 Node* _cvstate; // current cvstate (control, memory and variables)
107 uint _var_ct; // number of variables 107 uint _var_ct; // number of variables
108 bool _delay_all_transforms; // flag forcing all transforms to be delayed 108 bool _delay_all_transforms; // flag forcing all transforms to be delayed
109 Node* _initial_ctrl; // saves initial control until variables declared 109 Node* _initial_ctrl; // saves initial control until variables declared
110 Node* _initial_memory; // saves initial memory until variables declared 110 Node* _initial_memory; // saves initial memory until variables declared
111 Node* _initial_i_o; // saves initial i_o until variables declared
111 112
112 PhaseGVN& gvn() const { return _gvn; } 113 PhaseGVN& gvn() const { return _gvn; }
113 // Create a new cvstate filled with nulls 114 // Create a new cvstate filled with nulls
114 Node* new_cvstate(); // Create a new cvstate 115 Node* new_cvstate(); // Create a new cvstate
115 Node* cvstate() { return _cvstate; } // current cvstate 116 Node* cvstate() { return _cvstate; } // current cvstate
140 141
141 // Users should not care about slices only MergedMem so no access for them. 142 // Users should not care about slices only MergedMem so no access for them.
142 Node* memory(uint alias_idx); 143 Node* memory(uint alias_idx);
143 144
144 public: 145 public:
145 IdealKit(PhaseGVN &gvn, Node* control, Node* memory, bool delay_all_transforms = false, bool has_declarations = false); 146 IdealKit(GraphKit* gkit, bool delay_all_transforms = false, bool has_declarations = false);
146 ~IdealKit() { 147 ~IdealKit() {
147 stop(); 148 stop();
148 drain_delay_transform(); 149 drain_delay_transform();
149 } 150 }
151 void sync_kit(GraphKit* gkit);
152
150 // Control 153 // Control
151 Node* ctrl() { return _cvstate->in(TypeFunc::Control); } 154 Node* ctrl() { return _cvstate->in(TypeFunc::Control); }
152 void set_ctrl(Node* ctrl) { _cvstate->set_req(TypeFunc::Control, ctrl); } 155 void set_ctrl(Node* ctrl) { _cvstate->set_req(TypeFunc::Control, ctrl); }
153 Node* top() { return C->top(); } 156 Node* top() { return C->top(); }
154 MergeMemNode* merged_memory() { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); } 157 MergeMemNode* merged_memory() { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); }
155 void set_all_memory(Node* mem) { _cvstate->set_req(TypeFunc::Memory, mem); } 158 void set_all_memory(Node* mem) { _cvstate->set_req(TypeFunc::Memory, mem); }
159 Node* i_o() { return _cvstate->in(TypeFunc::I_O); }
160 void set_i_o(Node* c) { _cvstate->set_req(TypeFunc::I_O, c); }
156 void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); } 161 void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); }
157 Node* value(IdealVariable& v) { return _cvstate->in(first_var + v.id()); } 162 Node* value(IdealVariable& v) { return _cvstate->in(first_var + v.id()); }
158 void dead(IdealVariable& v) { set(v, (Node*)NULL); } 163 void dead(IdealVariable& v) { set(v, (Node*)NULL); }
159 void if_then(Node* left, BoolTest::mask relop, Node* right, 164 void if_then(Node* left, BoolTest::mask relop, Node* right,
160 float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN, 165 float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN,
237 void make_leaf_call(const TypeFunc *slow_call_type, 242 void make_leaf_call(const TypeFunc *slow_call_type,
238 address slow_call, 243 address slow_call,
239 const char *leaf_name, 244 const char *leaf_name,
240 Node* parm0, 245 Node* parm0,
241 Node* parm1 = NULL, 246 Node* parm1 = NULL,
242 Node* parm2 = NULL); 247 Node* parm2 = NULL,
248 Node* parm3 = NULL);
249
250 void make_leaf_call_no_fp(const TypeFunc *slow_call_type,
251 address slow_call,
252 const char *leaf_name,
253 const TypePtr* adr_type,
254 Node* parm0,
255 Node* parm1,
256 Node* parm2,
257 Node* parm3);
258
243 }; 259 };
244 260
245 #endif // SHARE_VM_OPTO_IDEALKIT_HPP 261 #endif // SHARE_VM_OPTO_IDEALKIT_HPP