summaryrefslogtreecommitdiff
path: root/gcc/params.def
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-04 20:09:25 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>2005-11-04 20:09:25 +0000
commitcf024d2253f999eeeaf8c7185f83320f03cef3ef (patch)
treead9cd6b26ccb8f5631c14579e9c4b7fc9941c67e /gcc/params.def
parent3e38f533e66073c47d86762df861c327061ddcf9 (diff)
downloadgcc-cf024d2253f999eeeaf8c7185f83320f03cef3ef.tar.gz
* doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
* tree-ssa-dom.c: Include params.h. (thread_across_edge): If there are too many statements in the target block, then do not thread through it. * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H). * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106503 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/params.def')
-rw-r--r--gcc/params.def18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/params.def b/gcc/params.def
index f808682a06f..f0740a9d00f 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -506,6 +506,24 @@ DEFPARAM (PARAM_SSP_BUFFER_SIZE,
"The lower bound for a buffer to be considered for stack smashing protection",
8, 1, 0)
+/* When we thread through a block we have to make copies of the
+ statements within the block. Clearly for large blocks the code
+ duplication is bad.
+
+ PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS specifies the maximum number
+ of statements and PHI nodes allowed in a block which is going to
+ be duplicated for thread jumping purposes.
+
+ Some simple analysis showed that more than 99% of the jump
+ threading opportunities are for blocks with less than 15
+ statements. So we can get the benefits of jump threading
+ without excessive code bloat for pathological cases with the
+ throttle set at 15 statements. */
+DEFPARAM (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS,
+ "max-jump-thread-duplication-stmts",
+ "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps",
+ 15, 0, 0)
+
/*
Local variables:
mode:c