GCC Middle and Back End API Reference
|
#include <function.h>
This structure can save all the important global and static variables describing the status of the current function.
unsigned int function::after_inlining |
unsigned int function::always_inline_functions_inlined |
unsigned int function::calls_alloca |
Nonzero if function being compiled can call alloca, either as a subroutine or builtin.
unsigned int function::calls_cilk_spawn |
Nonzero if this is a Cilk function that spawns.
unsigned int function::calls_setjmp |
Nonzero if function being compiled can call setjmp.
unsigned int function::can_delete_dead_exceptions |
Nonzero if instructions that may throw exceptions but don't otherwise contribute to the execution of the program can be deleted.
unsigned int function::can_throw_non_call_exceptions |
Nonzero if function being compiled can throw synchronous non-call exceptions.
const char* function::cannot_be_copied_reason |
Non-null if the function does something that would prevent it from being copied; this applies to both versioning and inlining. Set to a string describing the reason for failure.
unsigned int function::cannot_be_copied_set |
Nonzero if we've set cannot_be_copied_reason. I.e. if (cannot_be_copied_set && !cannot_be_copied_reason), the function can in fact be copied.
struct control_flow_graph* function::cfg |
The control flow graph for this function.
tree function::cilk_frame_decl |
In a Cilk function, the VAR_DECL for the frame descriptor.
unsigned int function::curr_properties |
Properties used by the pass manager.
tree function::decl |
For function.c. Points to the FUNCTION_DECL of this function.
Referenced by push_function_context().
struct eh_status* function::eh |
struct dw_fde_struct* function::fde |
Dwarf2 Frame Description Entry, containing the Call Frame Instructions used for unwinding. Only set when either dwarf2 unwinding or dwarf2 debugging is enabled.
int function::funcdef_no |
Function sequence number for profiling, debugging, etc.
location_t function::function_end_locus |
Line number of the end of the function.
location_t function::function_start_locus |
Line number of the start of the function for debugging purposes.
gimple_seq function::gimple_body |
GIMPLE body for this function.
struct gimple_df* function::gimple_df |
SSA and dataflow information.
unsigned int function::has_force_vect_loops |
Nonzero if the current function contains any loops with loop->force_vect set.
unsigned int function::has_local_explicit_reg_vars |
Nonzero if this function has local DECL_HARD_REGISTER variables. In this case code motion has to be done more carefully.
unsigned int function::has_nonlocal_label |
Nonzero if function being compiled receives nonlocal gotos from nested functions.
unsigned int function::has_simduid_loops |
Nonzero if the current function contains any loops with nonzero value in loop->simduid.
unsigned int function::is_cilk_function |
This will indicate whether a function is a cilk function
unsigned int function::is_thunk |
Nonzero if the current function is a thunk, i.e., a lightweight function implemented by the output_mi_thunk hook) that just adjusts one of its arguments and forwards to another function.
struct language_function* function::language |
Language-specific code can use this to store whatever it likes.
int function::last_stmt_uid |
Last statement uid.
unsigned int function::last_verified |
Vector of function local variables, functions, types and constants.
struct machine_function* function::machine |
For md files. tm.h can use this to store whatever it likes.
tree function::nonlocal_goto_save_area |
An expression that contains the non-local goto save area. The first word is the saved frame pointer and the second is the saved stack pointer.
unsigned int function::returns_pcc_struct |
Nonzero if function being compiled needs to return the address of where it has put a structure value.
Referenced by set_cfun().
unsigned int function::returns_struct |
Fields below this point are not set for abstract functions; see allocate_struct_function. Nonzero if function being compiled needs to be given an address where the value should be stored.
tree function::static_chain_decl |
A PARM_DECL that should contain the static chain for this function. It will be initialized at the beginning of the function.
Referenced by allocate_struct_function().
unsigned int function::stdarg |
Nonzero if current function uses stdarg.h or equivalent.
struct stack_usage* function::su |
The stack usage of this function.
Referenced by blocks_nreverse().
htab_t function::used_types_hash |
Used types hash table.
unsigned int function::va_list_fpr_size |
Number of units of floating point registers that need saving in stdarg function.
unsigned int function::va_list_gpr_size |
Collected bit flags. Number of units of general registers that need saving in stdarg function. What unit is depends on the backend, either it is number of bytes, or it can be number of registers.
htab_t function::value_histograms |
Value histograms attached to particular statements.
struct loops* function::x_current_loops |
The loops in this function.