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

#include "config.h"
#include "system.h"
#include "rtl.h"
#include "tm_p.h"
#include "insn-config.h"
#include "insn-attr.h"
#include "hard-reg-set.h"
#include "recog.h"
#include "regs.h"
#include "expr.h"
#include "function.h"
#include "flags.h"
#include "real.h"
#include "toplev.h"
#include "basic-block.h"
#include "output.h"
#include "reload.h"

Include dependency graph for recog.c:

Go to the source code of this file.

Data Types

type  change_t
type  validate_replace_src_data
type  funny_match

Defines

#define STACK_PUSH_CODE   PRE_INC
#define STACK_POP_CODE   POST_DEC

Functions/Subroutines

static void validate_replace_rtx_1 PARAMS ((rtx *, rtx, rtx, rtx))
static rtx *find_single_use_1 PARAMS ((rtx, rtx *))
static void validate_replace_src_1 PARAMS ((rtx *, void *))
static rtx split_insn PARAMS ((rtx))
void init_recog_no_volatile ()
void init_recog ()
int recog_memoized_1 (rtx insn)
int check_asm_operands (rtx x)
int validate_change (rtx object, rtx *loc, rtx new, int in_group)
int insn_invalid_p (rtx insn)
int num_changes_pending ()
int apply_change_group ()
int num_validated_changes ()
void cancel_changes (int num)
static void validate_replace_rtx_1 (rtx *loc, rtx from, rtx to, rtx object)
int validate_replace_rtx_subexp (rtx from, rtx to, rtx insn, rtx *loc)
int validate_replace_rtx (rtx from, rtx to, rtx insn)
void validate_replace_rtx_group (rtx from, rtx to, rtx insn)
static void validate_replace_src_1 (rtx *x, void *data)
void validate_replace_src_group (rtx from, rtx to, rtx insn)
int validate_replace_src (rtx from, rtx to, rtx insn)
static rtxfind_single_use_1 (rtx dest, rtx *loc)
rtxfind_single_use (rtx dest, rtx insn, rtx *ploc)
int general_operand (rtx op, enum machine_mode mode)
int address_operand (rtx op, enum machine_mode mode)
int register_operand (rtx op, enum machine_mode mode)
int pmode_register_operand (rtx op, mode)
int scratch_operand (rtx op, enum machine_mode mode)
int immediate_operand (rtx op, enum machine_mode mode)
int const_int_operand (rtx op, enum machine_mode mode)
int const_double_operand (rtx op, enum machine_mode mode)
int nonimmediate_operand (rtx op, enum machine_mode mode)
int nonmemory_operand (rtx op, enum machine_mode mode)
int push_operand (rtx op, enum machine_mode mode)
int pop_operand (rtx op, enum machine_mode mode)
int memory_address_p (mode, rtx addr)
int memory_operand (rtx op, enum machine_mode mode)
int indirect_operand (rtx op, enum machine_mode mode)
int comparison_operator (rtx op, enum machine_mode mode)
int asm_noperands (rtx body)
const char * decode_asm_operands (rtx body, rtx *operands, rtx **operand_locs, const char **constraints, enum machine_mode *modes)
int asm_operand_ok (rtx op, const char *constraint)
rtxfind_constant_term_loc (rtx *p)
int offsettable_memref_p (rtx op)
int offsettable_nonstrict_memref_p (rtx op)
int offsettable_address_p (int strictp, enum machine_mode mode, rtx y)
int mode_dependent_address_p (addr)
int mode_independent_operand (rtx op, enum machine_mode mode)
void extract_insn_cached (rtx insn)
void extract_constrain_insn_cached (rtx insn)
int constrain_operands_cached (int strict)
void extract_insn (rtx insn)
void preprocess_constraints ()
int constrain_operands (int strict)
int reg_fits_class_p (rtx operand, enum reg_class class, int offset, enum machine_mode mode)
static rtx split_insn (rtx insn)
void split_all_insns (int upd_life)
void split_all_insns_noflow ()
int store_data_bypass_p (rtx out_insn, rtx in_insn)
int if_test_bypass_p (rtx out_insn, rtx in_insn)

Variables

int volatile_ok
struct recog_data recog_data
struct operand_alternative recog_op_alt [MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES]
int which_alternative
int reload_completed
static change_tchanges
static int changes_allocated
static int num_changes = 0


Define Documentation

#define STACK_POP_CODE   POST_DEC

Definition at line 61 of file recog.c.

