|
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 |
Referenced by cgraph_release_function_body().
| 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.
Referenced by discard_pending_stack_adjust(), and suitable_for_tail_opt_p().
| 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.
Referenced by compute_uninit_opnds_pos(), find_case_label_for_value(), find_rtx_in_ldst(), is_too_expensive(), and split_live_ranges_for_shrink_wrap().
| 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.
Referenced by calculate_bb_reg_pressure(), remove_unreachable_eh_regions(), special_builtin_state(), store_killed_before(), and tree_could_trap_p().
| 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.
Referenced by gimple_call_arg_flags(), and replace_ssa_name().
| 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.
Referenced by copy_decl_maybe_to_var(), and verify_curr_properties().
| tree function::decl |
For function.c.
Points to the FUNCTION_DECL of this function.
Referenced by choose_inner_scope(), create_function_info_for(), get_fi_for_callee(), gimple_purge_dead_eh_edges(), move_insn_for_shrink_wrap(), and 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.
Referenced by dwarf2out_frame_debug_cfa_window_save().
| 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.
Referenced by gimple_purge_dead_eh_edges().
| location_t function::function_start_locus |
Line number of the start of the function for debugging purposes.
Referenced by instrument_memory_accesses().
| gimple_seq function::gimple_body |
GIMPLE body for this function.
| struct gimple_df* function::gimple_df |
SSA and dataflow information.
Referenced by add_partitioned_vars_to_ptset(), ao_ref_from_mem(), debug_solution_for_var(), execute_init_datastructures(), finalize_ssa_defs(), fixup_noreturn_call(), release_defs(), and update_alias_info_with_stack_vars().
| unsigned int function::has_force_vect_loops |
Nonzero if the current function contains any loops with
loop->force_vect set.
Referenced by tree_loop_vectorize().
| 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.
Referenced by compute_hash_table(), compute_uninit_opnds_pos(), find_case_label_for_value(), and process_bb_node_lives().
| unsigned int function::has_simduid_loops |
Nonzero if the current function contains any loops with
nonzero value in loop->simduid.
Referenced by vectorize_loops().
| unsigned int function::is_cilk_function |
This will indicate whether a function is a cilk function
Referenced by get_frame_arg().
| 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.
Referenced by default_ctor_section_asm_out_constructor(), and profile_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 copy_decl_no_change(), and 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.
Referenced by copy_decl_no_change().
| 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(), create_function_info_for(), and stmt_overflow_infinity().
| 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.