comparison src/share/vm/opto/idealKit.hpp @ 2383:9dc311b8473e

7008866: Missing loop predicate for loop with multiple entries Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed. Reviewed-by: never
author kvn
date Mon, 21 Mar 2011 11:28:14 -0700
parents f95d63e2154a
children 1d1603768966 07acc51c1d2a
comparison
equal deleted inserted replaced
2382:3ef1a1866a60 2383:9dc311b8473e
27 27
28 #include "opto/addnode.hpp" 28 #include "opto/addnode.hpp"
29 #include "opto/cfgnode.hpp" 29 #include "opto/cfgnode.hpp"
30 #include "opto/connode.hpp" 30 #include "opto/connode.hpp"
31 #include "opto/divnode.hpp" 31 #include "opto/divnode.hpp"
32 #include "opto/graphKit.hpp"
32 #include "opto/mulnode.hpp" 33 #include "opto/mulnode.hpp"
33 #include "opto/phaseX.hpp" 34 #include "opto/phaseX.hpp"
34 #include "opto/subnode.hpp" 35 #include "opto/subnode.hpp"
35 #include "opto/type.hpp" 36 #include "opto/type.hpp"
36 37
158 void if_then(Node* left, BoolTest::mask relop, Node* right, 159 void if_then(Node* left, BoolTest::mask relop, Node* right,
159 float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN, 160 float prob = PROB_FAIR, float cnt = COUNT_UNKNOWN,
160 bool push_new_state = true); 161 bool push_new_state = true);
161 void else_(); 162 void else_();
162 void end_if(); 163 void end_if();
163 void loop(IdealVariable& iv, Node* init, BoolTest::mask cmp, Node* limit, 164 void loop(GraphKit* gkit, int nargs, IdealVariable& iv, Node* init, BoolTest::mask cmp, Node* limit,
164 float prob = PROB_LIKELY(0.9), float cnt = COUNT_UNKNOWN); 165 float prob = PROB_LIKELY(0.9), float cnt = COUNT_UNKNOWN);
165 void end_loop(); 166 void end_loop();
166 Node* make_label(int goto_ct); 167 Node* make_label(int goto_ct);
167 void bind(Node* lab); 168 void bind(Node* lab);
168 void goto_(Node* lab, bool bind = false); 169 void goto_(Node* lab, bool bind = false);