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