Referenced by pop_operand().

#define STACK_PUSH_CODE   PRE_INC

Definition at line 53 of file recog.c.


Function Documentation

int address_operand ( rtx  op,
enum machine_mode  mode 
)

int apply_change_group ( void   ) 

int asm_noperands ( rtx  body  ) 

Definition at line 1456 of file recog.c.

Referenced by adder_unit_ready_cost(), apply_change_group(), athlon_directdec_unit_ready_cost(), athlon_fp_add_unit_ready_cost(), athlon_fp_mul_unit_ready_cost(), athlon_fp_muladd_unit_ready_cost(), athlon_fp_store_unit_ready_cost(), athlon_fp_unit_ready_cost(), athlon_ieu_unit_blockage(), athlon_ieu_unit_blockage_range(), athlon_ieu_unit_conflict_cost(), athlon_ieu_unit_ready_cost(), athlon_load_unit_ready_cost(), athlon_muldiv_unit_blockage(), athlon_muldiv_unit_blockage_range(), athlon_muldiv_unit_conflict_cost(), athlon_muldiv_unit_ready_cost(), athlon_vectordec_unit_blockage(), athlon_vectordec_unit_blockage_range(), athlon_vectordec_unit_ready_cost(), bfin_optimize_loop(), bfin_reorg(), build_def_use(), bundling(), bypass_p(), check_asm_operands(), copyprop_hardreg_forward_1(), cselib_record_sets(), divide_unit_ready_cost(), do_local_cprop(), dummy_unit_ready_cost(), eligible_for_annul_false(), eligible_for_delay(), eliminate_regs_in_insn(), emit_input_reload_insns(), emit_output_reload_insns(), errata_emit_nops(), extract_insn(), failed_reload(), final_emit_insn_group_barriers(), final_scan_insn(), find_inherently_necessary(), fpu_unit_blockage(), fpu_unit_blockage_range(), fpu_unit_conflict_cost(), fpu_unit_ready_cost(), get_attr_athlon_decode(), get_attr_athlon_fpunits(), get_attr_can_delay(), get_attr_dslot(), get_attr_fp_int_src(), get_attr_imm_disp(), get_attr_itanium_class(), get_attr_itanium_requires_unit0(), get_attr_length(), get_attr_length_1(), get_attr_length_address(), get_attr_length_immediate(), get_attr_memory(), get_attr_mode(), get_attr_modrm(), get_attr_pent_pair(), get_attr_pent_prefix(), get_attr_ppro_uops(), get_attr_predicable(), get_attr_prefix_0f(), get_attr_prefix_data16(), get_attr_prefix_rep(), get_attr_type(), get_attr_unit(), handle_asm_insn(), ia64_dfa_new_cycle(), ia64_dfa_sched_reorder(), ia64_emit_nops(), ia64_internal_sched_reorder(), ia64_variable_issue(), imuldiv_unit_blockage(), imuldiv_unit_blockage_range(), imuldiv_unit_conflict_cost(), imuldiv_unit_ready_cost(), insn_alts(), insn_current_length(), insn_default_latency(), insn_default_length(), insn_variable_length_p(), instantiate_virtual_regs(), instantiate_virtual_regs_in_insn(), instantiate_virtual_regs_lossage(), internal_dfa_insn_code(), issue_nops_and_insn(), ix86_mode_needed(), k6_alu_unit_blockage(), k6_alu_unit_blockage_range(), k6_alu_unit_conflict_cost(), k6_alu_unit_ready_cost(), k6_alux_unit_blockage(), k6_alux_unit_blockage_range(), k6_alux_unit_conflict_cost(), k6_alux_unit_ready_cost(), k6_branch_unit_ready_cost(), k6_fpu_unit_blockage(), k6_fpu_unit_blockage_range(), k6_fpu_unit_conflict_cost(), k6_fpu_unit_ready_cost(), k6_load_unit_blockage(), k6_load_unit_blockage_range(), k6_load_unit_conflict_cost(), k6_load_unit_ready_cost(), k6_store_unit_blockage(), k6_store_unit_blockage_range(), k6_store_unit_conflict_cost(), k6_store_unit_ready_cost(), mark_set_1(), maybe_fix_stack_asms(), memory_unit_ready_cost(), mips_avoid_hazard(), mult_unit_ready_cost(), need_fake_edge_p(), num_delay_slots(), optimize_reg_copy_1(), ppro_p01_unit_ready_cost(), ppro_p0_unit_blockage(), ppro_p0_unit_blockage_range(), ppro_p0_unit_conflict_cost(), ppro_p0_unit_ready_cost(), ppro_p2_unit_ready_cost(), ppro_p34_unit_ready_cost(), purge_addressof(), reload(), reload_as_needed(), reload_cse_simplify(), result_ready_cost(), see_analyze_one_def(), sh_cannot_copy_insn_p(), sh_insn_length_adjustment(), shorten_branches(), spill_failure(), stop_bit_unit_ready_cost(), try_combine(), update_equiv_regs(), and verify_changes().

