GCC Middle and Back End API Reference
target.h File Reference
#include "insn-modes.h"
#include "insn-codes.h"
#include "target.def"
Include dependency graph for target.h:

Go to the source code of this file.

Data Structures

union  cumulative_args_t
struct  secondary_reload_info
struct  asm_int_op

Macros

#define DEFHOOKPOD(NAME, DOC, TYPE, INIT)   TYPE NAME;
#define DEFHOOK(NAME, DOC, TYPE, PARAMS, INIT)   TYPE (* NAME) PARAMS;
#define DEFHOOK_UNDOC   DEFHOOK
#define HOOKSTRUCT(FRAGMENT)   FRAGMENT

Typedefs

typedef int(* print_switch_fn_type )(print_switch_type, const char *)
typedef struct
secondary_reload_info 
secondary_reload_info

Enumerations

enum  print_switch_type {
  SWITCH_TYPE_PASSED, SWITCH_TYPE_ENABLED, SWITCH_TYPE_DESCRIPTIVE, SWITCH_TYPE_LINE_START,
  SWITCH_TYPE_LINE_END
}
enum  vect_cost_for_stmt {
  scalar_stmt, scalar_load, scalar_store, vector_stmt,
  vector_load, unaligned_load, unaligned_store, vector_store,
  vec_to_scalar, scalar_to_vec, cond_branch_not_taken, cond_branch_taken,
  vec_perm, vec_promote_demote, vec_construct
}
enum  vect_cost_model_location { vect_prologue = 0, vect_body = 1, vect_epilogue = 2 }

Functions

int elf_record_gcc_switches (print_switch_type type, const char *)
bool target_default_pointer_address_modes_p (void)
tree stmt_vectype (struct _stmt_vec_info *)
bool stmt_in_inner_loop_p (struct _stmt_vec_info *)
static CUMULATIVE_ARGS * get_cumulative_args ()
static cumulative_args_t pack_cumulative_args ()

Variables

struct gcc_target targetm

Macro Definition Documentation

#define DEFHOOK (   NAME,
  DOC,
  TYPE,
  PARAMS,
  INIT 
)    TYPE (* NAME) PARAMS;
#define DEFHOOK_UNDOC   DEFHOOK
#define DEFHOOKPOD (   NAME,
  DOC,
  TYPE,
  INIT 
)    TYPE NAME;
   The target structure.  This holds all the backend hooks.  
#define HOOKSTRUCT (   FRAGMENT)    FRAGMENT
   HOOKSTRUCT(FRAGMENT): Declarator fragments to encapsulate all the
   members into a struct gcc_target, which in turn contains several
   sub-structs.  

Typedef Documentation

typedef int(* print_switch_fn_type)(print_switch_type, const char *)
   The struct used by the secondary_reload target hook.  

Enumeration Type Documentation

   Types used by the record_gcc_switches() target function.  
Enumerator:
SWITCH_TYPE_PASSED 
SWITCH_TYPE_ENABLED 
SWITCH_TYPE_DESCRIPTIVE 
SWITCH_TYPE_LINE_START 
SWITCH_TYPE_LINE_END 
   Types of costs for vectorizer cost model.  
Enumerator:
scalar_stmt 
scalar_load 
scalar_store 
vector_stmt 
vector_load 
unaligned_load 
unaligned_store 
vector_store 
vec_to_scalar 
scalar_to_vec 
cond_branch_not_taken 
cond_branch_taken 
vec_perm 
vec_promote_demote 
vec_construct 
   Separate locations for which the vectorizer cost model should
   track costs.  
Enumerator:
vect_prologue 
vect_body 
vect_epilogue 

Function Documentation

int elf_record_gcc_switches ( print_switch_type  type,
const char *   
)
   An example implementation for ELF targets.  Defined in varasm.c  
static CUMULATIVE_ARGS* get_cumulative_args ( )
inlinestatic
static cumulative_args_t pack_cumulative_args ( )
inlinestatic

Referenced by reverse_op().

bool stmt_in_inner_loop_p ( struct _stmt_vec_info )
tree stmt_vectype ( struct _stmt_vec_info )
   These are defined in tree-vect-stmts.c.  

Referenced by default_builtin_support_vector_misalignment(), and record_stmt_cost().

bool target_default_pointer_address_modes_p ( void  )
   Some places still assume that all pointer or address modes are the
   standard Pmode and ptr_mode.  These optimizations become invalid if
   the target actually supports multiple different modes.  For now,
   we disable such optimizations on such targets, using this function.  

Referenced by rtx_equal_for_memref_p().


Variable Documentation

struct gcc_target targetm

