Mercurial > hg > graal-jvmci-8
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); |