int asm_operand_ok ( rtx  op,
const char *  constraint 
)

Definition at line 1678 of file recog.c.

Referenced by check_asm_operands(), and expand_asm_operands().

void cancel_changes ( int  num  ) 

int check_asm_operands ( rtx  x  ) 

int comparison_operator ( rtx  op,
enum machine_mode  mode 
)

int const_double_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1208 of file recog.c.

References GET_CODE, GET_MODE, GET_MODE_CLASS, MODE_INT, and MODE_PARTIAL_INT.

int const_int_operand ( rtx  op,
enum machine_mode  mode 
)

int constrain_operands ( int  strict  ) 

int constrain_operands_cached ( int  strict  ) 

Definition at line 2102 of file recog.c.

Referenced by final_scan_insn().

const char* decode_asm_operands ( rtx  body,
rtx operands,
rtx **  operand_locs,
const char **  constraints,
enum machine_mode modes 
)

void extract_constrain_insn_cached ( rtx  insn  ) 

Definition at line 2092 of file recog.c.

Referenced by athlon_fp_unit_ready_cost(), athlon_ieu_unit_blockage(), athlon_ieu_unit_conflict_cost(), athlon_ieu_unit_ready_cost(), athlon_vectordec_unit_blockage(), athlon_vectordec_unit_blockage_range(), bypass_p(), dummy_unit_ready_cost(), eligible_for_annul_false(), eligible_for_delay(), fpu_unit_blockage(), fpu_unit_conflict_cost(), fpu_unit_ready_cost(), get_attr_athlon_decode(), get_attr_athlon_fpunits(), get_attr_can_delay(), get_attr_dslot(), get_attr_imm_disp(), get_attr_itanium_class(), get_attr_itanium_requires_unit0(), get_attr_length_address(), get_attr_length_immediate(), get_attr_memory(), get_attr_mode(), get_attr_modrm(), get_attr_pent_pair(), get_attr_pent_prefix(), get_attr_ppro_uops(), get_attr_prefix_0f(), get_attr_prefix_data16(), get_attr_prefix_rep(), get_attr_type(), get_attr_unit(), imuldiv_unit_blockage(), imuldiv_unit_conflict_cost(), imuldiv_unit_ready_cost(), insn_alts(), insn_current_length(), insn_default_latency(), insn_default_length(), internal_dfa_insn_code(), ip2k_gen_signed_comp_branch(), ip2k_gen_unsigned_comp_branch(), k6_alu_unit_blockage(), k6_alu_unit_conflict_cost(), k6_alu_unit_ready_cost(), k6_alux_unit_blockage(), k6_alux_unit_conflict_cost(), k6_alux_unit_ready_cost(), k6_fpu_unit_blockage(), k6_fpu_unit_conflict_cost(), k6_fpu_unit_ready_cost(), k6_load_unit_blockage(), k6_load_unit_conflict_cost(), k6_load_unit_ready_cost(), k6_store_unit_blockage(), k6_store_unit_conflict_cost(), k6_store_unit_ready_cost(), memory_unit_ready_cost(), num_delay_slots(), ppro_p0_unit_blockage(), ppro_p0_unit_conflict_cost(), ppro_p0_unit_ready_cost(), and result_ready_cost().

void extract_insn ( rtx  insn  ) 

void extract_insn_cached ( rtx  insn  ) 

rtx* find_constant_term_loc ( rtx p  ) 

rtx* find_single_use ( rtx  dest,
rtx  insn,
rtx ploc 
)

Definition at line 882 of file recog.c.

Referenced by find_split_point(), simplify_set(), and try_combine().

static rtx* find_single_use_1 ( rtx  dest,
rtx loc 
) [static]

int general_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 948 of file recog.c.

