On 04/05/2013 02:50 PM, Jakub Jelinek wrote:
On Fri, Apr 05, 2013 at 02:42:19PM -0600, Jeff Law wrote:
? I must be missing something, the change causes an early bail out
from try_crossjump_to_edge.
We don't want to raise the min to > 0 as that doesn't allow the user
to turn on this specific transformation.
The condition is
if (nmatch < PARAM_VALUE (PARAM_MIN_CROSSJUMP_INSNS))
return false; // aka "don't crossjump"
So, the smaller the N in --param min-crossjump-insns=N is, the more likely
we crossjump. Thus N=0 should mean that it is most likely we crossjump,
and as N=1 requires that at least one insn matches, N=0 would mean that
even zero insns can match. If we for --param min-crossjump-insns=0
always return false, it means we never crossjump, so it is least likely
that we crossjump, which corresponds to largest possible N, not smallest
one.
Yes the smaller the N, the more likely we are to crossjump, of course
the value 0 would make no sense (I'm clearly out of practice on reviews :-).
Yea, changing the min value in params.def to 1 would be a better way to
fix. Consider that patch pre-approved.
jeff