Mercurial > hg > truffle
comparison src/share/vm/opto/loopopts.cpp @ 17726:085b304a1cc5
8027754: Enable loop optimizations for loops with MathExact inside
Reviewed-by: kvn, iveresov
author | rbackman |
---|---|
date | Thu, 23 Jan 2014 12:08:28 +0100 |
parents | de95063c0e34 |
children | 4ca6dc0799b6 cd3c534f8f4a |
comparison
equal
deleted
inserted
replaced
17725:b4ce4e9eb97d | 17726:085b304a1cc5 |
---|---|
38 // Split Node 'n' through merge point if there is enough win. | 38 // Split Node 'n' through merge point if there is enough win. |
39 Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { | 39 Node *PhaseIdealLoop::split_thru_phi( Node *n, Node *region, int policy ) { |
40 if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::LONG) { | 40 if (n->Opcode() == Op_ConvI2L && n->bottom_type() != TypeLong::LONG) { |
41 // ConvI2L may have type information on it which is unsafe to push up | 41 // ConvI2L may have type information on it which is unsafe to push up |
42 // so disable this for now | 42 // so disable this for now |
43 return NULL; | |
44 } | |
45 | |
46 if (n->is_MathExact()) { | |
47 // MathExact has projections that are not correctly handled in the code | |
48 // below. | |
49 return NULL; | 43 return NULL; |
50 } | 44 } |
51 | 45 |
52 int wins = 0; | 46 int wins = 0; |
53 assert(!n->is_CFG(), ""); | 47 assert(!n->is_CFG(), ""); |
2360 int opc = n->Opcode(); | 2354 int opc = n->Opcode(); |
2361 if (n->is_Call() || | 2355 if (n->is_Call() || |
2362 opc == Op_Catch || | 2356 opc == Op_Catch || |
2363 opc == Op_CatchProj || | 2357 opc == Op_CatchProj || |
2364 opc == Op_Jump || | 2358 opc == Op_Jump || |
2365 opc == Op_JumpProj || | 2359 opc == Op_JumpProj) { |
2366 opc == Op_FlagsProj) { | |
2367 #if !defined(PRODUCT) | 2360 #if !defined(PRODUCT) |
2368 if (TracePartialPeeling) { | 2361 if (TracePartialPeeling) { |
2369 tty->print_cr("\nExit control too complex: lp: %d", head->_idx); | 2362 tty->print_cr("\nExit control too complex: lp: %d", head->_idx); |
2370 } | 2363 } |
2371 #endif | 2364 #endif |