]>
Commit | Line | Data |
---|---|---|
0e1d5770 | 1 | /* This file contains the definitions of the cgraph_inline_failed_t |
2 | enums used in GCC. | |
3 | ||
3aea1f79 | 4 | Copyright (C) 2008-2014 Free Software Foundation, Inc. |
0e1d5770 | 5 | Contributed by Doug Kwan <dougkwan@google.com> |
6 | ||
7 | This file is part of GCC. | |
8 | ||
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 | |
12 | version. | |
13 | ||
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 | |
17 | for more details. | |
18 | ||
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/>. */ | |
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. */ | |
31 | DEFCIFCODE(OK , NULL) | |
32 | ||
33 | /* Inlining failed for an unspecified reason. */ | |
34 | DEFCIFCODE(UNSPECIFIED , "") | |
35 | ||
36 | /* Function has not be considered for inlining. This is the code for | |
37 | functions that have not been rejected for inlining yet. */ | |
b588156f | 38 | DEFCIFCODE(FUNCTION_NOT_CONSIDERED, N_("function not considered for inlining")) |
0e1d5770 | 39 | |
26051fcf | 40 | /* Caller is compiled with optimizations disabled. */ |
41 | DEFCIFCODE(FUNCTION_NOT_OPTIMIZED, N_("caller is not optimized")) | |
42 | ||
0e1d5770 | 43 | /* Inlining failed owing to unavailable function body. */ |
44 | DEFCIFCODE(BODY_NOT_AVAILABLE, N_("function body not available")) | |
45 | ||
b588156f | 46 | /* Extern inline function that has been redefined. */ |
0e1d5770 | 47 | DEFCIFCODE(REDEFINED_EXTERN_INLINE, |
b588156f | 48 | N_("redefined extern inline functions are not considered for " |
49 | "inlining")) | |
0e1d5770 | 50 | |
51 | /* Function is not inlinable. */ | |
52 | DEFCIFCODE(FUNCTION_NOT_INLINABLE, N_("function not inlinable")) | |
53 | ||
479b4ace | 54 | /* Function is overwritable. */ |
b588156f | 55 | DEFCIFCODE(OVERWRITABLE, N_("function body can be overwritten at link time")) |
56 | ||
0e1d5770 | 57 | /* Function is not an inlining candidate. */ |
58 | DEFCIFCODE(FUNCTION_NOT_INLINE_CANDIDATE, N_("function not inline candidate")) | |
59 | ||
60 | /* Inlining failed because of various limit parameters. */ | |
61 | DEFCIFCODE(LARGE_FUNCTION_GROWTH_LIMIT, | |
62 | N_("--param large-function-growth limit reached")) | |
63 | DEFCIFCODE(LARGE_STACK_FRAME_GROWTH_LIMIT, | |
64 | N_("--param large-stack-frame-growth limit reached")) | |
65 | DEFCIFCODE(MAX_INLINE_INSNS_SINGLE_LIMIT, | |
66 | N_("--param max-inline-insns-single limit reached")) | |
67 | DEFCIFCODE(MAX_INLINE_INSNS_AUTO_LIMIT, | |
68 | N_("--param max-inline-insns-auto limit reached")) | |
69 | DEFCIFCODE(INLINE_UNIT_GROWTH_LIMIT, | |
48e1416a | 70 | N_("--param inline-unit-growth limit reached")) |
0e1d5770 | 71 | |
72 | /* Recursive inlining. */ | |
73 | DEFCIFCODE(RECURSIVE_INLINING, N_("recursive inlining")) | |
74 | ||
75 | /* Call is unlikely. */ | |
76 | DEFCIFCODE(UNLIKELY_CALL, N_("call is unlikely and code size would grow")) | |
77 | ||
b588156f | 78 | /* Function is not declared as inline. */ |
0e1d5770 | 79 | DEFCIFCODE(NOT_DECLARED_INLINED, |
80 | N_("function not declared inline and code size would grow")) | |
81 | ||
82 | /* Inlining suppressed due to size optimization. */ | |
83 | DEFCIFCODE(OPTIMIZING_FOR_SIZE, | |
84 | N_("optimizing for size and code size would grow")) | |
85 | ||
b588156f | 86 | /* Caller and callee disagree on the arguments. */ |
0e1d5770 | 87 | DEFCIFCODE(MISMATCHED_ARGUMENTS, N_("mismatched arguments")) |
88 | ||
89 | /* Call was originally indirect. */ | |
90 | DEFCIFCODE(ORIGINALLY_INDIRECT_CALL, | |
91 | N_("originally indirect function call not considered for inlining")) | |
799c8711 | 92 | |
93 | /* Ths edge represents an indirect edge with a yet-undetermined callee . */ | |
94 | DEFCIFCODE(INDIRECT_UNKNOWN_CALL, | |
95 | N_("indirect function call with a yet undetermined callee")) | |
af9e0580 | 96 | |
4869c23f | 97 | /* We can't inline different EH personalities together. */ |
b588156f | 98 | DEFCIFCODE(EH_PERSONALITY, N_("exception handling personality mismatch")) |
4869c23f | 99 | |
b588156f | 100 | /* We can't inline if the callee can throw non-call exceptions but the |
4869c23f | 101 | caller cannot. */ |
b588156f | 102 | DEFCIFCODE(NON_CALL_EXCEPTIONS, N_("non-call exception handling mismatch")) |
4869c23f | 103 | |
b588156f | 104 | /* We can't inline because of mismatched target specific options. */ |
105 | DEFCIFCODE(TARGET_OPTION_MISMATCH, N_("target specific option mismatch")) | |
4869c23f | 106 | |
b588156f | 107 | /* We can't inline because of mismatched optimization levels. */ |
108 | DEFCIFCODE(OPTIMIZATION_MISMATCH, N_("optimization level attribute mismatch")) | |
468088ac | 109 | |
110 | /* We can't inline because the callee refers to comdat-local symbols. */ | |
111 | DEFCIFCODE(USES_COMDAT_LOCAL, N_("callee refers to comdat-local symbols")) |