1/* This file contains the definitions of the cgraph_inline_failed_t
2   enums used in GCC.
3
4   Copyright (C) 2008-2018 Free Software Foundation, Inc.
5   Contributed by Doug Kwan <dougkwan@google.com>
6
7This file is part of GCC.
8
9GCC is free software you can redistribute it and/or modify it under
10the terms of the GNU General Public License as published by the Free
11Software Foundation either version 3, or (at your option) any later
12version.
13
14GCC is distributed in the hope that it will be useful, but WITHOUT ANY
15WARRANTY without even the implied warranty of MERCHANTABILITY or
16FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17for more details.
18
19You should have received a copy of the GNU General Public License
20along with GCC see the file COPYING3.  If not see
21<http://www.gnu.org/licenses/>.  */
22
23/* The format of this file is
24   DEFCIFCODE(code, string).
25
26   Where symbol is the enumeration name without the ``''.
27   The argument STRING is a explain the failure.  Except for OK,
28   which is a NULL pointer.  */
29
30/* Inlining successful.  This must be the first code.  */
31DEFCIFCODE(OK, CIF_FINAL_NORMAL, NULL)
32
33/* Inlining failed for an unspecified reason.  */
34DEFCIFCODE(UNSPECIFIED, CIF_FINAL_ERROR, "")
35
36/* Function has not be considered for inlining.  This is the code for
37   functions that have not been rejected for inlining yet.  */
38DEFCIFCODE(FUNCTION_NOT_CONSIDERED, CIF_FINAL_NORMAL,
39	   N_("function not considered for inlining"))
40
41/* Caller is compiled with optimizations disabled.  */
42DEFCIFCODE(FUNCTION_NOT_OPTIMIZED, CIF_FINAL_ERROR,
43	   N_("caller is not optimized"))
44
45/* Inlining failed owing to unavailable function body.  */
46DEFCIFCODE(BODY_NOT_AVAILABLE, CIF_FINAL_ERROR,
47	   N_("function body not available"))
48
49/* Extern inline function that has been redefined.  */
50DEFCIFCODE(REDEFINED_EXTERN_INLINE, CIF_FINAL_ERROR,
51	   N_("redefined extern inline functions are not considered for "
52	      "inlining"))
53
54/* Function is not inlinable.  */
55DEFCIFCODE(FUNCTION_NOT_INLINABLE, CIF_FINAL_ERROR,
56	   N_("function not inlinable"))
57
58/* Function is overwritable.  */
59DEFCIFCODE(OVERWRITABLE, CIF_FINAL_ERROR,
60	   N_("function body can be overwritten at link time"))
61
62/* Function is not an inlining candidate.  */
63DEFCIFCODE(FUNCTION_NOT_INLINE_CANDIDATE, CIF_FINAL_NORMAL,
64	   N_("function not inline candidate"))
65
66/* Inlining failed because of various limit parameters.  */
67DEFCIFCODE(LARGE_FUNCTION_GROWTH_LIMIT, CIF_FINAL_NORMAL,
68	   N_("--param large-function-growth limit reached"))
69DEFCIFCODE(LARGE_STACK_FRAME_GROWTH_LIMIT, CIF_FINAL_NORMAL,
70	   N_("--param large-stack-frame-growth limit reached"))
71DEFCIFCODE(MAX_INLINE_INSNS_SINGLE_LIMIT, CIF_FINAL_NORMAL,
72	   N_("--param max-inline-insns-single limit reached"))
73DEFCIFCODE(MAX_INLINE_INSNS_AUTO_LIMIT, CIF_FINAL_NORMAL,
74	   N_("--param max-inline-insns-auto limit reached"))
75DEFCIFCODE(INLINE_UNIT_GROWTH_LIMIT, CIF_FINAL_NORMAL,
76	   N_("--param inline-unit-growth limit reached"))
77
78/* Recursive inlining.  */
79DEFCIFCODE(RECURSIVE_INLINING, CIF_FINAL_NORMAL,
80	   N_("recursive inlining"))
81
82/* Call is unlikely.  */
83DEFCIFCODE(UNLIKELY_CALL, CIF_FINAL_NORMAL,
84	   N_("call is unlikely and code size would grow"))
85
86/* Function is not declared as inline.  */
87DEFCIFCODE(NOT_DECLARED_INLINED, CIF_FINAL_NORMAL,
88	   N_("function not declared inline and code size would grow"))
89
90/* Caller and callee disagree on the arguments.  */
91DEFCIFCODE(MISMATCHED_ARGUMENTS, CIF_FINAL_ERROR,
92	   N_("mismatched arguments"))
93
94/* Caller and callee disagree on the arguments.  */
95DEFCIFCODE(LTO_MISMATCHED_DECLARATIONS, CIF_FINAL_ERROR,
96	   N_("mismatched declarations during linktime optimization"))
97
98/* Caller is variadic thunk.  */
99DEFCIFCODE(VARIADIC_THUNK, CIF_FINAL_ERROR,
100	   N_("variadic thunk call"))
101
102/* Call was originally indirect.  */
103DEFCIFCODE(ORIGINALLY_INDIRECT_CALL, CIF_FINAL_NORMAL,
104	   N_("originally indirect function call not considered for inlining"))
105
106/* Ths edge represents an indirect edge with a yet-undetermined callee .  */
107DEFCIFCODE(INDIRECT_UNKNOWN_CALL, CIF_FINAL_NORMAL,
108	   N_("indirect function call with a yet undetermined callee"))
109
110/* We can't inline different EH personalities together.  */
111DEFCIFCODE(EH_PERSONALITY, CIF_FINAL_ERROR,
112	   N_("exception handling personality mismatch"))
113
114/* We can't inline if the callee can throw non-call exceptions but the
115   caller cannot.  */
116DEFCIFCODE(NON_CALL_EXCEPTIONS, CIF_FINAL_ERROR,
117	   N_("non-call exception handling mismatch"))
118
119/* We can't inline because of mismatched target specific options.  */
120DEFCIFCODE(TARGET_OPTION_MISMATCH, CIF_FINAL_ERROR,
121	   N_("target specific option mismatch"))
122
123/* We can't inline because of mismatched optimization levels.  */
124DEFCIFCODE(OPTIMIZATION_MISMATCH, CIF_FINAL_ERROR,
125	   N_("optimization level attribute mismatch"))
126
127/* We can't inline because the callee refers to comdat-local symbols.  */
128DEFCIFCODE(USES_COMDAT_LOCAL, CIF_FINAL_ERROR,
129	   N_("callee refers to comdat-local symbols"))
130
131/* We can't inline because of mismatched caller/callee attributes.  */
132DEFCIFCODE(ATTRIBUTE_MISMATCH, CIF_FINAL_ERROR,
133	   N_("function attribute mismatch"))
134
135/* We proved that the call is unreachable.  */
136DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR,
137	   N_("unreachable"))
138
139/* We can't inline because of instrumentation thunk.  */
140DEFCIFCODE(CHKP, CIF_FINAL_ERROR,
141	   N_("caller is instrumentation thunk"))
142