GCC Middle and Back End API Reference
targhooks.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


bool default_legitimate_address_p (enum machine_mode, rtx, bool)
void default_external_libcall (rtx)
rtx default_legitimize_address (rtx, rtx, enum machine_mode)
int default_unspec_may_trap_p (const_rtx, unsigned)
enum machine_mode default_promote_function_mode (const_tree, enum machine_mode, int *, const_tree, int)
enum machine_mode default_promote_function_mode_always_promote (const_tree, enum machine_mode, int *, const_tree, int)
enum machine_mode default_cc_modes_compatible (enum machine_mode, enum machine_mode)
bool default_return_in_memory (const_tree, const_tree)
rtx default_expand_builtin_saveregs (void)
void default_setup_incoming_varargs (cumulative_args_t, enum machine_mode, tree, int *, int)
rtx default_builtin_setjmp_frame_value (void)
bool default_pretend_outgoing_varargs_named (cumulative_args_t)
enum machine_mode default_eh_return_filter_mode (void)
enum machine_mode default_libgcc_cmp_return_mode (void)
enum machine_mode default_libgcc_shift_count_mode (void)
enum machine_mode default_unwind_word_mode (void)
unsigned HOST_WIDE_INT default_shift_truncation_mask (enum machine_mode)
unsigned int default_min_divisions_for_recip_mul (enum machine_mode)
int default_mode_rep_extended (enum machine_mode, enum machine_mode)
tree default_stack_protect_guard (void)
tree default_external_stack_protect_fail (void)
tree default_hidden_stack_protect_fail (void)
enum machine_mode default_mode_for_suffix (char)
tree default_cxx_guard_type (void)
tree default_cxx_get_cookie_size (tree)
bool hook_pass_by_reference_must_pass_in_stack (cumulative_args_t, enum machine_mode mode, const_tree, bool)
bool hook_callee_copies_named (cumulative_args_t ca, enum machine_mode, const_tree, bool)
void default_print_operand (FILE *, rtx, int)
void default_print_operand_address (FILE *, rtx)
bool default_print_operand_punct_valid_p (unsigned char)
tree default_mangle_assembler_name (const char *)
bool default_scalar_mode_supported_p (enum machine_mode)
bool targhook_words_big_endian (void)
bool targhook_float_words_big_endian (void)
bool default_decimal_float_supported_p (void)
bool default_fixed_point_supported_p (void)
bool default_has_ifunc_p (void)
const char * default_invalid_within_doloop (const_rtx)
tree default_builtin_vectorized_function (tree, tree, tree)
tree default_builtin_vectorized_conversion (unsigned int, tree, tree)
int default_builtin_vectorization_cost (enum vect_cost_for_stmt, tree, int)
tree default_builtin_reciprocal (unsigned int, bool, bool)
HOST_WIDE_INT default_vector_alignment (const_tree)
bool default_builtin_vector_alignment_reachable (const_tree, bool)
bool default_builtin_support_vector_misalignment (enum machine_mode mode, const_tree, int, bool)
enum machine_mode default_preferred_simd_mode (enum machine_mode mode)
unsigned int default_autovectorize_vector_sizes (void)
void * default_init_cost (struct loop *)
unsigned default_add_stmt_cost (void *, int, enum vect_cost_for_stmt, struct _stmt_vec_info *, int, enum vect_cost_model_location)
void default_finish_cost (void *, unsigned *, unsigned *, unsigned *)
void default_destroy_cost_data (void *)
bool hook_bool_CUMULATIVE_ARGS_false (cumulative_args_t)
bool hook_bool_CUMULATIVE_ARGS_true (cumulative_args_t)
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false (cumulative_args_t, enum machine_mode, const_tree, bool)
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true (cumulative_args_t, enum machine_mode, const_tree, bool)
int hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 (cumulative_args_t, enum machine_mode, tree, bool)
const char * hook_invalid_arg_for_unprototyped_fn (const_tree, const_tree, const_tree)
void default_function_arg_advance (cumulative_args_t, enum machine_mode, const_tree, bool)
rtx default_function_arg (cumulative_args_t, enum machine_mode, const_tree, bool)
rtx default_function_incoming_arg (cumulative_args_t, enum machine_mode, const_tree, bool)
unsigned int default_function_arg_boundary (enum machine_mode, const_tree)
unsigned int default_function_arg_round_boundary (enum machine_mode, const_tree)
bool hook_bool_const_rtx_commutative_p (const_rtx, int)
rtx default_function_value (const_tree, const_tree, bool)
rtx default_libcall_value (enum machine_mode, const_rtx)
bool default_function_value_regno_p (const unsigned int)
rtx default_internal_arg_pointer (void)
rtx default_static_chain (const_tree, bool)
void default_trampoline_init (rtx, tree, rtx)
int default_return_pops_args (tree, tree, int)
reg_class_t default_branch_target_register_class (void)
bool default_lra_p (void)
int default_register_priority (int)
bool default_register_usage_leveling_p (void)
bool default_different_addr_displacement_p (void)
reg_class_t default_secondary_reload (bool, rtx, reg_class_t, enum machine_mode, secondary_reload_info *)
void default_target_option_override (void)
void hook_void_bitmap (bitmap)
int default_reloc_rw_mask (void)
tree default_mangle_decl_assembler_name (tree, tree)
tree default_emutls_var_fields (tree, tree *)
tree default_emutls_var_init (tree, tree, tree)
bool default_hard_regno_scratch_ok (unsigned int)
bool default_mode_dependent_address_p (const_rtx, addr_space_t)
bool default_target_option_valid_attribute_p (tree, tree, tree, int)
bool default_target_option_pragma_parse (tree, tree)
bool default_target_can_inline_p (tree, tree)
bool default_valid_pointer_mode (enum machine_mode)
bool default_ref_may_alias_errno (struct ao_ref_s *)
enum machine_mode default_addr_space_pointer_mode (addr_space_t)
enum machine_mode default_addr_space_address_mode (addr_space_t)
bool default_addr_space_valid_pointer_mode (enum machine_mode, addr_space_t)
bool default_addr_space_legitimate_address_p (enum machine_mode, rtx, bool, addr_space_t)
rtx default_addr_space_legitimize_address (rtx, rtx, enum machine_mode, addr_space_t)
bool default_addr_space_subset_p (addr_space_t, addr_space_t)
rtx default_addr_space_convert (rtx, tree, tree)
unsigned int default_case_values_threshold (void)
bool default_have_conditional_execution (void)
bool default_libc_has_function (enum function_class)
bool no_c99_libc_has_function (enum function_class)
bool gnu_libc_has_function (enum function_class)
tree default_builtin_tm_load_store (tree)
int default_memory_move_cost (enum machine_mode, reg_class_t, bool)
int default_register_move_cost (enum machine_mode, reg_class_t, reg_class_t)
bool default_profile_before_prologue (void)
reg_class_t default_preferred_reload_class (rtx, reg_class_t)
reg_class_t default_preferred_output_reload_class (rtx, reg_class_t)
reg_class_t default_preferred_rename_class (reg_class_t rclass)
bool default_class_likely_spilled_p (reg_class_t)
unsigned char default_class_max_nregs (reg_class_t, enum machine_mode)
enum unwind_info_type default_debug_unwind_info (void)
void default_canonicalize_comparison (int *, rtx *, rtx *, bool)
int default_label_align_after_barrier_max_skip (rtx)
int default_loop_align_max_skip (rtx)
int default_label_align_max_skip (rtx)
int default_jump_align_max_skip (rtx)
sectiondefault_function_section (tree decl, enum node_frequency freq, bool startup, bool exit)
enum machine_mode default_get_reg_raw_mode (int)
void * default_get_pch_validity (size_t *)
const char * default_pch_valid_p (const void *, size_t)
void default_asm_output_ident_directive (const char *)
enum machine_mode default_cstore_mode (enum insn_code)
bool default_member_type_forces_blk (const_tree, enum machine_mode)
tree build_va_arg_indirect_ref (tree)
tree std_gimplify_va_arg_expr (tree, tree, gimple_seq *, gimple_seq *)
rtx default_load_bounds_for_arg (rtx, rtx, rtx)
void default_store_bounds_for_arg (rtx, rtx, rtx, rtx)
tree default_fn_abi_va_list_bounds_size (tree)
tree default_chkp_bound_type (void)
enum machine_mode default_chkp_bound_mode (void)
tree default_builtin_chkp_function (unsigned int)

