osprey/kg++fe/gnu/expr.c File Reference

#include "config.h"
#include "system.h"
#include "machmode.h"
#include "real.h"
#include "rtl.h"
#include "tree.h"
#include "flags.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "except.h"
#include "function.h"
#include "insn-config.h"
#include "insn-attr.h"
#include "expr.h"
#include "optabs.h"
#include "libfuncs.h"
#include "recog.h"
#include "reload.h"
#include "output.h"
#include "typeclass.h"
#include "toplev.h"
#include "ggc.h"
#include "langhooks.h"
#include "intl.h"
#include "tm_p.h"
#include "gt-expr.h"

Include dependency graph for expr.c:

Go to the source code of this file.

Data Types

type  move_by_pieces
type  store_by_pieces

Defines

#define STACK_PUSH_CODE   PRE_INC
#define CASE_VECTOR_PC_RELATIVE   0
#define TARGET_MEM_FUNCTIONS   0
#define MOVE_RATIO   (optimize_size ? 3 : 15)
#define MOVE_BY_PIECES_P(SIZE, ALIGN)   (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) MOVE_RATIO)
#define CLEAR_RATIO   (optimize_size ? 3 : 15)
#define CLEAR_BY_PIECES_P(SIZE, ALIGN)   (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) CLEAR_RATIO)
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN)   STRICT_ALIGNMENT
#define MOVE_MAX_PIECES   MOVE_MAX
#define STORE_MAX_PIECES   MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT))
#define HAVE_casesi   0
#define gen_casesi(a, b, c, d, e)   (0)
#define CODE_FOR_casesi   CODE_FOR_nothing
#define CASE_VALUES_THRESHOLD   (HAVE_casesi ? 4 : 5)
#define HAVE_tablejump   0
#define gen_tablejump(x, y)   (0)

Functions/Subroutines

static rtx enqueue_insn PARAMS ((rtx, rtx))
static unsigned HOST_WIDE_INT
move_by_pieces_ninsns 
PARAMS ((unsigned HOST_WIDE_INT, unsigned int))
static void move_by_pieces_1 PARAMS ((rtx(*)(rtx,...), enum machine_mode, struct move_by_pieces *))
static bool
block_move_libcall_safe_for_call_parm 
PARAMS ((void))
static bool
emit_block_move_via_movstr 
PARAMS ((rtx, rtx, rtx, unsigned))
static rtx
emit_block_move_via_libcall 
PARAMS ((rtx, rtx, rtx))
static tree
emit_block_move_libcall_fn 
PARAMS ((int))
static rtx clear_by_pieces_1 PARAMS ((PTR, HOST_WIDE_INT, enum machine_mode))
static void clear_by_pieces PARAMS ((rtx, unsigned HOST_WIDE_INT, unsigned int))
static void store_by_pieces_1 PARAMS ((struct store_by_pieces *, unsigned int))
static void store_by_pieces_2 PARAMS ((rtx(*)(rtx,...), enum machine_mode, struct store_by_pieces *))
static bool
clear_storage_via_clrstr 
PARAMS ((rtx, rtx, unsigned))
static rtx get_subtarget PARAMS ((rtx))
static int is_zeros_p PARAMS ((tree))
static void store_constructor_field PARAMS ((rtx, unsigned HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, tree, int, int))
static void store_constructor PARAMS ((tree, rtx, int, HOST_WIDE_INT))
static rtx store_field PARAMS ((rtx, HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, enum machine_mode, int, tree, int))
static HOST_WIDE_INT
highest_pow2_factor_for_type 
PARAMS ((tree, tree))
static rtx expand_increment PARAMS ((tree, int, int))
static void
do_jump_by_parts_greater 
PARAMS ((tree, int, rtx, rtx))
static void
do_jump_by_parts_equality 
PARAMS ((tree, rtx, rtx))
static void do_compare_and_jump PARAMS ((tree, enum rtx_code, enum rtx_code, rtx, rtx))
static rtx do_store_flag PARAMS ((tree, rtx, enum machine_mode, int))
static void do_tablejump PARAMS ((rtx, enum machine_mode, rtx, rtx, rtx))
void init_expr_once ()
void init_expr ()
void finish_expr_for_function ()
static rtx enqueue_insn (rtx var, rtx body)
rtx protect_from_queue (rtx x, int modify)
int queued_subexp_p (rtx x)
void emit_queue ()
void convert_move (rtx to, rtx from, int unsignedp)
rtx convert_to_mode (enum machine_mode mode, rtx x, int unsignedp)
rtx convert_modes (enum machine_mode mode, enum machine_mode oldmode, rtx x, int unsignedp)
int can_move_by_pieces (unsigned HOST_WIDE_INT len, unsigned int align)
rtx move_by_pieces (rtx to, rtx from, unsigned HOST_WIDE_INT len, unsigned int align, int endp)
static unsigned HOST_WIDE_INT move_by_pieces_ninsns (unsigned HOST_WIDE_INT l, unsigned int align)
static void move_by_pieces_1 (rtx *genfun, enum machine_mode mode, struct move_by_pieces *data)
rtx emit_block_move (rtx x, rtx y, rtx size, enum block_op_methods method)
static bool block_move_libcall_safe_for_call_parm ()
static bool emit_block_move_via_movstr (rtx x, rtx y, rtx size, unsigned int align)
static rtx emit_block_move_via_libcall (rtx dst, rtx src, rtx size)
static GTY (())
static tree emit_block_move_libcall_fn (int for_call)
static void emit_block_move_via_loop (rtx x, rtx y, rtx size, align)
void move_block_to_reg (int regno, rtx x, int nregs, enum machine_mode mode)
void move_block_from_reg (int regno, rtx x, int nregs, int size)
rtx gen_group_rtx (rtx orig)
void emit_group_load (rtx dst, rtx orig_src, int ssize)
void emit_group_move (rtx dst, rtx src)
void emit_group_store (rtx orig_dst, rtx src, int ssize)
rtx copy_blkmode_from_reg (rtx tgtblk, rtx srcreg, tree type)
void use_reg (rtx *call_fusage, rtx reg)
void use_regs (rtx *call_fusage, int regno, int nregs)
void use_group_regs (rtx *call_fusage, rtx regs)
int can_store_by_pieces (unsigned HOST_WIDE_INT len, rtx *constfun, PTR constfundata, unsigned int align)
rtx store_by_pieces (rtx to, unsigned HOST_WIDE_INT len, rtx *constfun, PTR constfundata, unsigned int align, int endp)
static void clear_by_pieces (rtx to, unsigned HOST_WIDE_INT len, unsigned int align)
static rtx clear_by_pieces_1 (data, offset, mode)
static void store_by_pieces_1 (struct store_by_pieces *data, unsigned int align)
static void store_by_pieces_2 (rtx *genfun, enum machine_mode mode, struct store_by_pieces *data)
rtx clear_storage (rtx object, rtx size)
static bool clear_storage_via_clrstr (rtx object, rtx size, unsigned int align)
static rtx clear_storage_via_libcall (rtx object, rtx size)
static tree clear_storage_libcall_fn (int for_call)
rtx emit_move_insn (rtx x, rtx y)
rtx emit_move_insn_1 (rtx x, rtx y)
static rtx compress_float_constant (rtx x, rtx y)
rtx push_block (rtx size, int extra, int below)
void emit_push_insn (rtx x, enum machine_mode mode, tree type, rtx size, unsigned int align, int partial, rtx reg, int extra, rtx args_addr, rtx args_so_far, int reg_parm_stack_space, rtx alignment_pad)
static rtx get_subtarget (rtx x)
rtx expand_assignment (tree to, tree from, int want_value, suggest_reg)
rtx store_expr (tree exp, rtx target, int want_value)
static int is_zeros_p (tree exp)
static int mostly_zeros_p (tree exp)
static void store_constructor_field (rtx target, unsigned HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos, enum machine_mode mode, tree exp, tree type, int cleared, int alias_set)
static void store_constructor (tree exp, rtx target, int cleared, HOST_WIDE_INT size)
static rtx store_field (rtx target, HOST_WIDE_INT bitsize, HOST_WIDE_INT bitpos, enum machine_mode mode, tree exp, enum machine_mode value_mode, int unsignedp, tree type, int alias_set)
tree get_inner_reference (tree exp, HOST_WIDE_INT *pbitsize, HOST_WIDE_INT *pbitpos, tree *poffset, enum machine_mode *pmode, int *punsignedp, int *pvolatilep)
int handled_component_p (tree t)
rtx force_operand (rtx value, rtx target)
int safe_from_p (rtx x, tree exp, int top_p)
static rtx var_rtx (tree exp)
static HOST_WIDE_INT highest_pow2_factor (tree exp)
static HOST_WIDE_INT highest_pow2_factor_for_type (tree type, tree exp)
tree find_placeholder (tree exp, tree *plist)
rtx expand_expr (tree exp, rtx target, enum machine_mode tmode, enum expand_modifier modifier)
static int is_aligning_offset (tree offset, tree exp)
tree string_constant (tree arg, tree *ptr_offset)
static rtx expand_increment (tree exp, int post, int ignore)
void init_pending_stack_adjust ()
void clear_pending_stack_adjust ()
void do_pending_stack_adjust ()
void jumpifnot (tree exp, rtx label)
void jumpif (tree exp, rtx label)
void do_jump (tree exp, rtx if_false_label, rtx if_true_label)
static void do_jump_by_parts_greater (tree exp, int swap, rtx if_false_label, rtx if_true_label)
void do_jump_by_parts_greater_rtx (enum machine_mode mode, int unsignedp, rtx op0, rtx op1, rtx if_false_label, rtx if_true_label)
static void do_jump_by_parts_equality (tree exp, rtx if_false_label, rtx if_true_label)
void do_jump_by_parts_equality_rtx (rtx op0, rtx if_false_label, rtx if_true_label)
rtx compare_from_rtx (rtx op0, rtx op1, enum rtx_code code, int unsignedp, enum machine_mode mode, rtx size)
void do_compare_rtx_and_jump (rtx op0, rtx op1, enum rtx_code code, int unsignedp, enum machine_mode mode, rtx size, rtx if_false_label, rtx if_true_label)
static void do_compare_and_jump (tree exp, enum rtx_code signed_code, enum rtx_code unsigned_code, rtx if_false_label, rtx if_true_label)
static rtx do_store_flag (tree exp, rtx target, enum machine_mode mode, int only_cheap)
unsigned int case_values_threshold ()
int try_casesi (tree index_type, tree index_expr, tree minval, tree range, table_label, rtx default_label)
static void do_tablejump (rtx index, enum machine_mode mode, rtx range, rtx table_label, rtx default_label)
int try_tablejump (tree index_type, tree index_expr, tree minval, tree range, rtx table_label, rtx default_label)
int vector_mode_valid_p (enum machine_mode mode)
static rtx const_vector_from_tree (tree exp)