References ADDRESSOF, CONSTANT_P, FIRST_PSEUDO_REGISTER, flag_pic, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, GO_IF_LEGITIMATE_ADDRESS, INTVAL, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, MEM, MEM_VOLATILE_P, MODE_FLOAT, MODE_INT, MODE_PARTIAL_INT, NO_REGS, REG, REGNO, REGNO_REG_CLASS, sub, SUBREG_BYTE, SUBREG_REG, trunc_int_for_mode(), XEXP, and is::y.

Referenced by adjust_insn_length(), aligned_operand(), asm_operand_ok(), bit_operand(), call_insn_operand(), cmp_fp_expander_operand(), cmp_operand(), combine_simplify_rtx(), constrain_operands(), copy_to_mode_reg(), copy_to_reg(), cris_general_operand_or_gotless_symbol(), cris_general_operand_or_plt_symbol(), cris_general_operand_or_symbol(), eliminate_partially_redundant_loads(), expand_increment(), extendpsi_operand(), force_reg(), fpmove_src_operand(), function_units_used(), general_movdst_operand(), general_movsrc_operand(), general_no_elim_operand(), general_operand_dst(), general_operand_src(), general_s_operand(), general_src_operand(), general_tfmode_operand(), GTY(), h8300_src_operand(), hash_scan_set(), in_operand(), index_register_operand(), indirect_operand(), input_operand(), k6_alux_unit_blockage(), k6_alux_unit_conflict_cost(), k6_alux_unit_ready_cost(), keep_with_call_p(), mcore_general_movdst_operand(), mcore_general_movsrc_operand(), memory_address(), memory_operand(), mode_independent_operand(), movdi_operand(), move_operand(), movsi_source_operand(), noce_emit_cmove(), noce_emit_store_flag(), noce_try_addcc(), noce_try_cmove_arith(), non_push_operand(), nonimmediate_operand(), nonmemory_operand(), out_operand(), pj_source_operand(), process_insert_insn(), psimode_truncation_operand(), recog_1(), recog_10(), recog_11(), recog_15(), recog_2(), recog_21(), recog_22(), recog_23(), recog_24(), recog_25(), recog_26(), recog_28(), recog_29(), recog_3(), recog_30(), recog_31(), recog_34(), recog_4(), recog_5(), recog_6(), recog_7(), recog_9(), register_operand(), romp_operand(), rs6000_emit_move(), s_operand(), split_1(), split_2(), splitable_operand(), src_operand(), x86_64_general_operand(), x86_64_szext_general_operand(), xs_hi_general_operand(), and xstormy16_split_move().

int if_test_bypass_p ( rtx  out_insn,
rtx  in_insn 
)

Definition at line 3428 of file recog.c.

int immediate_operand ( rtx  op,
enum machine_mode  mode 
)

int indirect_operand ( rtx  op,
enum machine_mode  mode 
)

void init_recog ( void   ) 

void init_recog_no_volatile ( void   ) 

int insn_invalid_p ( rtx  insn  ) 

int memory_address_p ( mode  ,
rtx  addr 
)

Definition at line 1362 of file recog.c.

References ADDRESSOF, GET_CODE, GO_IF_LEGITIMATE_ADDRESS, and mode.

Referenced by address_cost(), address_operand(), adjust_address_1(), aligned_memory_operand(), apply_change_group(), call_operand(), call_operand_address(), change_address_1(), combine_givs_p(), combine_stack_adjustments_for_block(), constrain_operands(), copy_rtx_and_substitute(), cris_movem_load_rest_p(), di_operand(), double_memory_operand(), emit_move_insn(), emit_move_sequence(), expand_expr(), expand_expr_real_1(), expand_inline_function(), find_split_point(), fixup_memory_subreg(), fixup_stack_1(), gen_lowpart_if_possible(), general_operand(), get_address_cost(), get_aligned_mem(), get_unaligned_address(), i960_output_move_double(), i960_output_move_quad(), indexed_memory_operand(), init_reload(), input_operand(), instantiate_decl(), maybe_memory_address_p(), memory_address(), mmix_extra_constraint(), move_dest_operand(), move_operand(), move_src_operand(), multiplier_allowed_in_address_p(), non_const_move_operand(), nonimmediate_di_operand(), nonimmediate_soft_df_operand(), offset_address(), offsettable_address_p(), output_block_move(), plus_constant(), plus_constant_wide(), prefetch_cc_operand(), prefetch_nocc_operand(), psimode_truncation_operand(), reg_or_0_or_nonsymb_mem_operand(), rs6000_emit_move(), soft_df_operand(), subst_constants(), unaligned_memory_operand(), valid_mem_ref_p(), validize_mem(), verify_changes(), volatile_mem_operand(), xtensa_emit_block_move(), xtensa_rtx_costs(), and Y_address_operand().

