Mercurial > hg > truffle
diff src/share/vm/opto/idealKit.cpp @ 2385:0e3ed5a14f73
Merge
author | jcoomes |
---|---|
date | Thu, 24 Mar 2011 23:04:36 -0700 |
parents | 9dc311b8473e |
children | 1d1603768966 07acc51c1d2a |
line wrap: on
line diff
--- a/src/share/vm/opto/idealKit.cpp Thu Mar 24 23:00:27 2011 -0700 +++ b/src/share/vm/opto/idealKit.cpp Thu Mar 24 23:04:36 2011 -0700 @@ -154,8 +154,18 @@ // // Pushes the loop top cvstate first, then the else (loop exit) cvstate // onto the stack. -void IdealKit::loop(IdealVariable& iv, Node* init, BoolTest::mask relop, Node* limit, float prob, float cnt) { +void IdealKit::loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask relop, Node* limit, float prob, float cnt) { assert((state() & (BlockS|LoopS|IfThenS|ElseS)), "bad state for new loop"); + + // Sync IdealKit and graphKit. + gkit->set_all_memory(this->merged_memory()); + gkit->set_control(this->ctrl()); + // Add loop predicate. + gkit->add_predicate(nargs); + // Update IdealKit memory. + this->set_all_memory(gkit->merged_memory()); + this->set_ctrl(gkit->control()); + set(iv, init); Node* head = make_label(1); bind(head);