aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2005-10-05 19:11:42 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2005-10-05 15:11:42 -0400
commitf935b9e01baa27a130b3ac6d2ce0e70b9a3607b1 (patch)
treeebf6e7d56d37c7076a349d34eeba8ef96a819dfa /gcc
parent31131ac1e6325565c3927b57ef3d4bd3bf6c042b (diff)
downloadgcc-f935b9e01baa27a130b3ac6d2ce0e70b9a3607b1.zip
gcc-f935b9e01baa27a130b3ac6d2ce0e70b9a3607b1.tar.gz
gcc-f935b9e01baa27a130b3ac6d2ce0e70b9a3607b1.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/bb-reorder.c2
-rw-r--r--gcc/doc/invoke.texi5
-rw-r--r--gcc/params.def6
4 files changed, 18 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 677e379..2d50993 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
PR target/23602
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 68d2cd8..8bf37af 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -1173,7 +1173,7 @@ copy_bb_p (basic_block bb, int code_may_grow)
return false;
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)
{
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index b859a7f..7717e94 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -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
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
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
diff --git a/gcc/params.def b/gcc/params.def
index 3ac4597..ea64a38 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -349,6 +349,12 @@ DEFPARAM(PARAM_MIN_CROSSJUMP_INSNS,
"The minimum number of matching instructions to consider for crossjumping",
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. */
DEFPARAM(PARAM_MAX_GOTO_DUPLICATION_INSNS,
"max-goto-duplication-insns",