int memory_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1383 of file recog.c.

References general_operand(), GET_CODE, GET_MODE, MEM, and SUBREG_REG.

Referenced by alpha_secondary_reload_class(), arm_rhsm_operand(), asm_operand_ok(), athlon_vectordec_unit_blockage(), athlon_vectordec_unit_blockage_range(), bad_signed_byte_operand(), bfin_output_mi_thunk(), bypass_p(), cond_exec_operand(), cris_mem_call_operand(), double_memory_operand(), find_reloads_address_1(), frv_load_operand(), gen_absdf2(), gen_abssf2(), gen_negdf2(), gen_negsf2(), gen_split_1130(), gen_split_1137(), gen_split_1144(), get_attr_athlon_decode(), get_attr_memory(), get_attr_modrm(), get_attr_pent_pair(), get_attr_ppro_uops(), ia64_extra_constraint(), indirect_operand(), input_operand(), insn_alts(), insn_default_latency(), internal_dfa_insn_code(), ip2k_short_operand(), ix86_expand_fp_movcc(), k6_load_unit_blockage(), k6_load_unit_conflict_cost(), k6_load_unit_ready_cost(), k6_store_unit_ready_cost(), load_operand(), long_memory_operand(), lwa_operand(), mem_operand(), mem_or_easy_const_operand(), memory_displacement_operand(), memory_offset_in_range_p(), memory_src_operand(), mips_legitimize_const_move(), mips_sign_extend(), move_operand(), nonimmed_operand(), not_postinc_memory_operand(), peephole2_1(), peephole2_2(), prepare_move_operands(), recog(), recog_1(), recog_10(), recog_11(), recog_12(), recog_17(), recog_21(), recog_3(), recog_31(), recog_32(), recog_34(), recog_35(), recog_36(), recog_38(), recog_4(), recog_5(), recog_9(), reg_before_reload_operand(), reg_or_0_or_nonsymb_mem_operand(), reg_or_mem_operand(), reg_or_nonsymb_mem_operand(), reload(), restore_world_operation(), result_ready_cost(), s390_expand_insv(), s390_rtx_costs(), save_world_operation(), secondary_reload_class(), short_memory_operand(), split_1(), split_2(), split_3(), split_4(), symbolic_memory_operand(), volatile_mem_operand(), word_offset_memref_operand(), and x86_output_mi_thunk().

int mode_dependent_address_p ( addr   ) 

int mode_independent_operand ( rtx  op,
enum machine_mode  mode 
)

int nonimmediate_operand ( rtx  op,
enum machine_mode  mode 
)

int nonmemory_operand ( rtx  op,
enum machine_mode  mode 
)

int num_changes_pending ( void   ) 

Definition at line 321 of file recog.c.

Referenced by see_merge_one_use_extension(), try_replace_reg(), and validate_simplify_insn().

int num_validated_changes ( void   ) 

int offsettable_address_p ( int  strictp,
enum machine_mode  mode,
rtx  y 
)

int offsettable_memref_p ( rtx  op  ) 

int offsettable_nonstrict_memref_p ( rtx  op  ) 