Variables

int cse_not_expected
static tree placeholder_list = 0
static char direct_load [NUM_MACHINE_MODES]
static char direct_store [NUM_MACHINE_MODES]
static bool float_extend_from_mem [NUM_MACHINE_MODES][NUM_MACHINE_MODES]
enum insn_code movstr_optab [NUM_MACHINE_MODES]
enum insn_code clrstr_optab [NUM_MACHINE_MODES]


Define Documentation

#define CASE_VALUES_THRESHOLD   (HAVE_casesi ? 4 : 5)

Definition at line 11167 of file expr.c.

#define CASE_VECTOR_PC_RELATIVE   0

Definition at line 87 of file expr.c.

#define CLEAR_BY_PIECES_P ( SIZE,
ALIGN   )     (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) CLEAR_RATIO)

Definition at line 239 of file expr.c.

Referenced by clear_storage().

#define CLEAR_RATIO   (optimize_size ? 3 : 15)

Definition at line 232 of file expr.c.

Referenced by gimplify_init_constructor().

#define CODE_FOR_casesi   CODE_FOR_nothing

Definition at line 11160 of file expr.c.

Referenced by try_casesi().

#define gen_casesi ( a,
b,
c,
d,
 )     (0)

Definition at line 11159 of file expr.c.

Referenced by try_casesi().

#define gen_tablejump ( x,
 )     (0)

Definition at line 11255 of file expr.c.

Referenced by do_tablejump().

#define HAVE_casesi   0

Definition at line 11158 of file expr.c.

Referenced by expand_case(), and try_casesi().

#define HAVE_tablejump   0

Definition at line 11254 of file expr.c.

Referenced by expand_case(), and try_tablejump().

#define MOVE_BY_PIECES_P ( SIZE,
ALIGN   )     (move_by_pieces_ninsns (SIZE, ALIGN) < (unsigned int) MOVE_RATIO)

Definition at line 220 of file expr.c.

#define MOVE_MAX_PIECES   MOVE_MAX

Definition at line 1462 of file expr.c.

#define MOVE_RATIO   (optimize_size ? 3 : 15)

Definition at line 213 of file expr.c.

#define SLOW_UNALIGNED_ACCESS ( MODE,
ALIGN   )     STRICT_ALIGNMENT

Definition at line 252 of file expr.c.

#define STACK_PUSH_CODE   PRE_INC

Definition at line 81 of file expr.c.

#define STORE_MAX_PIECES   MIN (MOVE_MAX_PIECES, 2 * sizeof (HOST_WIDE_INT))

Definition at line 1470 of file expr.c.

Referenced by can_store_by_pieces(), and store_by_pieces_1().

#define TARGET_MEM_FUNCTIONS   0

Definition at line 95 of file expr.c.


Function Documentation

static bool block_move_libcall_safe_for_call_parm ( void   )  [static]

int can_move_by_pieces ( unsigned HOST_WIDE_INT  len,
unsigned int align   
)

Definition at line 1477 of file expr.c.

References MOVE_BY_PIECES_P.

Referenced by expand_block_move(), expand_builtin_mempcpy(), and gimplify_init_constructor().

int can_store_by_pieces ( unsigned HOST_WIDE_INT  len,
rtx constfun,
PTR  constfundata,
unsigned int  align 
)

unsigned int case_values_threshold ( void   ) 

Definition at line 11171 of file expr.c.

Referenced by expand_case(), and expand_end_case_type().

static void clear_by_pieces ( rtx  to,
unsigned HOST_WIDE_INT  len,
unsigned int  align 
) [static]

static rtx clear_by_pieces_1 ( data  ,
offset  ,
mode   
) [static]

Definition at line 2903 of file expr.c.

References const0_rtx.

Referenced by clear_by_pieces().

void clear_pending_stack_adjust ( void   ) 

rtx clear_storage ( rtx  object,
rtx  size 
)

static tree clear_storage_libcall_fn ( int  for_call  )  [static]

Definition at line 3257 of file expr.c.

References assemble_external(), init_block_clear_fn(), make_decl_rtl(), and NULL.

Referenced by clear_storage_via_libcall().

static bool clear_storage_via_clrstr ( rtx  object,
rtx  size,
unsigned int  align 
) [static]

static rtx clear_storage_via_libcall ( rtx  object,
rtx  size 
) [static]

rtx compare_from_rtx ( rtx  op0,
rtx  op1,
enum rtx_code  code,
int  unsignedp,
enum machine_mode  mode,
rtx  size 
)

Definition at line 10607 of file expr.c.

Referenced by do_store_flag(), emit_conditional_add(), and emit_store_flag().

static rtx compress_float_constant ( rtx  x,
rtx  y 
) [static]

static rtx const_vector_from_tree ( tree  exp  )  [static]

rtx convert_modes ( enum machine_mode  mode,
enum machine_mode  oldmode,
rtx  x,
int  unsignedp 
)

void convert_move ( rtx  to,
rtx  from,
int  unsignedp 
)

rtx convert_to_mode ( enum machine_mode  mode,
rtx  x,
int  unsignedp 
)

