diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-04 20:09:25 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-04 20:09:25 +0000 |
commit | cf024d2253f999eeeaf8c7185f83320f03cef3ef (patch) | |
tree | ad9cd6b26ccb8f5631c14579e9c4b7fc9941c67e /gcc/params.def | |
parent | 3e38f533e66073c47d86762df861c327061ddcf9 (diff) | |
download | gcc-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.def | 18 |
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 |