Referenced by add_ttypes_entry(), allocate_struct_function(), anti_adjust_stack_and_probe(), arithmetic_flags_clobber_p(), asm_output_aligned_bss(), assemble_aliases(), assemble_asm(), assemble_external_real(), assemble_vtv_preinit_initializer(), assign_parm_setup_block(), assign_parms(), assign_parms_unsplit_complex(), assign_spill_hard_regs(), bit_from_pos(), blocks_nreverse_all(), call_expr_flags(), call_may_clobber_ref_p_1(), choose_ready(), code_motion_process_successors(), combinable_i3pat(), compare_constant(), compare_ctor(), compute_const_anchors(), compute_reloc_for_rtx(), const_iteration_count(), const_rtx_hash(), construct_exit_block(), convert_to_integer(), copy_blkmode_from_reg(), copy_constant(), count_reg_usage(), crc32_string(), create_pre_exit(), dbxout_finish_complex_stabs(), dbxout_stab_value_label(), dbxout_stab_value_label_diff(), debug_rli(), decl_attributes(), default_addr_space_pointer_mode(), default_asm_output_anchor(), default_class_likely_spilled_p(), default_class_max_nregs(), default_function_section(), default_get_reg_raw_mode(), default_no_named_section(), default_preferred_output_reload_class(), default_pretend_outgoing_varargs_named(), default_ref_may_alias_errno(), default_valid_pointer_mode(), determine_common_wider_type(), do_assemble_alias(), dump_tree_statistics(), dw2_asm_output_data_sleb128_raw(), dw2_asm_output_data_uleb128_raw(), dw_cfi_oprnd2_desc(), dwarf2out_var_location(), dwarf2out_vms_end_prologue(), early_queue_to_ready(), emit_debug_global_declarations(), emit_local(), emit_move_ccmode(), emit_move_multi_word(), emit_to_new_bb_before(), emit_use_return_register_into_block(), comdat_type_hasher::equal(), expand_asm_operands(), expand_builtin_bswap(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_setjmp_setup(), expand_builtin_strcmp(), expand_builtin_strncmp(), expand_function_start(), expand_gimple_tailcall(), expand_mult_highpart(), expand_sfix_optab(), final(), final_start_function(), find_attribute_namespace(), find_reusable_reload(), find_valid_class_1(), finish_bitfield_layout(), finish_record_layout(), fixed_base_plus_p(), fold_builtin_cabs(), force_not_mem(), gate_ccp(), gate_optimize_stdarg(), gen_fixed_libfunc(), gen_llsym(), gen_trunc_conv_libfunc(), get_block_for_decl(), get_earlier_stmt(), get_emutls_init_templ_addr(), get_emutls_object_type(), get_later_stmt(), get_variable_align(), gimplify_one_sizepos(), haifa_change_pattern(), haifa_luid_for_non_insn(), haifa_sched_init(), has_label_address_in_static_1(), has_nonexceptional_receiver(), hook_bool_CUMULATIVE_ARGS_false(), hot_function_section(), init_before_recovery(), init_eh(), init_optabs(), initialize_argument_information(), initializer_constant_valid_p_1(), inline_forbidden_p_stmt(), insert_move_for_subreg(), insert_regs(), insn_cost(), insn_finishes_cycle_p(), instantiate_expr(), instantiate_virtual_regs(), invoke_set_current_function_hook(), ira_bad_reload_regno_1(), ira_debug_allocno_classes(), layout_decl(), lhd_set_decl_assembler_name(), lookup_filename(), loop_canon_p(), make_pass_ipa_free_lang_data(), make_pass_ipa_lto_gimple_out(), make_vector_type(), mark_decl_referenced(), mark_referenced(), maybe_assemble_visibility(), maybe_lookup_decl_in_outer_ctx(), maybe_select_cc_mode(), mergeable_string_section(), move_insn_for_shrink_wrap(), new_cost(), new_emutls_decl(), noce_mem_write_may_trap_or_fault_p(), offsettable_memref_p(), ok_for_early_queue_removal(), omp_clause_operand_check_failed(), option_affects_pch_p(), output_alternate_entry_point(), output_asm_insn(), output_asm_statements(), output_attr_index_or_value(), output_call_frame_info(), output_die(), output_one_function_exception_table(), precompute_register_parameters(), prepare_call_address(), process_alt_operands(), promote_function_mode(), ps_insn_find_column(), queue_insn(), reemit_insn_block_notes(), reference_callee_copied(), register_operand(), reload_combine_recognize_pattern(), remove_address_replacements(), remove_pseudos(), resolve_dependencies(), restore_register_info(), retry_incomplete_types(), reverse_op(), safe_from_p(), sched_speculate_insn(), schedule_block(), schedule_ebb(), scompare_loc_descriptor(), sel_add_to_insn_priority(), set_mem_expr(), set_paradoxical_subreg(), shorten_branches(), splay_tree_compare_strings(), split_live_ranges_for_shrink_wrap(), subreg_offset_representable_p(), transfer_replacements(), tree_check_failed(), tree_output_constant_def(), typed_binop(), unpack_ts_function_decl_value_fields(), use_register_for_decl(), validate_simplify_insn(), vect_check_gather(), vect_get_load_cost(), vect_lanes_optab_supported_p(), vect_permute_load_chain(), vect_transform_grouped_load(), vmsdbgout_begin_epilogue(), volatile_refs_p(), weak_finish_1(), and whole_program_function_and_variable_visibility().