Mercurial > hg > graal-compiler
comparison src/share/vm/opto/subnode.cpp @ 400:cc80376deb0c
6667595: Set probability FAIR for pre-, post- loops and ALWAYS for main loop
Summary: Fix loop's probability. Add optimizations to avoid spilling. Change InlineSmallCode to product flag.
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 02 Oct 2008 08:37:44 -0700 |
parents | ce93a51457ae |
children | 90a66aa50514 |
comparison
equal
deleted
inserted
replaced
372:be41fa651400 | 400:cc80376deb0c |
---|---|
203 return new (phase->C, 3) SubINode( in1->in(2), in2->in(2) ); | 203 return new (phase->C, 3) SubINode( in1->in(2), in2->in(2) ); |
204 | 204 |
205 // Convert "(A+X) - (B+X)" into "A - B" | 205 // Convert "(A+X) - (B+X)" into "A - B" |
206 if( op1 == Op_AddI && op2 == Op_AddI && in1->in(2) == in2->in(2) ) | 206 if( op1 == Op_AddI && op2 == Op_AddI && in1->in(2) == in2->in(2) ) |
207 return new (phase->C, 3) SubINode( in1->in(1), in2->in(1) ); | 207 return new (phase->C, 3) SubINode( in1->in(1), in2->in(1) ); |
208 | |
209 // Convert "(A+X) - (X+B)" into "A - B" | |
210 if( op1 == Op_AddI && op2 == Op_AddI && in1->in(2) == in2->in(1) ) | |
211 return new (phase->C, 3) SubINode( in1->in(1), in2->in(2) ); | |
212 | |
213 // Convert "(X+A) - (B+X)" into "A - B" | |
214 if( op1 == Op_AddI && op2 == Op_AddI && in1->in(1) == in2->in(2) ) | |
215 return new (phase->C, 3) SubINode( in1->in(2), in2->in(1) ); | |
208 | 216 |
209 // Convert "A-(B-C)" into (A+C)-B", since add is commutative and generally | 217 // Convert "A-(B-C)" into (A+C)-B", since add is commutative and generally |
210 // nicer to optimize than subtract. | 218 // nicer to optimize than subtract. |
211 if( op2 == Op_SubI && in2->outcnt() == 1) { | 219 if( op2 == Op_SubI && in2->outcnt() == 1) { |
212 Node *add1 = phase->transform( new (phase->C, 3) AddINode( in1, in2->in(2) ) ); | 220 Node *add1 = phase->transform( new (phase->C, 3) AddINode( in1, in2->in(2) ) ); |