params.def (PARAM_MIN_CROSSJUMP_INSNS): New.

2004-08-06  Pat Haugen  <pthaugen@us.ibm.com>

        * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
        * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
        threshhold.
        * doc/invoke.texi (param): Document min-crossjump-insns.

From-SVN: r85646
This commit is contained in:
Pat Haugen 2004-08-06 17:20:53 +00:00 committed by David Edelsohn
parent fc90a8f2ee
commit 12183e0fbc
4 changed files with 26 additions and 1 deletions

View File

@ -1,3 +1,10 @@
2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
* params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
* cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
threshhold.
* doc/invoke.texi (param): Document min-crossjump-insns.
2004-08-06 Richard Sandiford <rsandifo@redhat.com>
PR c/13282

View File

@ -1507,7 +1507,13 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
/* ... and part the second. */
nmatch = flow_find_cross_jump (mode, src1, src2, &newpos1, &newpos2);
if (!nmatch)
/* Don't proceed with the crossjump unless we found a sufficient number
of matching instructions or the 'from' block was totally matched
(such that its predecessors will hopefully be redirected and the
block removed). */
if ((nmatch < PARAM_VALUE (PARAM_MIN_CROSSJUMP_INSNS))
&& (newpos1 != BB_HEAD (src1)))
return false;
#ifndef CASE_DROPS_THROUGH

View File

@ -5094,6 +5094,12 @@ the number of edges incoming to each block. Increasing values mean
more aggressive optimization, making the compile time increase with
probably small improvement in executable size.
@item min-crossjump-insns
The minimum number of instructions which must be matched at the end
of two blocks before crossjumping will be performed on them. This
value is ignored in the case where all instructions in the block being
crossjumped from are matched. The default value is 5.
@item max-delay-slot-insn-search
The maximum number of instructions to consider when looking for an
instruction to fill a delay slot. If more than this arbitrary number of

View File

@ -306,6 +306,12 @@ DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES,
"The maximum number of incoming edges to consider for crossjumping",
100)
/* The minimum number of matching instructions to consider for crossjumping. */
DEFPARAM(PARAM_MIN_CROSSJUMP_INSNS,
"min-crossjump-insns",
"The minimum number of matching instructions to consider for crossjumping",
5)
/* The maximum length of path considered in cse. */
DEFPARAM(PARAM_MAX_CSE_PATH_LENGTH,
"max-cse-path-length",