summaryrefslogtreecommitdiffstats
path: root/gcc/cif-code.def
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-28 11:10:06 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2009-03-28 11:10:06 +0000
commit0e1d5770a0607f0239b560e1586028fef4fa1fba (patch)
tree51f26aa885988f22866a2cb3adc740907c3223bf /gcc/cif-code.def
parent326a9581206b3b3b7d1b3f565b421fa493750944 (diff)
downloadppe42-gcc-0e1d5770a0607f0239b560e1586028fef4fa1fba.tar.gz
ppe42-gcc-0e1d5770a0607f0239b560e1586028fef4fa1fba.zip
Bring from lto-branch:
2008-09-03 Doug Kwan <dougkwan@google.com> * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t enums instead of reason strings. * cgraph.c (cgraph_create_edge): Same. (cgraph_inline_failed_string): New function. * cgraph.h (cgraph_inline_failed_t): New enum type. (cgraph_inline_failed_string): New prototype. (struct cgraph_edge): Change type of INLINED_FAILED from constant char pointer to cgraph_inline_failed_t. (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t. (cgraph_default_inline_p): Ditto. * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON to cgraph_inline_failed_t pointer. * cif-code.def: New file. * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a reason string. (cgraph_check_inline_limits): Change type of REASON to pointer to cgraph_inline_failed_t. Replace reason strings with enums. (cgraph_default_inline_p): Ditto. (cgraph_recursive_inlining_p): Ditto. (update_caller_keys): Change type of FAILED_REASON to cgraph_inline_failed_t. (cgraph_set_inline_failed): Change type of REASON to pointer to cgraph_inline_failed_t. Call cgraph_inline_failed_string to convert enums to strings for text output. (cgraph_decide_inlining_of_small_function): Change FAILED_REASON to be of type cgraph_inline_failed_t. Replace reason strings with enums. Call cgraph_inline_failed_string to covert enums to strings for text output. (cgraph_decide_inlining): Replace reason strings with enums. (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON to cgraph_inline_failed_t type. Call cgraph_inline_failed_string for text output. * tree-inline.c (expand_call_inline): Change type of REASON to cgraph_inline_failed_t. Replace reason strings with enums. Call cgraph_inline_failed_string for text output. * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies. (cgraph.o): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145177 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cif-code.def')
-rw-r--r--gcc/cif-code.def86
1 files changed, 86 insertions, 0 deletions
diff --git a/gcc/cif-code.def b/gcc/cif-code.def
new file mode 100644
index 00000000000..48dbabffbed
--- /dev/null
+++ b/gcc/cif-code.def
@@ -0,0 +1,86 @@
+/* This file contains the definitions of the cgraph_inline_failed_t
+ enums used in GCC.
+
+ Copyright (C) 2008 Free Software Foundation, Inc.
+ Contributed by Doug Kwan <dougkwan@google.com>
+
+This file is part of GCC.
+
+GCC is free software you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+/* The format of this file is
+ DEFCIFCODE(code, string).
+
+ Where symbol is the enumeration name without the ``''.
+ The argument STRING is a explain the failure. Except for OK,
+ which is a NULL pointer. */
+
+/* Inlining successful. This must be the first code. */
+DEFCIFCODE(OK , NULL)
+
+/* Inlining failed for an unspecified reason. */
+DEFCIFCODE(UNSPECIFIED , "")
+
+/* Function has not be considered for inlining. This is the code for
+ functions that have not been rejected for inlining yet. */
+DEFCIFCODE(FUNCTION_NOT_CONSIDERED,
+ N_("function not considered for inlining"))
+
+/* Inlining failed owing to unavailable function body. */
+DEFCIFCODE(BODY_NOT_AVAILABLE, N_("function body not available"))
+
+DEFCIFCODE(REDEFINED_EXTERN_INLINE,
+ N_("redefined extern inline functions are not considered for "
+ "inlining"))
+
+/* Function is not inlinable. */
+DEFCIFCODE(FUNCTION_NOT_INLINABLE, N_("function not inlinable"))
+
+/* Function is not an inlining candidate. */
+DEFCIFCODE(FUNCTION_NOT_INLINE_CANDIDATE, N_("function not inline candidate"))
+
+/* Inlining failed because of various limit parameters. */
+DEFCIFCODE(LARGE_FUNCTION_GROWTH_LIMIT,
+ N_("--param large-function-growth limit reached"))
+DEFCIFCODE(LARGE_STACK_FRAME_GROWTH_LIMIT,
+ N_("--param large-stack-frame-growth limit reached"))
+DEFCIFCODE(MAX_INLINE_INSNS_SINGLE_LIMIT,
+ N_("--param max-inline-insns-single limit reached"))
+DEFCIFCODE(MAX_INLINE_INSNS_AUTO_LIMIT,
+ N_("--param max-inline-insns-auto limit reached"))
+DEFCIFCODE(INLINE_UNIT_GROWTH_LIMIT,
+ N_("--param inline-unit-growth limit reached"))
+
+/* Recursive inlining. */
+DEFCIFCODE(RECURSIVE_INLINING, N_("recursive inlining"))
+
+/* Call is unlikely. */
+DEFCIFCODE(UNLIKELY_CALL, N_("call is unlikely and code size would grow"))
+
+/* Function is not declared as an inline. */
+DEFCIFCODE(NOT_DECLARED_INLINED,
+ N_("function not declared inline and code size would grow"))
+
+/* Inlining suppressed due to size optimization. */
+DEFCIFCODE(OPTIMIZING_FOR_SIZE,
+ N_("optimizing for size and code size would grow"))
+
+/* Inlining failed because of mismatched options or arguments. */
+DEFCIFCODE(TARGET_OPTION_MISMATCH, N_("target specific option mismatch"))
+DEFCIFCODE(MISMATCHED_ARGUMENTS, N_("mismatched arguments"))
+
+/* Call was originally indirect. */
+DEFCIFCODE(ORIGINALLY_INDIRECT_CALL,
+ N_("originally indirect function call not considered for inlining"))
OpenPOWER on IntegriCloud