Function Documentation

tree build_va_arg_indirect_ref ( tree  )
unsigned default_add_stmt_cost ( void *  data,
int  count,
enum vect_cost_for_stmt  kind,
struct _stmt_vec_info stmt_info,
int  misalign,
enum vect_cost_model_location  where 
   By default, the cost model looks up the cost of the given statement
   kind and mode, multiplies it by the occurrence count, accumulates
   it into the cost specified by WHERE, and returns the cost added.  
      Statements in an inner loop relative to the loop being
      vectorized are weighted more heavily.  The value here is
      arbitrary and could potentially be improved with analysis.  
enum machine_mode default_addr_space_address_mode ( addr_space_t  )
rtx default_addr_space_convert ( rtx  op,
tree  from_type,
tree  to_type 
   The default hook for TARGET_ADDR_SPACE_CONVERT. This hook should never be
   called for targets with only a generic address space.  
bool default_addr_space_legitimate_address_p ( enum machine_mode  mode,
rtx  mem,
bool  strict,
addr_space_t  as 
   Named address space version of legitimate_address_p.  

References warning().

rtx default_addr_space_legitimize_address ( rtx  x,
rtx  oldx,
enum machine_mode  mode,
addr_space_t  as 
   Named address space version of LEGITIMIZE_ADDRESS.  
enum machine_mode default_addr_space_pointer_mode ( addr_space_t  )
bool default_addr_space_subset_p ( addr_space_t  ,
bool default_addr_space_valid_pointer_mode ( enum  machine_mode,
void default_asm_output_ident_directive ( const char *  )
unsigned int default_autovectorize_vector_sizes ( void  )
   By default only the size derived from the preferred vector mode
   is tried.  

References vect_body, vect_epilogue, and vect_prologue.

reg_class_t default_branch_target_register_class ( void  )
tree default_builtin_chkp_function ( unsigned  int)
tree default_builtin_reciprocal ( unsigned int  fn,
bool  md_fn,
bool  sqrt 
rtx default_builtin_setjmp_frame_value ( void  )
   The default implementation of TARGET_BUILTIN_SETJMP_FRAME_VALUE.  
bool default_builtin_support_vector_misalignment ( enum machine_mode  mode,
const_tree  type,
int  misalignment,
bool  is_packed 
   By default, assume that a target supports any factor of misalignment
   memory access if it supports movmisalign patten.
   is_packed is true if the memory access is defined in a packed struct.  

References default_builtin_vectorization_cost(), stmt_cost(), stmt_in_inner_loop_p(), stmt_vectype(), and vect_body.

tree default_builtin_tm_load_store ( tree  )
bool default_builtin_vector_alignment_reachable ( const_tree  ,
int default_builtin_vectorization_cost ( enum vect_cost_for_stmt  type_of_cost,
tree  vectype,
int  misalign 
   Default vectorizer cost model values.  

Referenced by default_builtin_support_vector_misalignment().

tree default_builtin_vectorized_conversion ( unsigned int  code,
tree  dest_type,
tree  src_type 
   Vectorized conversion.  
tree default_builtin_vectorized_function ( tree  fndecl,
tree  type_out,
tree  type_in 
   Mapping of builtin functions to vectorized variants.  

References cond_branch_not_taken, scalar_load, scalar_stmt, scalar_store, scalar_to_vec, vec_perm, vec_to_scalar, vector_load, vector_stmt, and vector_store.

void default_canonicalize_comparison ( int *  ,
rtx ,
rtx ,
unsigned int default_case_values_threshold ( void  )
   If the machine does not have a case insn that compares the bounds,
   this means extra overhead for dispatch tables, which raises the
   threshold for using them.  
enum machine_mode default_cc_modes_compatible ( enum  machine_mode,
enum  machine_mode 
enum machine_mode default_chkp_bound_mode ( void  )
tree default_chkp_bound_type ( void  )
bool default_class_likely_spilled_p ( reg_class_t  )
unsigned char default_class_max_nregs ( reg_class_t  rclass,
enum machine_mode  mode 
   The default implementation of TARGET_CLASS_MAX_NREGS.  

References memcpy(), target_flags, and targetm.

enum machine_mode default_cstore_mode ( enum  insn_code)
tree default_cxx_get_cookie_size ( tree  )
tree default_cxx_guard_type ( void  )
   The generic C++ ABI specifies this is a 64-bit value.  

References size_in_bytes().

enum unwind_info_type default_debug_unwind_info ( void  )
   Determine the debugging unwind mechanism for the target.  
     If the target wants to force the use of dwarf2 unwind info, let it.  
     ??? Change all users to the hook, then poison this.  
     Otherwise, only turn it on if dwarf2 debugging is enabled.  
bool default_decimal_float_supported_p ( void  )
   True if the target supports decimal floating point.  
void default_destroy_cost_data ( void *  )
bool default_different_addr_displacement_p ( void  )

References insn_data, and n_operands.

enum machine_mode default_eh_return_filter_mode ( void  )

References word_mode.

tree default_emutls_var_fields ( tree  ,
tree default_emutls_var_init ( tree  ,
tree  ,
rtx default_expand_builtin_saveregs ( void  )
void default_external_libcall ( rtx  )
tree default_external_stack_protect_fail ( void  )
void default_finish_cost ( void *  data,
unsigned *  prologue_cost,
unsigned *  body_cost,
unsigned *  epilogue_cost 
   By default, the cost model just returns the accumulated costs.  
bool default_fixed_point_supported_p ( void  )
   True if the target supports fixed-point arithmetic.  

References computed_jump_p(), and tablejump_p().

tree default_fn_abi_va_list_bounds_size ( tree  )
rtx default_function_arg ( cumulative_args_t  ,
enum  machine_mode,
const_tree  ,
void default_function_arg_advance ( cumulative_args_t  ,
enum  machine_mode,
const_tree  ,
unsigned int default_function_arg_boundary ( enum  machine_mode,

References stack_chk_guard_decl.

unsigned int default_function_arg_round_boundary ( enum  machine_mode,

References get_identifier().

rtx default_function_incoming_arg ( cumulative_args_t  ,
enum  machine_mode,
const_tree  ,
section* default_function_section ( tree  decl,
enum node_frequency  freq,
bool  startup,
bool  exit 
   Choose named function section based on its frequency.  
     Old GNU linkers have buggy --gc-section support, which sometimes
     results in .gcc_except_table* sections being garbage collected.  
     Startup code should go to startup subsection unless it is
     unlikely executed (this happens especially with function splitting
     where we can split away unnecessary parts of static constructors.  
     Similarly for exit.  
     Group cold functions together, similarly for hot code.  

References cgraph_get_node(), get_named_section(), hot_function_section(), NODE_FREQUENCY_NORMAL, NODE_FREQUENCY_UNLIKELY_EXECUTED, cgraph_node::only_called_at_exit, cgraph_node::only_called_at_startup, and targetm.

rtx default_function_value ( const_tree  ,
const_tree  ,
     The old interface doesn't handle receiving the function type.  
bool default_function_value_regno_p ( const unsigned  int)
void* default_get_pch_validity ( size_t *  )
enum machine_mode default_get_reg_raw_mode ( int  )
bool default_hard_regno_scratch_ok ( unsigned  int)
bool default_has_ifunc_p ( void  )
   True if the target supports GNU indirect functions.  
bool default_have_conditional_execution ( void  )
tree default_hidden_stack_protect_fail ( void  )
void* default_init_cost ( struct loop )
rtx default_internal_arg_pointer ( void  )
     If the reg that the virtual arg pointer will be translated into is
     not a fixed reg or is the stack pointer, make a copy of the virtual
     arg pointer, and address parms via the copy.  The frame pointer is
     considered fixed even though it is not marked as such.  
const char* default_invalid_within_doloop ( const_rtx  )
int default_jump_align_max_skip ( rtx  )
int default_label_align_after_barrier_max_skip ( rtx  )
int default_label_align_max_skip ( rtx  )
bool default_legitimate_address_p ( enum machine_mode  mode,
rtx  addr,
bool  strict 

Default target hook functions. Copyright (C) 2003-2013 Free Software Foundation, Inc.

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/.


Default target hook functions. Copyright (C) 2003-2013 Free Software Foundation, Inc.

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 migration of target macros to target hooks works as follows:

   1. Create a target hook that uses the existing target macros to
      implement the same functionality.

   2. Convert all the MI files to use the hook instead of the macro.

   3. Repeat for a majority of the remaining target macros.  This will
      take some time.

   4. Tell target maintainers to start migrating.

   5. Eventually convert the backends to override the hook instead of
      defining the macros.  This will take some time too.

   6. TBD when, poison the macros.  Unmigrated targets will break at
      this point.

   Note that we expect steps 1-3 to be done by the people that
   understand what the MI does with each macro, and step 5 to be done
   by the target maintainers for their respective targets.

   Note that steps 1 and 2 don't have to be done together, but no
   target can override the new hook until step 2 is complete for it.

   Once the macros are poisoned, we will revert to the old migration
   rules - migrate the macro, callers, and targets all at once.  This
   comment can thus be removed at that point.  
     Defer to the old implementation using a goto.  
rtx default_legitimize_address ( rtx  ,
rtx  ,
enum  machine_mode 
bool default_libc_has_function ( enum  function_class)
rtx default_libcall_value ( enum  machine_mode,
enum machine_mode default_libgcc_cmp_return_mode ( void  )

References word_mode.

enum machine_mode default_libgcc_shift_count_mode ( void  )

References word_mode.

rtx default_load_bounds_for_arg ( rtx  ,
rtx  ,
int default_loop_align_max_skip ( rtx  )
bool default_lra_p ( void  )
tree default_mangle_assembler_name ( const char *  )
tree default_mangle_decl_assembler_name ( tree  decl,
tree  id 
   By default, do no modification. 

References optab_handler().

bool default_member_type_forces_blk ( const_tree  ,
enum  machine_mode 
int default_memory_move_cost ( enum machine_mode  mode,
reg_class_t  rclass,
bool  in 
   Compute cost of moving registers to/from memory.  
unsigned int default_min_divisions_for_recip_mul ( enum  machine_mode)
bool default_mode_dependent_address_p ( const_rtx  addr,
addr_space_t  addrspace 
   The default implementation of TARGET_MODE_DEPENDENT_ADDRESS_P.  
enum machine_mode default_mode_for_suffix ( char  )
int default_mode_rep_extended ( enum machine_mode  mode,
enum machine_mode  mode_rep 
   The default implementation of TARGET_MODE_REP_EXTENDED.  
const char* default_pch_valid_p ( const void *  ,
reg_class_t default_preferred_output_reload_class ( rtx  x,
reg_class_t  rclass 
   The default implementation of TARGET_OUTPUT_PREFERRED_RELOAD_CLASS.  

References targetm.

reg_class_t default_preferred_reload_class ( rtx  x,
reg_class_t  rclass 
   The default implementation of TARGET_PREFERRED_RELOAD_CLASS.  
reg_class_t default_preferred_rename_class ( reg_class_t  rclass)
enum machine_mode default_preferred_simd_mode ( enum machine_mode  mode)
bool default_pretend_outgoing_varargs_named ( cumulative_args_t  )
void default_print_operand ( FILE *  stream,
rtx  x,
int  code 
   Emit to STREAM the assembler syntax for insn operand X.  
void default_print_operand_address ( FILE *  stream,
rtx  x 
   Emit to STREAM the assembler syntax for an insn operand whose memory
   address is X.  
bool default_print_operand_punct_valid_p ( unsigned  char)
bool default_profile_before_prologue ( void  )
enum machine_mode default_promote_function_mode ( const_tree  ,
enum  machine_mode,
int *  ,
const_tree  ,

References promote_mode().

enum machine_mode default_promote_function_mode_always_promote ( const_tree  ,
enum  machine_mode,
int *  ,
const_tree  ,

References promote_mode().

bool default_ref_may_alias_errno ( struct ao_ref_s )
int default_register_move_cost ( enum machine_mode  mode,
reg_class_t  from,
reg_class_t  to 
   Compute cost of moving data from a register of class FROM to one of
   TO, using MODE.  

References UI_DWARF2.

int default_register_priority ( int  )
bool default_register_usage_leveling_p ( void  )
int default_reloc_rw_mask ( void  )
   By default, if flag_pic is true, then neither local nor global relocs
   should be placed in readonly memory.  
bool default_return_in_memory ( const_tree  ,
int default_return_pops_args ( tree  ,
tree  ,
bool default_scalar_mode_supported_p ( enum  machine_mode)
reg_class_t default_secondary_reload ( bool  ,
rtx  ,
reg_class_t  ,
enum  machine_mode,
             The scratch register's constraint must start with "=&",
             except for an input reload, where only "=" is necessary,
             and where it might be beneficial to re-use registers from
             the input.  

References insn_data.

void default_setup_incoming_varargs ( cumulative_args_t  ,
enum  machine_mode,
tree  ,
int *  ,
unsigned HOST_WIDE_INT default_shift_truncation_mask ( enum  machine_mode)
tree default_stack_protect_guard ( void  )
         Do not share RTL as the declaration is visible outside of
         current function.  

References build_call_expr(), build_function_type_list(), get_identifier(), stack_chk_fail_decl, and VISIBILITY_DEFAULT.

rtx default_static_chain ( const_tree  ,
void default_store_bounds_for_arg ( rtx  ,
rtx  ,
rtx  ,
bool default_target_can_inline_p ( tree  ,
void default_target_option_override ( void  )
bool default_target_option_pragma_parse ( tree  ,
bool default_target_option_valid_attribute_p ( tree  ,
tree  ,
tree  ,
void default_trampoline_init ( rtx  ,
tree  ,
int default_unspec_may_trap_p ( const_rtx  ,
enum machine_mode default_unwind_word_mode ( void  )
bool default_valid_pointer_mode ( enum  machine_mode)
HOST_WIDE_INT default_vector_alignment ( const_tree  )
bool gnu_libc_has_function ( enum  function_class)
bool hook_bool_const_rtx_commutative_p ( const_rtx  ,
bool hook_bool_CUMULATIVE_ARGS_false ( cumulative_args_t  )
   These are here, and not in hooks.[ch], because not all users of
   hooks.h include tm.h, and thus we don't have CUMULATIVE_ARGS.  
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false ( cumulative_args_t  ,
enum  machine_mode,
const_tree  ,
bool hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true ( cumulative_args_t  ,
enum  machine_mode,
const_tree  ,
bool hook_bool_CUMULATIVE_ARGS_true ( cumulative_args_t  )
bool hook_callee_copies_named ( cumulative_args_t  ca,
enum machine_mode  mode,
const_tree  type,
bool  named 
   Return true if a parameter follows callee copies conventions.  This
   version of the hook is true for all named arguments.  
int hook_int_CUMULATIVE_ARGS_mode_tree_bool_0 ( cumulative_args_t  ,
enum  machine_mode,
tree  ,
const char* hook_invalid_arg_for_unprototyped_fn ( const_tree  ,
const_tree  ,
bool hook_pass_by_reference_must_pass_in_stack ( cumulative_args_t  c,
enum machine_mode  mode,
const_tree  type,
bool  named_arg 
   Return true if a parameter must be passed by reference.  This version
void hook_void_bitmap ( bitmap  )
bool no_c99_libc_has_function ( enum  function_class)
tree std_gimplify_va_arg_expr ( tree  valist,
tree  type,
gimple_seq pre_p,
gimple_seq post_p 
   The "standard" implementation of va_arg: read the value from the
   current (padded) address and increment by the (padded) size.  
     All of the alignment and movement below is for args-grow-up machines.
     As of 2004, there are only 3 ARGS_GROW_DOWNWARD targets, and they all
     implement their own specialized gimplify_va_arg_expr routines.  
     When we align parameter on stack for caller, if the parameter
     alignment is beyond MAX_SUPPORTED_STACK_ALIGNMENT, it will be
     aligned at MAX_SUPPORTED_STACK_ALIGNMENT.  We will match callee
     here with caller.  
     Hoist the valist value into a temporary for the moment.  
     va_list pointer is aligned to PARM_BOUNDARY.  If argument actually
     requires greater alignment, we must perform dynamic alignment.  
     If the actual alignment is less than the alignment of the type,
     adjust the type accordingly so that we don't assume strict alignment
     when dereferencing the pointer.  
     Compute the rounded size of the type.  
     Reduce rounded_size so it's sharable with the postqueue.  
     Get AP.  
         Small args are padded downward.  
     Compute new value for AP.  
bool targhook_float_words_big_endian ( void  )
bool targhook_words_big_endian ( void  )
   Make some target macros useable by target-independent code.