rtx copy_blkmode_from_reg ( rtx  tgtblk,
rtx  srcreg,
tree  type 
)

Definition at line 2601 of file expr.c.

Referenced by expand_call(), and expand_inline_function().

static void do_compare_and_jump ( tree  exp,
enum rtx_code  signed_code,
enum rtx_code  unsigned_code,
rtx  if_false_label,
rtx  if_true_label 
) [static]

void do_compare_rtx_and_jump ( rtx  op0,
rtx  op1,
enum rtx_code  code,
int  unsignedp,
enum machine_mode  mode,
rtx  size,
rtx  if_false_label,
rtx  if_true_label 
)

void do_jump ( tree  exp,
rtx  if_false_label,
rtx  if_true_label 
)

static void do_jump_by_parts_equality ( tree  exp,
rtx  if_false_label,
rtx  if_true_label 
) [static]

void do_jump_by_parts_equality_rtx ( rtx  op0,
rtx  if_false_label,
rtx  if_true_label 
)

static void do_jump_by_parts_greater ( tree  exp,
int  swap,
rtx  if_false_label,
rtx  if_true_label 
) [static]

Definition at line 10448 of file expr.c.

References do_jump_by_parts_greater_rtx(), expand_expr(), NULL_RTX, TREE_OPERAND, TREE_TYPE, TREE_UNSIGNED, and TYPE_MODE.

Referenced by do_jump().

void do_jump_by_parts_greater_rtx ( enum machine_mode  mode,
int  unsignedp,
rtx  op0,
rtx  op1,
rtx  if_false_label,
rtx  if_true_label 
)

void do_pending_stack_adjust ( void   ) 

static rtx do_store_flag ( tree  exp,
rtx  target,
enum machine_mode  mode,
int  only_cheap 
) [static]

static void do_tablejump ( rtx  index,
enum machine_mode  mode,
rtx  range,
rtx  table_label,
rtx  default_label 
) [static]

rtx emit_block_move ( rtx  x,
rtx  y,
rtx  size,
enum block_op_methods  method 
)

static tree emit_block_move_libcall_fn ( int  for_call  )  [static]

static rtx emit_block_move_via_libcall ( rtx  dst,
rtx  src,
rtx  size 
) [static]

static void emit_block_move_via_loop ( rtx  x,
rtx  y,
rtx  size,
align   
) [static]

static bool emit_block_move_via_movstr ( rtx  x,
rtx  y,
rtx  size,
unsigned int  align 
) [static]

void emit_group_load ( rtx  dst,
rtx  orig_src,
int  ssize 
)

void emit_group_move ( rtx  dst,
rtx  src 
)

Definition at line 2453 of file expr.c.

Referenced by load_register_parameters().

void emit_group_store ( rtx  orig_dst,
rtx  src,
int  ssize 
)

rtx emit_move_insn ( rtx  x,
rtx  y 
)

Definition at line 3283 of file expr.c.

