params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.

* params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
        * bb-reorder.c (copy_bb_p): Use it.
        * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.

From-SVN: r105011
This commit is contained in:
David Edelsohn 2005-10-05 19:11:42 +00:00 committed by David Edelsohn
parent 31131ac1e6
commit f935b9e01b
4 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-10-05 David Edelsohn <edelsohn@gnu.org>
* params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
* bb-reorder.c (copy_bb_p): Use it.
* doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
2005-10-05 Richard Henderson <rth@redhat.com> 2005-10-05 Richard Henderson <rth@redhat.com>
PR target/23602 PR target/23602

View File

@ -1173,7 +1173,7 @@ copy_bb_p (basic_block bb, int code_may_grow)
return false; return false;
if (code_may_grow && maybe_hot_bb_p (bb)) if (code_may_grow && maybe_hot_bb_p (bb))
max_size *= 8; max_size *= PARAM_VALUE (PARAM_MAX_GROW_COPY_BB_INSNS);
FOR_BB_INSNS (bb, insn) FOR_BB_INSNS (bb, insn)
{ {

View File

@ -5738,6 +5738,11 @@ of two blocks before crossjumping will be performed on them. This
value is ignored in the case where all instructions in the block being value is ignored in the case where all instructions in the block being
crossjumped from are matched. The default value is 5. crossjumped from are matched. The default value is 5.
@item max-grow-copy-bb-insns
The maximum code size expansion factor when copying basic blocks
instead of jumping. The expansion is relative to a jump instruction.
The default value is 8.
@item max-goto-duplication-insns @item max-goto-duplication-insns
The maximum number of instructions to duplicate to a block that jumps The maximum number of instructions to duplicate to a block that jumps
to a computed goto. To avoid @math{O(N^2)} behavior in a number of to a computed goto. To avoid @math{O(N^2)} behavior in a number of

View File

@ -349,6 +349,12 @@ DEFPARAM(PARAM_MIN_CROSSJUMP_INSNS,
"The minimum number of matching instructions to consider for crossjumping", "The minimum number of matching instructions to consider for crossjumping",
5, 0, 0) 5, 0, 0)
/* The maximum number expansion factor when copying basic blocks. */
DEFPARAM(PARAM_MAX_GROW_COPY_BB_INSNS,
"max-grow-copy-bb-insns",
"The maximum expansion factor when copying basic blocks",
8, 0, 0)
/* The maximum number of insns to duplicate when unfactoring computed gotos. */ /* The maximum number of insns to duplicate when unfactoring computed gotos. */
DEFPARAM(PARAM_MAX_GOTO_DUPLICATION_INSNS, DEFPARAM(PARAM_MAX_GOTO_DUPLICATION_INSNS,
"max-goto-duplication-insns", "max-goto-duplication-insns",