summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-17 00:03:14 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-17 00:03:14 +0000
commit0261691ac6ed067c405631e806d31e88f03c5a9f (patch)
treea45035f8d861fdcaa6b1f40eb57acaaa17897ce2 /gcc
parentad6c8435ee03593e980da05d382c95b10d220822 (diff)
downloadppe42-gcc-0261691ac6ed067c405631e806d31e88f03c5a9f.tar.gz
ppe42-gcc-0261691ac6ed067c405631e806d31e88f03c5a9f.zip
* c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
builtin_expect specially. * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. * invoke.texi (max-inline-insns-single): Set to 100. (large-function-insns): Set to 3000. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76007 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/c-common.c19
-rw-r--r--gcc/doc/invoke.texi4
-rw-r--r--gcc/params.def4
4 files changed, 31 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8a3d1fdfaca..8d017a1b50c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2004-01-17 Jan Hubicka <jh@suse.cz>
+
+ * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
+ builtin_expect specially.
+ * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
+ (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
+ * invoke.texi (max-inline-insns-single): Set to 100.
+ (large-function-insns): Set to 3000.
+
2004-01-16 Eric Christopher <echristo@redhat.com>
Chandrakala Chavva <cchavva@redhat.com>
diff --git a/gcc/c-common.c b/gcc/c-common.c
index dcd540b1d85..87ff0536e1e 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -5780,6 +5780,24 @@ c_estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
*count += ((size + MOVE_MAX_PIECES - 1) / MOVE_MAX_PIECES);
}
break;
+ case CALL_EXPR:
+ {
+ tree decl = get_callee_fndecl (x);
+
+ if (decl && DECL_BUILT_IN (decl))
+ switch (DECL_FUNCTION_CODE (decl))
+ {
+ case BUILT_IN_CONSTANT_P:
+ *walk_subtrees = 0;
+ return NULL_TREE;
+ case BUILT_IN_EXPECT:
+ return NULL_TREE;
+ default:
+ break;
+ }
+ *count += 10;
+ break;
+ }
/* Few special cases of expensive operations. This is usefull
to avoid inlining on functions having too many of these. */
case TRUNC_DIV_EXPR:
@@ -5791,7 +5809,6 @@ c_estimate_num_insns_1 (tree *tp, int *walk_subtrees, void *data)
case FLOOR_MOD_EXPR:
case ROUND_MOD_EXPR:
case RDIV_EXPR:
- case CALL_EXPR:
*count += 10;
break;
/* Various containers that will produce no code themselves. */
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index f7182f081ea..be25392a982 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -4715,7 +4715,7 @@ a lot of functions that would otherwise not be considered for inlining
by the compiler will be investigated. To those functions, a different
(more restrictive) limit compared to functions declared inline can
be applied.
-The default value is 150.
+The default value is 120.
@item large-function-insns
The limit specifying really large functions. For functions greater than this
@@ -4723,7 +4723,7 @@ limit inlining is constrained by @option{--param large-function-growth}.
This parameter is useful primarily to avoid extreme compilation time caused by non-linear
algorithms used by the backend.
This parameter is ignored when @option{-funit-at-a-time} is not used.
-The default value is 30000.
+The default value is 3000.
@item large-function-growth
Specifies maximal growth of large functtion caused by inlining in percents.
diff --git a/gcc/params.def b/gcc/params.def
index 3f0d15b1854..0d905090980 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -63,7 +63,7 @@ DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO,
"max-inline-insns-auto",
"The maximum number of instructions when automatically inlining",
- 150)
+ 120)
/* For languages that (still) use the RTL inliner, we can specify
limits for the RTL inliner separately.
@@ -110,7 +110,7 @@ DEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH,
DEFPARAM(PARAM_LARGE_FUNCTION_INSNS,
"large-function-insns",
"The size of function body to be considered large",
- 10000)
+ 3000)
DEFPARAM(PARAM_LARGE_FUNCTION_GROWTH,
"large-function-growth",
"Maximal growth due to inlining of large function (in percent)",
OpenPOWER on IntegriCloud