Referenced by add_to_sp(), adjust_stack(), allocate_dynamic_stack_space(), alpha_emit_conditional_branch(), alpha_emit_conditional_move(), alpha_emit_set_long_const(), alpha_emit_xfloating_libcall(), alpha_expand_block_clear(), alpha_expand_block_move(), alpha_expand_compare_and_swap_12(), alpha_expand_epilogue(), alpha_expand_lock_test_and_set_12(), alpha_expand_mov(), alpha_expand_mov_nobwx(), alpha_expand_movmisalign(), alpha_expand_prologue(), alpha_expand_unaligned_load(), alpha_expand_unaligned_load_words(), alpha_expand_unaligned_store(), alpha_expand_unaligned_store_words(), alpha_gp_save_rtx(), alpha_initialize_trampoline(), alpha_setup_incoming_varargs(), alpha_split_compare_and_swap(), alpha_split_const_mov(), alpha_split_lock_test_and_set(), alpha_split_tfmode_frobsign(), anti_adjust_stack(), arm_gen_load_multiple(), arm_gen_movmemqi(), arm_gen_movstrqi(), arm_gen_store_multiple(), arm_legitimize_address(), arm_load_tp(), arm_set_return_address(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), assign_parms_unsplit_complex(), bfin_expand_builtin(), bfin_expand_prologue(), build_mips16_call_stub(), c4x_expand_builtin(), c4x_legitimize_address(), clear_storage(), clipper_builtin_saveregs(), clipper_va_arg(), combine_var_copies_in_loop_exit(), convert_move(), copy_insn_list(), copy_src_to_dest(), copy_to_mode_reg(), copy_to_reg(), copy_to_suggested_reg(), cris_expand_epilogue(), cris_expand_pic_call_address(), cris_expand_prologue(), crx_expand_epilogue(), crx_expand_movmem_single(), crx_expand_prologue(), crx_expand_scond(), d30v_expand_builtin_va_arg(), d30v_expand_epilogue(), d30v_expand_prologue(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_zero_rtx(), do_movsi(), do_store_flag(), do_unlink(), dw2_build_landing_pads(), emit_0_to_1_insn(), emit_add(), emit_block_move_via_loop(), emit_clr_insn(), emit_frame_save(), emit_frame_store_1(), emit_group_load(), emit_group_load_1(), emit_group_move(), emit_group_store(), emit_hard_tfmode_operation(), emit_hpdiv_const(), emit_i387_cw_initialization(), emit_initial_value_sets(), emit_ldst(), emit_libcall_block(), emit_library_call_value_1(), emit_load_ptr(), emit_move_after_reload(), emit_move_complex_push(), emit_move_insn_1(), emit_move_multi_word(), emit_move_resolve_push(), emit_move_sequence(), emit_no_conflict_block(), emit_push_insn(), emit_restore_regs(), emit_save_or_restore_regs(), emit_save_regs(), emit_soft_tfmode_libcall(), emit_stack_probe(), emit_store_flag(), emit_store_flag_force(), emit_unop_insn(), emit_unrolled_add(), ephi_backward(), ephi_create(), expand_a_rotate(), expand_a_shift(), expand_abs(), expand_absneg_bit(), expand_and(), expand_ashiftrt(), expand_asm_operands(), expand_assignment(), expand_binop(), expand_block_clear(), expand_block_move(), expand_bool_compare_and_swap(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_eh_return(), expand_builtin_lock_release(), expand_builtin_longjmp(), expand_builtin_mathfn(), expand_builtin_nonlocal_goto(), expand_builtin_return(), expand_builtin_setjmp(), expand_builtin_setjmp_receiver(), expand_builtin_setjmp_setup(), expand_builtin_sincos(), expand_builtin_stpcpy(), expand_builtin_strlen(), expand_call(), expand_cmplxdiv_straight(), expand_cmplxdiv_wide(), expand_compare_and_swap_loop(), expand_computed_goto(), expand_copysign_absneg(), expand_copysign_bit(), expand_dec(), expand_decl(), expand_decl_cleanup(), expand_divmod(), expand_doubleword_mult(), expand_eh_region_end_cleanup(), expand_eh_return(), expand_epilogue(), expand_errno_check(), expand_expr(), expand_expr_real_1(), expand_fix(), expand_float(), expand_function_start(), expand_goto(), expand_inc(), expand_increment(), expand_inline_function(), expand_interrupt_handler_epilogue(), expand_interrupt_handler_prologue(), expand_main_function(), expand_movstr(), expand_nl_goto_receiver(), expand_nl_goto_receivers(), expand_nl_handler_label(), expand_powi_1(), expand_prologue(), expand_return(), expand_smod_pow2(), expand_superword_shift(), expand_sync_fetch_operation(), expand_unop(), expand_value_return(), expand_vector_binop(), expand_vector_unop(), extract_bit_field(), extract_force_align_mem_bit_field(), fix_crossing_unconditional_branches(), force_expand_binop(), force_not_mem(), force_operand(), force_reg(), frame_related_constant_load(), frv_emit_movsi(), frv_expand_builtin(), frv_expand_epilogue(), frv_expand_mdpackh_builtin(), frv_split_cond_move(), frv_split_double_load(), frv_split_double_store(), frv_split_iacc_move(), frv_split_minmax(), frv_split_scc(), function_symbol(), gen_absdf2(), gen_abssf2(), gen_add_mult(), gen_adddi3(), gen_addsi3(), gen_allocate_stack(), gen_ashrsi3(), gen_builtin_longjmp(), gen_cmpstrsi(), gen_divmod_fixed_value(), gen_divsi3(), gen_edge_profiler(), gen_eh_epilogue(), gen_eh_return(), gen_ffssi2(), gen_fix_truncdfdi2(), gen_fix_truncdfsi2(), gen_fix_truncsfdi2(), gen_fix_truncsfsi2(), gen_fixuns_truncdfdi2(), gen_fixuns_truncdfsi2(), gen_fixuns_truncsfdi2(), gen_fixuns_truncsfsi2(), gen_frame_mem_offset(), gen_int_relational(), gen_load_of_final_value(), gen_lshrsi3(), gen_mod_pow2(), gen_mod_subtract(), gen_movdi(), gen_movhi(), gen_movqi(), gen_movsi(), gen_movtf(), gen_negdf2(), gen_negsf2(), gen_reload_indi(), gen_reload_insi(), gen_reload_outdi(), gen_reload_outsi(), gen_split_1095(), gen_split_1096(), gen_split_1202(), gen_split_1204(), gen_split_1297(), gen_split_1444(), gen_sse_movaps(), gen_sse_movups(), gen_tablejump_mips161(), gen_tablejump_mips162(), gen_udivsi3(), gen_untyped_call(), gen_v9_scc(), gen_x86_shift_adj_2(), gen_x86_shift_adj_3(), get_arg_pointer_save_area(), get_thread_pointer(), h8300_expand_movsi(), h8300_expand_prologue(), h8300_swap_into_er6(), h8300_swap_out_of_er6(), h8sx_emit_movmd(), hppa_builtin_saveregs(), hppa_expand_epilogue(), hppa_expand_prologue(), hppa_profile_hook(), i860_saveregs(), i860_va_arg(), ia64_emit_cond_move(), ia64_expand_atomic_op(), ia64_expand_compare_and_swap(), ia64_expand_epilogue(), ia64_expand_fetch_and_op(), ia64_expand_load_address(), ia64_expand_lock_release(), ia64_expand_movxf_movrf(), ia64_expand_op_and_fetch(), ia64_expand_prologue(), ia64_expand_vecint_cmov(), ia64_initialize_trampoline(), ia64_output_mi_thunk(), ia64_reload_gp(), ia64_split_call(), ia64_split_return_addr_rtx(), init_set_costs(), initialize_trampoline(), initialize_uninitialized_subregs(), insert_base_initialization(), insert_var_expansion_initialization(), instantiate_virtual_regs_in_insn(), iq2000_add_large_offset_to_sp(), iq2000_emit_frame_related_store(), iq2000_expand_eh_return(), iq2000_expand_epilogue(), iq2000_expand_prologue(), iv_add_mult_cost(), ix86_emit_i387_log1p(), ix86_emit_restore_regs_using_mov(), ix86_emit_save_regs_using_mov(), ix86_expand_binary_operator(), ix86_expand_builtin(), ix86_expand_call(), ix86_expand_epilogue(), ix86_expand_fp_absneg_operator(), ix86_expand_fp_movcc(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_expand_prologue(), ix86_expand_push(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_strlen(), ix86_expand_strlensi_unroll_1(), ix86_expand_unary_operator(), ix86_expand_vec_set_builtin(), ix86_expand_vector_extract(), ix86_expand_vector_init(), ix86_expand_vector_init_duplicate(), ix86_expand_vector_init_general(), ix86_expand_vector_init_low_nonzero(), ix86_expand_vector_init_one_nonzero(), ix86_expand_vector_init_one_var(), ix86_expand_vector_move(), ix86_expand_vector_move_misalign(), ix86_expand_vector_set(), ix86_force_to_memory(), ix86_setup_incoming_varargs(), ix86_split_ashl(), ix86_split_ashldi(), ix86_split_ashr(), ix86_split_ashrdi(), ix86_split_copysign_var(), ix86_split_long_move(), ix86_split_lshr(), ix86_split_lshrdi(), ix86_split_sse_movcc(), ix86_va_arg(), java_stack_dup(), java_stack_swap(), legitimize_address(), legitimize_operands(), legitimize_pic_address(), legitimize_tls_address(), load_reg(), load_register_parameters(), load_tls_operand(), m32c_emit_epilogue(), m32c_expand_insv(), m32c_expand_movcc(), m32c_initialize_trampoline(), m32c_prepare_shift(), m32c_split_move(), m32r_expand_block_move(), m32r_legitimize_pic_address(), m68hc11_emit_logical(), m68hc11_initialize_trampoline(), m68hc11_reload_operands(), m68hc11_split_move(), m88k_expand_prologue(), machopic_indirect_data_reference(), machopic_legitimize_pic_address(), make_safe_from(), mds_movdi(), mdx_block_move_straight(), mdx_epilogue(), mdx_prologue(), mips16_gp_pseudo_reg(), mips_add_large_offset_to_sp(), mips_block_move_loop(), mips_block_move_straight(), mips_builtin_branch_and_move(), mips_emit_fcc_reload(), mips_emit_frame_related_store(), mips_expand_builtin_compare(), mips_expand_epilogue(), mips_expand_prologue(), mips_force_temporary(), mips_legitimize_const_move(), mips_legitimize_move(), mips_load_call_address(), mips_move_integer(), mips_output_mi_thunk(), mips_restore_gp(), mips_restore_reg(), mips_save_reg(), mips_set_return_address(), mips_setup_incoming_varargs(), mips_split_64bit_move(), mips_va_arg(), mmix_emit_sp_add(), mmix_expand_epilogue(), mmix_expand_prologue(), mmix_initialize_trampoline(), mn10300_builtin_saveregs(), move_block_from_reg(), move_block_to_reg(), move_invariant_reg(), move_movables(), move_tail(), mt_emit_save_restore(), mt_expand_eh_return(), mt_expand_epilogue(), mt_expand_prologue(), mt_setup_incoming_varargs(), noce_emit_move_insn(), optimize_bitfield_assignment_op(), output_stack_adjust(), pj_expand_epilogue(), pj_expand_prologue(), prepare_call_address(), prepare_move_operands(), process_insert_insn(), ra_emit_move_insn(), restore_fpr(), return_addr_rtx(), romp_initialize_trampoline(), rs6000_aix_emit_builtin_unwind_init(), rs6000_emit_allocate_stack(), rs6000_emit_eh_reg_restore(), rs6000_emit_epilogue(), rs6000_emit_load_toc_table(), rs6000_emit_minmax(), rs6000_emit_move(), rs6000_emit_prologue(), rs6000_emit_set_long_const(), rs6000_emit_sync(), rs6000_emit_vector_select(), rs6000_expand_compare_and_swapqhi(), rs6000_expand_vector_extract(), rs6000_expand_vector_init(), rs6000_expand_vector_set(), rs6000_initialize_trampoline(), rs6000_legitimize_tls_address(), rs6000_move_block_from_reg(), rs6000_output_mi_thunk(), rs6000_split_compare_and_swap(), rs6000_split_lock_test_and_set(), rs6000_va_arg(), rtl_gen_const_delta_profiler(), rtl_gen_edge_profiler(), rtl_gen_interval_profiler(), rtl_gen_one_value_profiler_no_edge_manipulation(), rtl_gen_pow2_profiler(), s390_emit_call(), s390_emit_epilogue(), s390_emit_prologue(), s390_expand_atomic(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_cs_hqi(), s390_expand_insv(), s390_expand_logical_operator(), s390_expand_movmem(), s390_expand_plus_operand(), s390_expand_setmem(), s390_get_thread_pointer(), s390_initialize_trampoline(), s390_load_address(), s390_va_arg(), safe_insert_insn_on_edge(), save_fpr(), save_or_restore_regs(), save_restore_insns(), score_force_temporary(), score_initialize_trampoline(), see_def_extension_not_merged(), see_merge_one_def_extension(), set_reg_plus_d(), setup_incoming_varargs(), sh_builtin_saveregs(), sh_expand_epilogue(), sh_expand_prologue(), sh_expand_t_scc(), sh_initialize_trampoline(), sh_output_mi_thunk(), sh_va_arg(), single_move_for_movmem(), single_move_for_strmov(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_mark_call_sites(), sparc64_initialize_trampoline(), sparc_builtin_saveregs(), sparc_emit_fixunsdi(), sparc_emit_float_lib_cmp(), sparc_expand_compare_and_swap_12(), sparc_expand_epilogue(), sparc_expand_prologue(), sparc_initialize_trampoline(), sparc_output_mi_thunk(), sparc_struct_value_rtx(), sparc_tls_got(), spe_expand_predicate_builtin(), spill_restore_mem(), spill_xfmode_operand(), spill_xfmode_rfmode_operand(), split_iv(), stack_protect_prologue(), store_bit_field(), store_constructor(), store_expr(), store_field(), store_fixed_bit_field(), store_one_arg(), store_reg(), store_unaligned_arguments_into_pseudos(), tail_recursion_args(), th_output_mi_thunk(), thumb_expand_prologue(), thumb_set_return_address(), unroll_loop_runtime_iterations(), widen_operand(), write_complex_part(), x86_initialize_trampoline(), xstormy16_emit_cbranch(), xstormy16_expand_andqi3(), xstormy16_expand_arith(), xstormy16_expand_builtin(), xstormy16_expand_builtin_va_arg(), xstormy16_expand_call(), xstormy16_expand_epilogue(), xstormy16_expand_iorqi3(), xstormy16_expand_prologue(), xstormy16_initialize_trampoline(), xtensa_builtin_saveregs(), xtensa_emit_move_sequence(), xtensa_expand_prologue(), xtensa_load_constant(), xtensa_return_addr(), and xtensa_va_arg().

rtx emit_move_insn_1 ( rtx  x,
rtx  y 
)

Definition at line 3352 of file expr.c.

Referenced by emit_move_insn(), emit_move_insn_1(), and gen_move_insn().

void emit_push_insn ( rtx  x,
enum machine_mode  mode,
tree  type,
rtx  size,
unsigned int  align,
int  partial,
rtx  reg,
int  extra,
rtx  args_addr,
rtx  args_so_far,
int  reg_parm_stack_space,
rtx  alignment_pad 
)

Definition at line 3849 of file expr.c.

Referenced by emit_library_call_value_1(), emit_push_insn(), and store_one_arg().

void emit_queue (  ) 

static rtx enqueue_insn ( rtx  var,
rtx  body 
) [static]

Definition at line 385 of file expr.c.

References gen_rtx_QUEUED, GET_MODE, NULL_RTX, and pending_chain.

Referenced by expand_increment().

rtx expand_assignment ( tree  to,
tree  from,
int  want_value,
suggest_reg   
)

rtx expand_expr ( tree  exp,
rtx  target,
enum machine_mode  tmode,
enum expand_modifier  modifier 
)

Definition at line 6625 of file expr.c.

References abort, add_optab, addr(), ADDRESSOF, addv_optab, adjust_address, adjust_address_nv, and_optab, arg_pointer_rtx, assemble_external(), assign_stack_temp_for_type(), assign_temp(), before, BIGGEST_ALIGNMENT, binary_op, bitpos(), BITS_PER_UNIT, BLOCK_OP_CALL_PARM, BLOCK_OP_NORMAL, BRANCH_COST, build(), build1, build_int_2, build_qualified_type(), build_real(), BUILT_IN_FRONTEND, byte_mode, BYTES_BIG_ENDIAN, can_compare_p(), ccp_jump, cfun, cleanup(), CLEANUP_EH_ONLY, CODE_FOR_nothing, compare_tree_int(), COMPLETE_OR_UNBOUND_ARRAY_TYPE_P, CONCAT, cond, CONST0_RTX, const0_rtx, const1_rtx, CONST_DOUBLE_FROM_REAL_VALUE, const_vector_from_tree(), CONSTANT_P, CONSTRUCTOR_ELTS, convert(), convert_memory_address(), convert_modes(), convert_move(), convert_to_mode(), copy_rtx(), copy_to_mode_reg(), copy_to_reg(), count, cse_not_expected, current_function_decl, dconst1, DECL_ALIGN, DECL_BIT_FIELD, DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_EXTERNAL, decl_function_context(), DECL_INITIAL, DECL_MODE, DECL_NO_STATIC_CHAIN, DECL_NONLOCAL, DECL_RTL, DECL_RTL_SET_P, DECL_SIZE, direct_load, do_compare_rtx_and_jump(), do_jump(), do_jump_by_parts_greater_rtx(), do_pending_stack_adjust(), do_store_flag(), eliminate_constant_term(), emit_0_to_1_insn(), emit_barrier(), emit_block_move(), emit_clr_insn(), emit_cmp_and_jump_insns(), emit_group_store(), emit_indirect_jump(), emit_insn(), emit_jump(), emit_jump_insn(), emit_label(), emit_line_note(), emit_move_insn(), emit_no_conflict_block(), emit_queue(), end_cleanup_deferral(), end_sequence(), EQ, error(), error_mark_node, exact_log2, EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, expand_abs(), expand_and(), expand_assignment(), expand_binop(), expand_builtin(), expand_builtin_va_arg(), expand_call(), expand_complex_abs(), expand_computed_goto(), EXPAND_CONST_ADDRESS, expand_decl(), expand_decl_cleanup(), expand_decl_cleanup_eh(), expand_decl_init(), expand_divmod(), expand_eh_region_end_cleanup(), expand_eh_region_start(), expand_end_bindings(), expand_end_loop(), expand_exit_loop_if_false(), expand_expr_stmt_value(), expand_fix(), expand_float(), expand_goto(), expand_increment(), EXPAND_INITIALIZER, EXPAND_MEMORY, expand_mult(), expand_mult_highpart_adjust(), EXPAND_NORMAL, expand_null_return(), expand_return(), expand_shift(), EXPAND_STACK_PARM, expand_start_bindings, expand_start_loop(), EXPAND_SUM, expand_unop(), EXPAND_WRITE, expr_size(), EXPR_WFL_EMIT_LINE_NOTE, EXPR_WFL_FILENAME, EXPR_WFL_LINENO, EXPR_WFL_NODE, extract_bit_field(), ffs_optab, find_function_data(), find_placeholder(), FIRST_PSEUDO_REGISTER, fix_lexical_addr(), flag_force_addr, flag_trapv, flag_unsafe_math_optimizations, fold(), force_const_mem(), force_not_mem(), force_operand(), force_reg(), forced_labels, frame_pointer_rtx, free_temps_for_rtl_expr(), function, FUNCTION_MODE, GE, gen_highpart(), gen_imagpart(), GEN_INT, gen_int_mode(), gen_jump(), gen_label_rtx(), gen_lowpart, gen_lowpart_SUBREG(), gen_realpart(), gen_reg_rtx(), gen_rtx_EXPR_LIST, gen_rtx_fmt_e(), gen_rtx_LABEL_REF, gen_rtx_MEM(), gen_rtx_MINUS, gen_rtx_MULT, gen_rtx_PLUS, GET_CODE, get_exception_pointer(), get_inner_reference(), get_insns(), get_last_insn(), GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_WIDER_MODE, get_subtarget(), GT, handler(), HAVE_conditional_move, highest_pow2_factor(), HOST_BITS_PER_INT, HOST_BITS_PER_WIDE_INT, host_integerp(), i, immed_double_const(), index(), inline_function_decl, input_filename, insn, INSN_P, insns, int_expr_size(), int_fits_type_p(), int_size_in_bytes(), integer_one_node, integer_onep(), integer_pow2p(), integer_zero_node, integer_zerop(), internal_error(), INTVAL, invert_truthvalue(), ior_optab, is_aligning_offset(), is_zeros_p(), jumpif(), jumpifnot(), LABEL_REF_NONLOCAL_P, label_rtx(), LABELED_BLOCK_BODY, LABELED_BLOCK_LABEL, layout_decl(), LE, LEGITIMATE_CONSTANT_P, lineno, list_length(), LT, make_tree(), mark_reg_pointer(), mark_temp_addr_taken(), MAX, MEM, MEM_ALIGN, MEM_SIZE, MEM_VOLATILE_P, memory_address(), memory_address_p(), MIN, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, mode_for_size(), MODE_INT, mostly_zeros_p(), MOVE_BY_PIECES_P, neg_optab, negate_rtx(), negv_optab, NO_DEFER_POP, NULL, NULL_RTX, NULL_TREE, store_by_pieces::offset, offset_address(), OK_DEFER_POP, one_cmpl_optab, operand_equal_p(), optab, OPTAB_LIB_WIDEN, OPTAB_WIDEN, optimize, optimize_size, output_constant_def(), p, placeholder_list, PLUS, plus_constant, Pmode, pop_temp_slots(), preserve_rtl_expr_result(), preserve_temp_slots(), prev_nonnote_insn(), promote_mode(), protect_from_queue(), ptr_mode, push_temp_slots(), PUT_MODE, put_var_into_stack(), readonly_fields_p(), real_onep(), really_constant_p(), REG, REG_NOTES, REG_P, REG_USERVAR_P, REG_VTABLE_REF, REGNO, replace_equiv_address(), result, RTL_EXPR_RTL, RTL_EXPR_SEQUENCE, RTX_UNCHANGING_P, safe_from_p(), SAVE_EXPR_CONTEXT, save_expr_regs, SAVE_EXPR_RTL, sdiv_optab, SET_DECL_RTL, set_mem_align(), set_mem_attributes(), SIGN_EXTEND, simplify_binary_operation(), simplify_gen_subreg(), size_diffop(), size_int, sizetype, SLOW_UNALIGNED_ACCESS, smax_optab, smin_optab, smul_widen_optab, sorry(), stack_pointer_rtx, start_cleanup_deferral(), start_sequence(), store_constructor(), store_expr(), store_field(), STRICT_ALIGNMENT, string_constant(), sub_optab, subreg_lowpart_offset(), SUBREG_PROMOTED_UNSIGNED_SET, SUBREG_PROMOTED_VAR_P, subv_optab, t1, target_temp_slot_level, temp_slot_level, trampoline_address(), TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, tree_cons, TREE_CONSTANT, TREE_CONSTANT_OVERFLOW, TREE_CST_RTL, tree_int_cst_equal(), TREE_INT_CST_HIGH, TREE_INT_CST_LOW, tree_int_cst_lt(), tree_log2(), tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_REAL_CST, TREE_SIDE_EFFECTS, TREE_STATIC, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_THIS_VOLATILE, TREE_TYPE, TREE_UNSIGNED, TREE_USED, TREE_VALUE, TYPE_ALIGN, TYPE_ALIGN_OK, TYPE_DOMAIN, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_QUALS, TYPE_SIZE, TYPE_SIZE_UNIT, TYPE_TRAP_SIGNED, umax_optab, umin_optab, umul_widen_optab, unary_op, UNITS_PER_WORD, unsafe_for_reeval(), validize_mem(), var_rtx(), vars, void_type_node, WITH_CLEANUP_EXPR_RTL, word_mode, XEXP, and xor_optab.

Referenced by addr_for_mem_ref(), alpha_expand_builtin(), alpha_va_arg(), alpha_va_start(), altivec_expand_abs_builtin(), altivec_expand_binop_builtin(), altivec_expand_builtin(), altivec_expand_dst_builtin(), altivec_expand_ld_builtin(), altivec_expand_lv_builtin(), altivec_expand_predicate_builtin(), altivec_expand_st_builtin(), altivec_expand_stv_builtin(), altivec_expand_ternop_builtin(), altivec_expand_unop_builtin(), altivec_expand_vec_set_builtin(), arc_va_arg(), arm_expand_binop_builtin(), arm_expand_builtin(), arm_expand_unop_builtin(), assign_parms(), bfin_expand_binop_builtin(), bfin_expand_builtin(), bfin_expand_unop_builtin(), c4x_expand_builtin(), c4x_va_arg(), c_expand_asm_operands(), c_expand_builtin_fprintf(), c_expand_builtin_printf(), c_expand_expr(), clear_storage_via_libcall(), clipper_va_arg(), clipper_va_start(), computation_cost(), cris_expand_builtin_va_arg(), cxx_expand_expr(), d30v_expand_builtin_va_arg(), d30v_expand_builtin_va_start(), do_compare_and_jump(), do_jump(), do_jump_by_parts_equality(), do_jump_by_parts_greater(), do_store_flag(), emit_block_move_via_libcall(), emit_case_bit_tests(), emit_case_nodes(), emit_library_call_value_1(), expand_asm_operands(), expand_assignment(), expand_builtin(), expand_builtin_adjust_trampoline(), expand_builtin_alloca(), expand_builtin_args_info(), expand_builtin_compare_and_swap(), expand_builtin_constant_p(), expand_builtin_copysign(), expand_builtin_eh_return(), expand_builtin_expect(), expand_builtin_extend_pointer(), expand_builtin_extract_return_addr(), expand_builtin_fabs(), expand_builtin_ffs(), expand_builtin_fprintf(), expand_builtin_fputs(), expand_builtin_frob_return_addr(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn(), expand_builtin_lock_test_and_set(), expand_builtin_mathfn(), expand_builtin_mathfn_2(), expand_builtin_mathfn_3(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memmove(), expand_builtin_memory_chk(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_nonlocal_goto(), expand_builtin_pow(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_printf(), expand_builtin_setjmp(), expand_builtin_signbit(), expand_builtin_sprintf(), expand_builtin_stpcpy(), expand_builtin_strcat(), expand_builtin_strchr(), expand_builtin_strcmp(), expand_builtin_strcpy(), expand_builtin_strcspn(), expand_builtin_strlen(), expand_builtin_strncat(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_builtin_strpbrk(), expand_builtin_strrchr(), expand_builtin_strspn(), expand_builtin_strstr(), expand_builtin_sync_operation(), expand_builtin_unop(), expand_builtin_va_copy(), expand_builtin_va_end(), expand_call(), expand_case(), expand_cleanups(), expand_computed_goto(), expand_decl(), expand_eh_region_end_allowed(), expand_eh_region_end_cleanup(), expand_eh_region_end_must_not_throw(), expand_end_case_type(), expand_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_expr_stmt(), expand_expr_stmt_value(), expand_function_start(), expand_gimple_cond_expr(), expand_increment(), expand_inline_function(), expand_mult_add(), expand_one_builtin(), expand_operands(), expand_pending_sizes(), expand_return(), expand_shift(), expand_vec_cond_expr(), expand_vec_shift_expr(), expr_size(), fix_unsafe_tree(), fr30_pass_by_reference(), fr30_pass_by_value(), frv_expand_builtin_va_start(), frv_read_argument(), get_builtin_sync_mem(), get_memory_rtx(), hppa_va_arg(), i860_va_arg(), i860_va_start(), i960_va_arg(), i960_va_start(), ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_lock_release(), ia64_expand_lock_test_and_set(), ia64_expand_op_and_fetch(), ia64_va_arg(), ix86_expand_binop_builtin(), ix86_expand_builtin(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_store_builtin(), ix86_expand_unop1_builtin(), ix86_expand_unop_builtin(), ix86_expand_vec_ext_builtin(), ix86_expand_vec_init_builtin(), ix86_expand_vec_set_builtin(), ix86_va_arg(), ix86_va_start(), java_lang_expand_expr(), m32r_va_arg(), m68hc11_expand_builtin_va_start(), m68hc11_va_arg(), m88k_va_arg(), m88k_va_start(), mips_prepare_builtin_arg(), mips_va_arg(), mips_va_start(), mmix_expand_builtin_va_arg(), mn10200_va_arg(), mn10300_va_arg(), optimize_bitfield_assignment_op(), output_constant(), output_function_exception_table(), output_ttype(), pj_expand_builtin_va_arg(), precompute_arguments(), precompute_register_parameters(), read_complex_part(), reduce_to_bit_field_precision(), rs6000_expand_binop_builtin(), rs6000_expand_builtin(), rs6000_expand_ternop_builtin(), rs6000_expand_unop_builtin(), rs6000_va_arg(), rs6000_va_start(), rtx_for_function_call(), s390_expand_builtin(), s390_va_arg(), s390_va_start(), sh_expand_builtin(), sh_va_arg(), sh_va_start(), sparc_expand_builtin(), sparc_va_arg(), spe_expand_builtin(), spe_expand_evsel_builtin(), spe_expand_predicate_builtin(), spe_expand_stv_builtin(), std_expand_builtin_va_arg(), std_expand_builtin_va_start(), store_constructor(), store_expr(), store_field(), store_one_arg(), tail_recursion_args(), try_casesi(), try_tablejump(), update_nonlocal_goto_save_area(), v850_va_arg(), variable_size(), vector_compare_rtx(), xstormy16_expand_builtin(), xstormy16_expand_builtin_va_arg(), xstormy16_expand_builtin_va_start(), xtensa_va_arg(), and xtensa_va_start().

static rtx expand_increment ( tree  exp,
int  post,
int  ignore 
) [static]

tree find_placeholder ( tree  exp,
tree plist 
)

void finish_expr_for_function (  ) 

Definition at line 368 of file expr.c.

References abort, and pending_chain.

rtx force_operand ( rtx  value,
rtx  target 
)

Definition at line 5986 of file expr.c.

Referenced by add_cost(), allocate_dynamic_stack_space(), alpha_initialize_trampoline(), arm_legitimize_address(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), copy_insn_list(), copy_rtx_and_substitute(), copy_to_mode_reg(), copy_to_reg(), emit_block_move_via_loop(), emit_library_call_value_1(), emit_move_sequence(), expand_builtin_apply_args_1(), expand_builtin_memcpy(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_setjmp_setup(), expand_builtin_stpcpy(), expand_builtin_strncpy(), expand_call(), expand_decl(), expand_divmod(), expand_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_inline_function(), expand_movstr(), expand_mult(), expand_mult_const(), expand_mult_highpart(), expand_mult_highpart_adjust(), extract_force_align_mem_bit_field(), fixup_var_refs_1(), force_into(), force_operand(), force_reg(), gen_divmod_fixed_value(), gen_load_of_final_value(), gen_mod_pow2(), gen_mod_subtract(), hppa_legitimize_address(), insert_base_initialization(), insn_divmod_values_to_profile(), instantiate_virtual_regs_1(), instantiate_virtual_regs_in_insn(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_va_arg(), legitimize_address(), legitimize_pic_address(), legitimize_tls_address(), memory_address(), move_invariant_reg(), probe_stack_range(), purge_addressof_1(), rs6000_emit_move(), rs6000_legitimize_address(), rtl_lv_add_condition_to_bb(), s390_expand_clrmem(), s390_expand_cmpmem(), s390_expand_movmem(), s390_expand_setmem(), sh_initialize_trampoline(), sparc_expand_move(), split_iv(), store_expr(), thumb_legitimize_address(), unroll_loop(), and unroll_loop_runtime_iterations().

rtx gen_group_rtx ( rtx  orig  ) 

Definition at line 2299 of file expr.c.

Referenced by expand_function_start().

tree get_inner_reference ( tree  exp,
HOST_WIDE_INT *  pbitsize,
HOST_WIDE_INT *  pbitpos,
tree poffset,
enum machine_mode pmode,
int *  punsignedp,
int *  pvolatilep 
)

static rtx get_subtarget ( rtx  x  )  [static]

static GTY ( ()   )  [static]

int handled_component_p ( tree  t  ) 

static HOST_WIDE_INT highest_pow2_factor ( tree  exp  )  [static]

static HOST_WIDE_INT highest_pow2_factor_for_type ( tree  type,
tree  exp 
) [static]

Definition at line 6505 of file expr.c.

References BITS_PER_UNIT, highest_pow2_factor(), MAX, and TYPE_ALIGN.

Referenced by expand_assignment().

void init_expr ( void   ) 

void init_expr_once ( void   ) 

Definition at line 259 of file expr.c.

Referenced by lang_dependent_init().

void init_pending_stack_adjust ( void   ) 

Definition at line 9879 of file expr.c.

Referenced by prepare_function_start().

static int is_aligning_offset ( tree  offset,
tree  exp 
) [static]

static int is_zeros_p ( tree  exp  )  [static]

void jumpif ( tree  exp,
rtx  label 
)

Definition at line 9936 of file expr.c.

Referenced by expand_expr(), expand_gimple_cond_expr(), and store_constructor().

void jumpifnot ( tree  exp,
rtx  label 
)

Definition at line 9926 of file expr.c.

Referenced by expand_expr(), expand_expr_real_1(), expand_gimple_cond_expr(), and store_expr().

static int mostly_zeros_p ( tree  exp  )  [static]

void move_block_from_reg ( int  regno,
rtx  x,
int  nregs,
int  size 
)

void move_block_to_reg ( int  regno,
rtx  x,
int  nregs,
enum machine_mode  mode 
)

Definition at line 2175 of file expr.c.

Referenced by emit_push_insn(), and load_register_parameters().

rtx move_by_pieces ( rtx  to,
rtx  from,
unsigned HOST_WIDE_INT  len,
unsigned int  align,
int  endp 
)

static void move_by_pieces_1 ( rtx genfun,
enum machine_mode  mode,
struct move_by_pieces data 
) [static]

static unsigned HOST_WIDE_INT move_by_pieces_ninsns ( unsigned HOST_WIDE_INT  l,
unsigned int  align 
) [static]

static void do_tablejump PARAMS ( (rtx, enum machine_mode, rtx, rtx, rtx  )  [static]

static rtx do_store_flag PARAMS ( (tree, rtx, enum machine_mode, int)   )  [static]

static void do_compare_and_jump PARAMS ( (tree, enum rtx_code, enum rtx_code, rtx, rtx  )  [static]

static void do_jump_by_parts_equality PARAMS ( (tree, rtx, rtx  )  [static]

static void do_jump_by_parts_greater PARAMS ( (tree, int, rtx, rtx  )  [static]

static rtx expand_increment PARAMS ( (tree, int, int)   )  [static]

static HOST_WIDE_INT highest_pow2_factor_for_type PARAMS ( (tree, tree  )  [static]

static rtx store_field PARAMS ( (rtx, HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, enum machine_mode, int, tree, int)   )  [static]

static void store_constructor PARAMS ( (tree, rtx, int, HOST_WIDE_INT)   )  [static]

static void store_constructor_field PARAMS ( (rtx, unsigned HOST_WIDE_INT, HOST_WIDE_INT, enum machine_mode, tree, tree, int, int)   )  [static]

static int is_zeros_p PARAMS ( (tree  )  [static]

static rtx get_subtarget PARAMS ( (rtx  )  [static]

static bool clear_storage_via_clrstr PARAMS ( (rtx, rtx, unsigned)   )  [static]

static void store_by_pieces_2 PARAMS ( (rtx(*)(rtx,...), enum machine_mode, struct store_by_pieces *)   )  [static]

static void store_by_pieces_1 PARAMS ( (struct store_by_pieces *, unsigned int)   )  [static]

static void clear_by_pieces PARAMS ( (rtx, unsigned HOST_WIDE_INT, unsigned int)   )  [static]

static rtx clear_by_pieces_1 PARAMS ( (PTR, HOST_WIDE_INT, enum machine_mode  )  [static]

static tree emit_block_move_libcall_fn PARAMS ( (int)   )  [static]

static rtx emit_block_move_via_libcall PARAMS ( (rtx, rtx, rtx  )  [static]

static bool emit_block_move_via_movstr PARAMS ( (rtx, rtx, rtx, unsigned)   )  [static]

static bool block_move_libcall_safe_for_call_parm PARAMS ( (void  )  [static, read]

Definition at line 77 of file cplus-dem.c.

static void move_by_pieces_1 PARAMS ( (rtx(*)(rtx,...), enum machine_mode, struct move_by_pieces *)   )  [static]

static unsigned HOST_WIDE_INT move_by_pieces_ninsns PARAMS ( (unsigned HOST_WIDE_INT, unsigned int)   )  [static]

static rtx enqueue_insn PARAMS ( (rtx, rtx  )  [static]

rtx protect_from_queue ( rtx  x,
int  modify 
)

rtx push_block ( rtx  size,
int  extra,
int  below 
)

Definition at line 3711 of file expr.c.

Referenced by emit_library_call_value_1(), emit_push_insn(), and expand_call().

int queued_subexp_p ( rtx  x  ) 

Definition at line 495 of file expr.c.

References GET_CODE, MEM, MINUS, PLUS, and XEXP.

Referenced by do_store_flag(), queued_subexp_p(), and store_expr().

int safe_from_p ( rtx  x,
tree  exp,
int  top_p 
)

rtx store_by_pieces ( rtx  to,
unsigned HOST_WIDE_INT  len,
rtx constfun,
PTR  constfundata,
unsigned int  align,
int  endp 
)

static void store_by_pieces_1 ( struct store_by_pieces data,
unsigned int  align 
) [static]

static void store_by_pieces_2 ( rtx genfun,
enum machine_mode  mode,
struct store_by_pieces data 
) [static]

static void store_constructor ( tree  exp,
rtx  target,
int  cleared,
HOST_WIDE_INT  size 
) [static]

Definition at line 4941 of file expr.c.

References abort, adjust_address, alloca, assign_temp(), bit_position(), bitpos(), BITS_PER_UNIT, BITS_PER_WORD, build(), build_decl, build_int_2, build_qualified_type(), BYTES_BIG_ENDIAN, clear_storage(), CONST0_RTX, const0_rtx, constm1_rtx, CONSTRUCTOR_ELTS, contains_placeholder_p(), convert(), convert_to_mode(), copy_rtx(), count, DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_OFFSET, DECL_MODE, DECL_NONADDRESSABLE_P, DECL_SIZE, emit_insn(), emit_label(), emit_library_call(), emit_move_insn(), emit_queue(), EXPAND_CONST_ADDRESS, expand_end_loop(), expand_exit_loop_if_false(), expand_expr(), expand_increment(), expand_start_loop(), expr_size(), fields_length(), fold(), GEN_INT, gen_label_rtx(), gen_reg_rtx(), gen_rtx_CLOBBER, gen_rtx_SYMBOL_REF, get_alias_set(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_CLASS, GET_MODE_SIZE, get_set_constructor_bits(), highest_pow2_factor(), host_integerp(), i, index(), int_bit_position(), int_size_in_bytes(), integer_one_node, integer_type_node, integer_zerop(), is_zeros_p(), LCT_NORMAL, list_length(), lo, make_tree(), MEM, MEM_KEEP_ALIAS_SET_P, memset_libfunc, mode_for_size(), MODE_INT, mostly_zeros_p(), NULL_RTX, NULL_TREE, store_by_pieces::offset, offset_address(), plus_constant, Pmode, promote_mode(), ptr_mode, REG, REG_P, RTX_UNCHANGING_P, save_expr(), SAVE_EXPR_RTL, SET_DECL_RTL, size_binop(), size_diffop(), sizetype, ssize_int, ssizetype, store_constructor_field(), store_expr(), TARGET_MEM_FUNCTIONS, TREE_CHAIN, TREE_CODE, TREE_INT_CST_LOW, tree_low_cst(), TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_STATIC, TREE_TYPE, TREE_UNSIGNED, TREE_VALUE, TYPE_ALIGN, TYPE_DEBUG_REPRESENTATION_TYPE, TYPE_DOMAIN, TYPE_FIELDS, TYPE_MAX_VALUE, TYPE_MIN_VALUE, TYPE_MODE, TYPE_NONALIASED_COMPONENT, TYPE_PRECISION, TYPE_QUAL_CONST, TYPE_SIZE, TYPE_SIZE_UNIT, UNITS_PER_WORD, word_mode, and XEXP.

Referenced by expand_expr(), expand_expr_real_1(), store_constructor(), and store_constructor_field().

static void store_constructor_field ( rtx  target,
unsigned HOST_WIDE_INT  bitsize,
HOST_WIDE_INT  bitpos,
enum machine_mode  mode,
tree  exp,
tree  type,
int  cleared,
int  alias_set 
) [static]

rtx store_expr ( tree  exp,
rtx  target,
int  want_value 
)

static rtx store_field ( rtx  target,
HOST_WIDE_INT  bitsize,
HOST_WIDE_INT  bitpos,
enum machine_mode  mode,
tree  exp,
enum machine_mode  value_mode,
int  unsignedp,
tree  type,
int  alias_set 
) [static]

tree string_constant ( tree  arg,
tree ptr_offset 
)

Definition at line 9633 of file expr.c.

Referenced by c_getstr(), c_strlen(), expand_expr(), and fold_read_from_constant_string().

int try_casesi ( tree  index_type,
tree  index_expr,
tree  minval,
tree  range,
table_label  ,
rtx  default_label 
)

int try_tablejump ( tree  index_type,
tree  index_expr,
tree  minval,
tree  range,
rtx  table_label,
rtx  default_label 
)

Definition at line 11336 of file expr.c.

Referenced by expand_case(), and expand_end_case_type().

void use_group_regs ( rtx call_fusage,
rtx  regs 
)

Definition at line 2710 of file expr.c.

Referenced by emit_library_call_value_1(), and load_register_parameters().

void use_reg ( rtx call_fusage,
rtx  reg 
)

void use_regs ( rtx call_fusage,
int  regno,
int  nregs 
)

Definition at line 2691 of file expr.c.

Referenced by load_register_parameters().

static rtx var_rtx ( tree  exp  )  [static]

Definition at line 6362 of file expr.c.

References DECL_RTL, STRIP_NOPS, and TREE_CODE.

Referenced by expand_expr().

int vector_mode_valid_p ( enum machine_mode  mode  ) 

Definition at line 11369 of file expr.c.

Referenced by handle_mode_attribute().


Variable Documentation

enum insn_code clrstr_optab[NUM_MACHINE_MODES]

Definition at line 247 of file expr.c.

Referenced by clear_storage_via_clrstr(), init_all_optabs(), and init_optabs().

char direct_load[NUM_MACHINE_MODES] [static]

Definition at line 198 of file expr.c.

Referenced by convert_modes(), convert_move(), expand_expr(), and init_expr_once().

char direct_store[NUM_MACHINE_MODES] [static]

Definition at line 199 of file expr.c.

Referenced by init_expr_once(), and store_field().

bool float_extend_from_mem[NUM_MACHINE_MODES][NUM_MACHINE_MODES] [static]

Definition at line 203 of file expr.c.

Referenced by compress_float_constant(), and init_expr_once().

enum insn_code movstr_optab[NUM_MACHINE_MODES]

Definition at line 244 of file expr.c.

Referenced by emit_block_move_via_movstr(), init_all_optabs(), and init_optabs().

tree placeholder_list = 0 [static]

Definition at line 108 of file expr.c.

Referenced by do_jump(), expand_expr(), and find_placeholder().


Generated on Wed Apr 8 15:29:00 2009 for Open64 by  doxygen 1.5.6