--- a/hotspot/src/share/vm/opto/idealKit.hpp Wed Jul 15 13:37:35 2009 -0700
+++ b/hotspot/src/share/vm/opto/idealKit.hpp Thu Jul 16 14:10:42 2009 -0700
@@ -49,7 +49,7 @@
// Example:
// Node* limit = ??
// IdealVariable i(kit), j(kit);
-// declares_done();
+// declarations_done();
// Node* exit = make_label(1); // 1 goto
// set(j, ConI(0));
// loop(i, ConI(0), BoolTest::lt, limit); {
@@ -101,10 +101,7 @@
Node* new_cvstate(); // Create a new cvstate
Node* cvstate() { return _cvstate; } // current cvstate
Node* copy_cvstate(); // copy current cvstate
- void set_ctrl(Node* ctrl) { _cvstate->set_req(TypeFunc::Control, ctrl); }
- // Should this assert this is a MergeMem???
- void set_all_memory(Node* mem){ _cvstate->set_req(TypeFunc::Memory, mem); }
void set_memory(Node* mem, uint alias_idx );
void do_memory_merge(Node* merging, Node* join);
void clear(Node* m); // clear a cvstate
@@ -132,15 +129,17 @@
Node* memory(uint alias_idx);
public:
- IdealKit(PhaseGVN &gvn, Node* control, Node* memory, bool delay_all_transforms = false);
+ IdealKit(PhaseGVN &gvn, Node* control, Node* memory, bool delay_all_transforms = false, bool has_declarations = false);
~IdealKit() {
stop();
drain_delay_transform();
}
// Control
Node* ctrl() { return _cvstate->in(TypeFunc::Control); }
+ void set_ctrl(Node* ctrl) { _cvstate->set_req(TypeFunc::Control, ctrl); }
Node* top() { return C->top(); }
MergeMemNode* merged_memory() { return _cvstate->in(TypeFunc::Memory)->as_MergeMem(); }
+ void set_all_memory(Node* mem) { _cvstate->set_req(TypeFunc::Memory, mem); }
void set(IdealVariable& v, Node* rhs) { _cvstate->set_req(first_var + v.id(), rhs); }
Node* value(IdealVariable& v) { return _cvstate->in(first_var + v.id()); }
void dead(IdealVariable& v) { set(v, (Node*)NULL); }
@@ -155,7 +154,7 @@
Node* make_label(int goto_ct);
void bind(Node* lab);
void goto_(Node* lab, bool bind = false);
- void declares_done();
+ void declarations_done();
void drain_delay_transform();
Node* IfTrue(IfNode* iff) { return transform(new (C,1) IfTrueNode(iff)); }