| /* This file contains the definitions of the cgraph_inline_failed_t |
| enums used in GCC. |
| |
| Copyright (C) 2008-2021 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, CIF_FINAL_NORMAL, NULL) |
| |
| /* Inlining failed for an unspecified reason. */ |
| DEFCIFCODE(UNSPECIFIED, CIF_FINAL_ERROR, "") |
| |
| /* 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, CIF_FINAL_NORMAL, |
| N_("function not considered for inlining")) |
| |
| /* Caller is compiled with optimizations disabled. */ |
| DEFCIFCODE(FUNCTION_NOT_OPTIMIZED, CIF_FINAL_ERROR, |
| N_("caller is not optimized")) |
| |
| /* Inlining failed owing to unavailable function body. */ |
| DEFCIFCODE(BODY_NOT_AVAILABLE, CIF_FINAL_ERROR, |
| N_("function body not available")) |
| |
| /* Extern inline function that has been redefined. */ |
| DEFCIFCODE(REDEFINED_EXTERN_INLINE, CIF_FINAL_ERROR, |
| N_("redefined extern inline functions are not considered for " |
| "inlining")) |
| |
| /* Function is not inlinable. */ |
| DEFCIFCODE(FUNCTION_NOT_INLINABLE, CIF_FINAL_ERROR, |
| N_("function not inlinable")) |
| |
| /* Function is overwritable. */ |
| DEFCIFCODE(OVERWRITABLE, CIF_FINAL_ERROR, |
| N_("function body can be overwritten at link time")) |
| |
| /* Function is not an inlining candidate. */ |
| DEFCIFCODE(FUNCTION_NOT_INLINE_CANDIDATE, CIF_FINAL_NORMAL, |
| N_("function not inline candidate")) |
| |
| /* Inlining failed because of various limit parameters. */ |
| DEFCIFCODE(LARGE_FUNCTION_GROWTH_LIMIT, CIF_FINAL_NORMAL, |
| N_("--param large-function-growth limit reached")) |
| DEFCIFCODE(LARGE_STACK_FRAME_GROWTH_LIMIT, CIF_FINAL_NORMAL, |
| N_("--param large-stack-frame-growth limit reached")) |
| DEFCIFCODE(MAX_INLINE_INSNS_SINGLE_LIMIT, CIF_FINAL_NORMAL, |
| N_("--param max-inline-insns-single limit reached")) |
| DEFCIFCODE(MAX_INLINE_INSNS_AUTO_LIMIT, CIF_FINAL_NORMAL, |
| N_("--param max-inline-insns-auto limit reached")) |
| DEFCIFCODE(INLINE_UNIT_GROWTH_LIMIT, CIF_FINAL_NORMAL, |
| N_("--param inline-unit-growth limit reached")) |
| |
| /* Recursive inlining. */ |
| DEFCIFCODE(RECURSIVE_INLINING, CIF_FINAL_NORMAL, |
| N_("recursive inlining")) |
| |
| /* Call is unlikely. */ |
| DEFCIFCODE(UNLIKELY_CALL, CIF_FINAL_NORMAL, |
| N_("call is unlikely and code size would grow")) |
| |
| /* Call is considered never executed. */ |
| DEFCIFCODE(NEVER_CALL, CIF_FINAL_NORMAL, |
| N_("call is considered never executed and code size would grow")) |
| |
| /* Function is not declared as inline. */ |
| DEFCIFCODE(NOT_DECLARED_INLINED, CIF_FINAL_NORMAL, |
| N_("function not declared inline and code size would grow")) |
| |
| /* Caller and callee disagree on the arguments. */ |
| DEFCIFCODE(LTO_MISMATCHED_DECLARATIONS, CIF_FINAL_ERROR, |
| N_("mismatched declarations during linktime optimization")) |
| |
| /* Caller is variadic thunk. */ |
| DEFCIFCODE(VARIADIC_THUNK, CIF_FINAL_ERROR, |
| N_("variadic thunk call")) |
| |
| /* Call was originally indirect. */ |
| DEFCIFCODE(ORIGINALLY_INDIRECT_CALL, CIF_FINAL_NORMAL, |
| N_("originally indirect function call not considered for inlining")) |
| |
| /* Ths edge represents an indirect edge with a yet-undetermined callee . */ |
| DEFCIFCODE(INDIRECT_UNKNOWN_CALL, CIF_FINAL_NORMAL, |
| N_("indirect function call with a yet undetermined callee")) |
| |
| /* We can't inline different EH personalities together. */ |
| DEFCIFCODE(EH_PERSONALITY, CIF_FINAL_ERROR, |
| N_("exception handling personality mismatch")) |
| |
| /* We can't inline if the callee can throw non-call exceptions but the |
| caller cannot. */ |
| DEFCIFCODE(NON_CALL_EXCEPTIONS, CIF_FINAL_ERROR, |
| N_("non-call exception handling mismatch")) |
| |
| /* We can't inline because of mismatched target specific options. */ |
| DEFCIFCODE(TARGET_OPTION_MISMATCH, CIF_FINAL_ERROR, |
| N_("target specific option mismatch")) |
| |
| /* We can't inline because of mismatched optimization levels. */ |
| DEFCIFCODE(OPTIMIZATION_MISMATCH, CIF_FINAL_ERROR, |
| N_("optimization level attribute mismatch")) |
| |
| /* We can't inline because the callee refers to comdat-local symbols. */ |
| DEFCIFCODE(USES_COMDAT_LOCAL, CIF_FINAL_NORMAL, |
| N_("callee refers to comdat-local symbols")) |
| |
| /* We can't inline because of mismatched caller/callee |
| sanitizer attributes. */ |
| DEFCIFCODE(SANITIZE_ATTRIBUTE_MISMATCH, CIF_FINAL_ERROR, |
| N_("sanitizer function attribute mismatch")) |
| |
| /* 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")) |
| |
| /* We proved that the call is unreachable. */ |
| DEFCIFCODE(UNREACHABLE, CIF_FINAL_ERROR, |
| N_("unreachable")) |