Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/compile.cpp @ 22985:eb8b5cc64669
8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: jrose, kvn
author | vlivanov |
---|---|
date | Thu, 29 Jan 2015 10:25:59 -0800 |
parents | ddce0b7cee93 |
children | bf41eee321e5 |
comparison
equal
deleted
inserted
replaced
22984:c97ba20ad404 | 22985:eb8b5cc64669 |
---|---|
3073 } | 3073 } |
3074 break; | 3074 break; |
3075 default: | 3075 default: |
3076 assert( !n->is_Call(), "" ); | 3076 assert( !n->is_Call(), "" ); |
3077 assert( !n->is_Mem(), "" ); | 3077 assert( !n->is_Mem(), "" ); |
3078 assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN"); | |
3078 break; | 3079 break; |
3079 } | 3080 } |
3080 | 3081 |
3081 // Collect CFG split points | 3082 // Collect CFG split points |
3082 if (n->is_MultiBranch()) | 3083 if (n->is_MultiBranch()) |
3289 // Report if there are too many traps at the current method and bci. | 3290 // Report if there are too many traps at the current method and bci. |
3290 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. | 3291 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. |
3291 bool Compile::too_many_traps(ciMethod* method, | 3292 bool Compile::too_many_traps(ciMethod* method, |
3292 int bci, | 3293 int bci, |
3293 Deoptimization::DeoptReason reason) { | 3294 Deoptimization::DeoptReason reason) { |
3295 if (method->has_injected_profile()) { | |
3296 return false; | |
3297 } | |
3294 ciMethodData* md = method->method_data(); | 3298 ciMethodData* md = method->method_data(); |
3295 if (md->is_empty()) { | 3299 if (md->is_empty()) { |
3296 // Assume the trap has not occurred, or that it occurred only | 3300 // Assume the trap has not occurred, or that it occurred only |
3297 // because of a transient condition during start-up in the interpreter. | 3301 // because of a transient condition during start-up in the interpreter. |
3298 return false; | 3302 return false; |
3338 // Is not eager to return true, since this will cause the compiler to use | 3342 // Is not eager to return true, since this will cause the compiler to use |
3339 // Action_none for a trap point, to avoid too many recompilations. | 3343 // Action_none for a trap point, to avoid too many recompilations. |
3340 bool Compile::too_many_recompiles(ciMethod* method, | 3344 bool Compile::too_many_recompiles(ciMethod* method, |
3341 int bci, | 3345 int bci, |
3342 Deoptimization::DeoptReason reason) { | 3346 Deoptimization::DeoptReason reason) { |
3347 if (method->has_injected_profile()) { | |
3348 return false; | |
3349 } | |
3343 ciMethodData* md = method->method_data(); | 3350 ciMethodData* md = method->method_data(); |
3344 if (md->is_empty()) { | 3351 if (md->is_empty()) { |
3345 // Assume the trap has not occurred, or that it occurred only | 3352 // Assume the trap has not occurred, or that it occurred only |
3346 // because of a transient condition during start-up in the interpreter. | 3353 // because of a transient condition during start-up in the interpreter. |
3347 return false; | 3354 return false; |