cif-code.def 5.58 KB
Newer Older
Doug Kwan committed
1 2 3
/* This file contains the definitions of the cgraph_inline_failed_t
   enums used in GCC.

4
   Copyright (C) 2008-2019 Free Software Foundation, Inc.
Doug Kwan committed
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
   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.  */
31
DEFCIFCODE(OK, CIF_FINAL_NORMAL, NULL)
Doug Kwan committed
32 33

/* Inlining failed for an unspecified reason.  */
34
DEFCIFCODE(UNSPECIFIED, CIF_FINAL_ERROR, "")
Doug Kwan committed
35 36 37

/* Function has not be considered for inlining.  This is the code for
   functions that have not been rejected for inlining yet.  */
38 39
DEFCIFCODE(FUNCTION_NOT_CONSIDERED, CIF_FINAL_NORMAL,
	   N_("function not considered for inlining"))
Doug Kwan committed
40

41
/* Caller is compiled with optimizations disabled.  */
42
DEFCIFCODE(FUNCTION_NOT_OPTIMIZED, CIF_FINAL_ERROR,
43
	   N_("caller is not optimized"))
44

Doug Kwan committed
45
/* Inlining failed owing to unavailable function body.  */
46 47
DEFCIFCODE(BODY_NOT_AVAILABLE, CIF_FINAL_ERROR,
	   N_("function body not available"))
Doug Kwan committed
48

49
/* Extern inline function that has been redefined.  */
50
DEFCIFCODE(REDEFINED_EXTERN_INLINE, CIF_FINAL_ERROR,
51 52
	   N_("redefined extern inline functions are not considered for "
	      "inlining"))
Doug Kwan committed
53 54

/* Function is not inlinable.  */
55 56
DEFCIFCODE(FUNCTION_NOT_INLINABLE, CIF_FINAL_ERROR,
	   N_("function not inlinable"))
Doug Kwan committed
57

58
/* Function is overwritable.  */
59 60
DEFCIFCODE(OVERWRITABLE, CIF_FINAL_ERROR,
	   N_("function body can be overwritten at link time"))
61

Doug Kwan committed
62
/* Function is not an inlining candidate.  */
63 64
DEFCIFCODE(FUNCTION_NOT_INLINE_CANDIDATE, CIF_FINAL_NORMAL,
	   N_("function not inline candidate"))
Doug Kwan committed
65 66

/* Inlining failed because of various limit parameters.  */
67
DEFCIFCODE(LARGE_FUNCTION_GROWTH_LIMIT, CIF_FINAL_NORMAL,
Doug Kwan committed
68
	   N_("--param large-function-growth limit reached"))
69
DEFCIFCODE(LARGE_STACK_FRAME_GROWTH_LIMIT, CIF_FINAL_NORMAL,
Doug Kwan committed
70
	   N_("--param large-stack-frame-growth limit reached"))
71
DEFCIFCODE(MAX_INLINE_INSNS_SINGLE_LIMIT, CIF_FINAL_NORMAL,
Doug Kwan committed
72
	   N_("--param max-inline-insns-single limit reached"))
73
DEFCIFCODE(MAX_INLINE_INSNS_AUTO_LIMIT, CIF_FINAL_NORMAL,
Doug Kwan committed
74
	   N_("--param max-inline-insns-auto limit reached"))
75
DEFCIFCODE(INLINE_UNIT_GROWTH_LIMIT, CIF_FINAL_NORMAL,
H.J. Lu committed
76
	   N_("--param inline-unit-growth limit reached"))
Doug Kwan committed
77 78

/* Recursive inlining.  */
79 80
DEFCIFCODE(RECURSIVE_INLINING, CIF_FINAL_NORMAL,
	   N_("recursive inlining"))
Doug Kwan committed
81 82

/* Call is unlikely.  */
83 84
DEFCIFCODE(UNLIKELY_CALL, CIF_FINAL_NORMAL,
	   N_("call is unlikely and code size would grow"))
Doug Kwan committed
85

86
/* Function is not declared as inline.  */
87
DEFCIFCODE(NOT_DECLARED_INLINED, CIF_FINAL_NORMAL,
Doug Kwan committed
88 89
	   N_("function not declared inline and code size would grow"))

90
/* Caller and callee disagree on the arguments.  */
91 92
DEFCIFCODE(MISMATCHED_ARGUMENTS, CIF_FINAL_ERROR,
	   N_("mismatched arguments"))
Doug Kwan committed
93

94
/* Caller and callee disagree on the arguments.  */
95 96 97
DEFCIFCODE(LTO_MISMATCHED_DECLARATIONS, CIF_FINAL_ERROR,
	   N_("mismatched declarations during linktime optimization"))

98 99 100 101
/* Caller is variadic thunk.  */
DEFCIFCODE(VARIADIC_THUNK, CIF_FINAL_ERROR,
	   N_("variadic thunk call"))

Doug Kwan committed
102
/* Call was originally indirect.  */
103
DEFCIFCODE(ORIGINALLY_INDIRECT_CALL, CIF_FINAL_NORMAL,
Doug Kwan committed
104
	   N_("originally indirect function call not considered for inlining"))
105 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"))
109

110
/* We can't inline different EH personalities together.  */
111 112
DEFCIFCODE(EH_PERSONALITY, CIF_FINAL_ERROR,
	   N_("exception handling personality mismatch"))
113

114
/* We can't inline if the callee can throw non-call exceptions but the
115
   caller cannot.  */
116 117
DEFCIFCODE(NON_CALL_EXCEPTIONS, CIF_FINAL_ERROR,
	   N_("non-call exception handling mismatch"))
118

119
/* We can't inline because of mismatched target specific options.  */
120 121
DEFCIFCODE(TARGET_OPTION_MISMATCH, CIF_FINAL_ERROR,
	   N_("target specific option mismatch"))
122

123
/* We can't inline because of mismatched optimization levels.  */
124 125
DEFCIFCODE(OPTIMIZATION_MISMATCH, CIF_FINAL_ERROR,
	   N_("optimization level attribute mismatch"))
126 127

/* We can't inline because the callee refers to comdat-local symbols.  */
128
DEFCIFCODE(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.  */
132
DEFCIFCODE(ATTRIBUTE_MISMATCH, CIF_FINAL_ERROR,
133
	   N_("function attribute mismatch"))
134

135 136 137 138 139 140
/* We can't inline because the user requests only static functions
   but the function has external linkage for live patching purpose.  */
DEFCIFCODE(EXTERN_LIVE_ONLY_STATIC, CIF_FINAL_ERROR,
	   N_("function has external linkage when the user requests only"
	      " inlining static for live patching"))

141
/* We proved that the call is unreachable.  */
142
DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR,
143
	   N_("unreachable"))
144 145 146

/* We can't inline because of instrumentation thunk.  */
DEFCIFCODE(CHKP, CIF_FINAL_ERROR,
147
	   N_("caller is instrumentation thunk"))