static rtx split_insn PARAMS ( (rtx  )  [static]

static void validate_replace_src_1 PARAMS ( (rtx *, void *)   )  [static]

static rtx* find_single_use_1 PARAMS ( (rtx, rtx *)   )  [static]

static void validate_replace_rtx_1 PARAMS ( (rtx *, rtx, rtx, rtx  )  [static]

int pmode_register_operand ( rtx  op,
mode   
)

Definition at line 1127 of file recog.c.

References Pmode, and register_operand().

Referenced by recog_9().

int pop_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1341 of file recog.c.

References GET_CODE, GET_MODE, MEM, stack_pointer_rtx, STACK_POP_CODE, and XEXP.

void preprocess_constraints ( void   ) 

int push_operand ( rtx  op,
enum machine_mode  mode 
)

int recog_memoized_1 ( rtx  insn  ) 

Definition at line 123 of file recog.c.

References INSN_CODE, PATTERN, and recog().

int reg_fits_class_p ( rtx  operand,
enum reg_class  class,
int  offset,
enum machine_mode  mode 
)

int register_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1074 of file recog.c.

References ADDRESSOF, FIRST_PSEUDO_REGISTER, general_operand(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, MEM, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, MODE_FLOAT, NO_REGS, REG, REG_CANNOT_CHANGE_MODE_P, REGNO, REGNO_REG_CLASS, sub, and SUBREG_REG.

Referenced by accum_operand(), add_operand(), adddi3_operand(), addition_operation(), allocate_dynamic_stack_space(), alpha_emit_setcc(), alpha_expand_movmisalign(), altivec_expand_vec_ext_builtin(), altivec_expand_vec_init_builtin(), altivec_register_operand(), and_operand(), arith10_double_operand(), arith10_operand(), arith11_double_operand(), arith11_operand(), arith32_operand(), arith5_operand(), arith64_operand(), arith_double_operand(), arith_operand(), arith_reg_operand(), asm_operand_ok(), basereg_operand(), bfin_expand_builtin(), borx_reg_operand(), br_flag_operand(), br_flag_or_constant_operand(), branch_operand(), bte_operand(), c4x_expand_builtin(), call_insn_operand(), carry_operand(), cc_reg_not_cr0_operand(), cc_reg_operand(), check_cond_move_block(), compare_operand(), compute_logical_op_cc(), compute_logical_op_length(), compute_plussi_cc(), compute_plussi_length(), cr_operand(), cris_bdap_biap_operand(), cris_bdap_operand(), di_operand(), do_movsi(), eligible_for_epilogue_delay(), eligible_for_restore_insn(), eligible_for_sibcall_delay(), emit_hard_tfmode_operation(), emit_move_complex(), emit_move_sequence(), even_fpr_operand(), even_gpr_operand(), even_reg_operand(), expand_builtin(), expand_sync_fetch_operation(), expand_sync_lock_test_and_set(), ext_register_operand(), extend_operand(), f0_operand(), f1_operand(), find_set_regmode_weight(), find_split_point(), flag_operand(), fp_arith_operand(), fp_arith_reg_operand(), fp_reg_operand(), fp_register_operand(), fpr_operand(), fpr_or_int6_operand(), fr_register_operand(), frv_emit_move(), frv_emit_movsi(), gen_compare(), gen_extv(), gen_extzv(), gen_insv(), gen_movdf(), gen_movdi(), gen_movhi(), gen_movqi(), gen_movsf(), gen_movsi(), gen_movtf(), get_attr_athlon_fpunits(), get_attr_modrm(), get_attr_type(), gpc_reg_operand(), gpr_fpr_or_int12_operand(), gpr_operand(), gpr_or_accum_operand(), gpr_or_br_flag_operand(), gpr_or_constant_operand(), gpr_or_dbl_const_operand(), gpr_or_fpr_operand(), gpr_or_int10_operand(), gpr_or_int12_operand(), gpr_or_int_operand(), gpr_or_memory_operand(), gpr_or_signed6_operand(), gpr_or_unsigned5_operand(), gpr_or_unsigned6_operand(), gr_register_operand(), grfr_register_operand(), h8300_classify_operand(), h8300_displacement_length(), h8300_dst_operand(), h8300_expand_movsi(), h8300_operands_match_p(), h8300_rtx_costs(), ia64_expand_builtin(), ia64_expand_compare_and_swap(), ia64_expand_fetch_and_op(), ia64_expand_load_address(), ia64_expand_lock_test_and_set(), ia64_expand_move(), ia64_expand_movxf_movrf(), ia64_expand_op_and_fetch(), ia64_expand_tls_address(), ia64_move_ok(), indexed_operand(), input_operand(), insn_default_length(), int_reg_operand(), integer_register_operand(), intreg_operand(), ip2k_nonptr_operand(), ix86_expand_builtin(), ix86_expand_int_movcc(), ix86_expand_move(), ix86_expand_sse_comi(), ix86_expand_sse_compare(), ix86_expand_unop1_builtin(), ix86_expand_unop_builtin(), ix86_expand_vec_ext_builtin(), ix86_expand_vec_init_builtin(), ix86_expand_vector_init_general(), ix86_expand_vector_move(), jump_address_operand(), legitimize_operand(), lhs_lshift_operand(), load_update_operand(), logic_operand(), mask_operand(), mcore_addsub_operand(), mcore_arith_any_imm_operand(), mcore_arith_imm_operand(), mcore_arith_J_operand(), mcore_arith_K_operand(), mcore_arith_K_operand_not_0(), mcore_arith_K_S_operand(), mcore_arith_M_operand(), mcore_arith_O_operand(), mcore_arith_reg_operand(), mcore_call_address_operand(), mcore_compare_operand(), memory_offset_in_range_p(), mips_legitimize_move(), mips_sign_extend(), mips_use_ins_ext_p(), mmix_reg_cc_operand(), mmix_reg_or_0_operand(), mmix_reg_or_8bit_operand(), mmix_reg_or_constant_operand(), movdi_operand(), move_dest_operand(), move_double_src_operand(), move_operand(), move_src_operand(), noce_try_cmove(), non_const_move_operand(), nonimmed_operand(), nonimmediate_di_operand(), nonmemory_no_elim_operand(), odd_fpr_operand(), odd_gpr_operand(), odd_reg_operand(), or_operand(), out_shift_with_cnt(), output_83(), output_logical_op(), output_move_double(), output_movedouble(), output_movhi(), output_movqi(), output_movsisf(), output_plussi(), partial_ccmode_register_operand(), peephole(), peephole2_1(), peephole2_2(), peephole2_insns(), pmode_register_operand(), prepare_move_operands(), quad_fpr_operand(), real_or_0_operand(), recog(), recog_1(), recog_10(), recog_11(), recog_12(), recog_13(), recog_14(), recog_15(), recog_16(), recog_17(), recog_18(), recog_19(), recog_2(), recog_20(), recog_21(), recog_22(), recog_23(), recog_24(), recog_26(), recog_28(), recog_3(), recog_31(), recog_32(), recog_33(), recog_34(), recog_35(), recog_36(), recog_37(), recog_38(), recog_4(), recog_5(), recog_6(), recog_7(), recog_8(), recog_9(), reg_before_reload_operand(), reg_no_sp_operand(), reg_no_subreg_operand(), reg_not_elim_operand(), reg_operand(), reg_or_0_operand(), reg_or_0_or_nonsymb_mem_operand(), reg_or_6bit_operand(), reg_or_8bit_operand(), reg_or_any_cint_operand(), reg_or_bbx_mask_operand(), reg_or_cint_move_operand(), reg_or_cint_operand(), reg_or_cmp_int16_operand(), reg_or_const_operand(), reg_or_D_operand(), reg_or_eq_int16_operand(), reg_or_fp0_operand(), reg_or_int16_operand(), reg_or_int5_operand(), reg_or_int9_operand(), reg_or_mem_operand(), reg_or_nibble_operand(), reg_or_nonsymb_mem_operand(), reg_or_some_mem_operand(), reg_or_uint16_operand(), reg_or_unaligned_mem_operand(), reg_or_zero_operand(), register_and_not_any_fp_reg_operand(), register_and_not_fp_reg_operand(), repeat_operand(), s390_expand_addcc(), s390_expand_atomic(), s390_expand_cs_hqi(), s390_expand_insv(), s390_rtx_costs(), s390_select_ccmode(), s390_split_ok_p(), score_select_cc_mode(), se_arith_operand(), se_nonimmediate_operand(), se_nonmemory_operand(), se_reg_or_0_operand(), se_register_operand(), se_uns_arith_operand(), sh_register_operand(), shift_operand(), shiftdi_operand(), signed_arith_operand(), small_call_insn_operand(), split_1(), split_2(), split_3(), split_4(), split_insns(), store_update_operand(), symbolic_memory_operand(), thumb_cmp_operand(), true_reg_or_0_operand(), ubranch_operand(), uns_arith_operand(), x86_64_movabs_operand(), x86_64_nonmemory_operand(), x86_64_szext_nonmemory_operand(), xstormy16_below100_or_register(), xstormy16_splittable_below100_or_register(), xtensa_emit_call(), xtensa_emit_move_sequence(), xtensa_load_constant(), and xtensa_valid_move().

int scratch_operand ( rtx  op,
enum machine_mode  mode 
)

void split_all_insns ( int  upd_life  ) 

void split_all_insns_noflow ( void   ) 

static rtx split_insn ( rtx  insn  )  [static]

int store_data_bypass_p ( rtx  out_insn,
rtx  in_insn 
)

Definition at line 3377 of file recog.c.

Referenced by mips_store_data_bypass_p().

int validate_change ( rtx  object,
rtx loc,
rtx  new,
int  in_group 
)

int validate_replace_rtx ( rtx  from,
rtx  to,
rtx  insn 
)

static void validate_replace_rtx_1 ( rtx loc,
rtx  from,
rtx  to,
rtx  object 
) [static]

void validate_replace_rtx_group ( rtx  from,
rtx  to,
rtx  insn 
)

Definition at line 663 of file recog.c.

Referenced by optimize_reg_copy_3().

int validate_replace_rtx_subexp ( rtx  from,
rtx  to,
rtx  insn,
rtx loc 
)

Definition at line 642 of file recog.c.

int validate_replace_src ( rtx  from,
rtx  to,
rtx  insn 
)

Definition at line 706 of file recog.c.

References apply_change_group(), and validate_replace_src_group().

Referenced by ssa_ccp_substitute_constants().

static void validate_replace_src_1 ( rtx x,
void data 
) [static]

void validate_replace_src_group ( rtx  from,
rtx  to,
rtx  insn 
)

Definition at line 692 of file recog.c.

Referenced by see_merge_one_use_extension(), try_replace_reg(), and validate_replace_src().


Variable Documentation

change_t* changes [static]

int changes_allocated [static]

Definition at line 189 of file recog.c.

Referenced by validate_change().

int num_changes = 0 [static]

Definition at line 80 of file recog.c.

struct operand_alternative recog_op_alt[MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES]

Definition at line 95 of file recog.c.

Definition at line 89 of file recog.c.

Referenced by athlon_fp_unit_ready_cost(), athlon_ieu_unit_blockage(), athlon_ieu_unit_conflict_cost(), athlon_ieu_unit_ready_cost(), athlon_vectordec_unit_blockage(), athlon_vectordec_unit_blockage_range(), block_alloc(), build_def_use(), bypass_p(), check_asm_operands(), constrain_operands(), constrain_operands_cached(), copyprop_hardreg_forward_1(), dummy_unit_ready_cost(), dump_constraints(), eligible_for_annul_false(), eligible_for_delay(), extract_constrain_insn_cached(), extract_insn(), find_matches(), fpu_unit_blockage(), fpu_unit_conflict_cost(), fpu_unit_ready_cost(), get_attr_athlon_decode(), get_attr_athlon_fpunits(), get_attr_can_delay(), get_attr_dslot(), get_attr_imm_disp(), get_attr_itanium_class(), get_attr_itanium_requires_unit0(), get_attr_length_address(), get_attr_length_immediate(), get_attr_memory(), get_attr_mode(), get_attr_modrm(), get_attr_pent_pair(), get_attr_pent_prefix(), get_attr_ppro_uops(), get_attr_prefix_0f(), get_attr_prefix_data16(), get_attr_prefix_rep(), get_attr_type(), get_attr_unit(), get_insn_template(), imuldiv_unit_ready_cost(), insn_alts(), insn_current_length(), insn_default_latency(), insn_default_length(), internal_dfa_insn_code(), k6_alu_unit_blockage(), k6_alu_unit_conflict_cost(), k6_alu_unit_ready_cost(), k6_alux_unit_blockage(), k6_alux_unit_conflict_cost(), k6_alux_unit_ready_cost(), k6_fpu_unit_blockage(), k6_fpu_unit_conflict_cost(), k6_fpu_unit_ready_cost(), k6_load_unit_blockage(), k6_load_unit_conflict_cost(), k6_load_unit_ready_cost(), k6_store_unit_blockage(), k6_store_unit_conflict_cost(), k6_store_unit_ready_cost(), memory_unit_ready_cost(), note_invalid_constants(), output_100(), output_101(), output_102(), output_103(), output_126(), output_127(), output_128(), output_129(), output_130(), output_131(), output_132(), output_133(), output_134(), output_135(), output_138(), output_140(), output_142(), output_144(), output_196(), output_201(), output_203(), output_210(), output_215(), output_216(), output_229(), output_230(), output_279(), output_296(), output_34(), output_37(), output_38(), output_424(), output_426(), output_48(), output_49(), output_520(), output_559(), output_560(), output_564(), output_565(), output_570(), output_571(), output_572(), output_573(), output_7(), output_71(), output_72(), output_83(), output_87(), output_88(), output_89(), output_91(), output_92(), output_93(), output_94(), output_96(), output_97(), output_98(), output_99(), output_asm_name(), output_v8plus_shift(), ppro_p0_unit_blockage(), ppro_p0_unit_conflict_cost(), ppro_p0_unit_ready_cost(), reload_cse_simplify_operands(), result_ready_cost(), sparc_v8plus_shift(), split_quadword_operands(), and validate_insn_alternatives().


Generated on Wed Apr 8 15:42:37 2009 for Open64 by  doxygen 1.5.6