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.