osprey-gcc-4.2.0/gcc/recog.h File Reference

Go to the source code of this file.

Data Types

type  operand_alternative
type  recog_data
type  insn_operand_data
type  insn_data

Defines

#define MAX_RECOG_ALTERNATIVES   30
#define INSN_OUTPUT_FORMAT_NONE   0
#define INSN_OUTPUT_FORMAT_SINGLE   1
#define INSN_OUTPUT_FORMAT_MULTI   2
#define INSN_OUTPUT_FORMAT_FUNCTION   3

Typedefs

typedef int(* insn_operand_predicate_fn )(rtx, enum machine_mode)
typedef const char *(* insn_output_fn )(rtx *, rtx)
typedef rtx(* insn_gen_fn )(rtx,...)

Enumerations

enum  op_type {
  OP_IN, OP_OUT, OP_INOUT, OP_IN,
  OP_OUT, OP_INOUT, OP_IN, OP_OUT,
  OP_INOUT, OP_IN, OP_OUT, OP_INOUT
}

Functions/Subroutines

void init_recog (void)
void init_recog_no_volatile (void)
int check_asm_operands (rtx)
int asm_operand_ok (rtx, const char *)
int validate_change (rtx, rtx *, rtx, int)
int insn_invalid_p (rtx)
int verify_changes (int)
void confirm_change_group (void)
int apply_change_group (void)
int num_validated_changes (void)
void cancel_changes (int)
int constrain_operands (int)
int constrain_operands_cached (int)
int memory_address_p (enum machine_mode, rtx)
int strict_memory_address_p (enum machine_mode, rtx)
int validate_replace_rtx (rtx, rtx, rtx)
void validate_replace_rtx_group (rtx, rtx, rtx)
void validate_replace_src_group (rtx, rtx, rtx)
bool validate_simplify_insn (rtx insn)
int num_changes_pending (void)
int reg_fits_class_p (rtx, enum reg_class, int, enum machine_mode)
rtxfind_single_use (rtx, rtx, rtx *)
int offsettable_memref_p (rtx)
int offsettable_nonstrict_memref_p (rtx)
int offsettable_address_p (int, enum machine_mode, rtx)
int mode_dependent_address_p (rtx)
int recog (rtx, rtx, int *)
static int recog_memoized (rtx insn)
void add_clobbers (rtx, int)
int added_clobbers_hard_reg_p (int)
void insn_extract (rtx)
void extract_insn (rtx)
void extract_constrain_insn_cached (rtx)
void extract_insn_cached (rtx)
void preprocess_constraints (void)
rtx peep2_next_insn (int)
int peep2_regno_dead_p (int, int)
int peep2_reg_dead_p (int, rtx)
rtx peephole2_insns (rtx, rtx, int *)
int store_data_bypass_p (rtx, rtx)
int if_test_bypass_p (rtx, rtx)

Variables

int volatile_ok
int which_alternative
struct recog_data recog_data
struct operand_alternative recog_op_alt [MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES]
struct insn_data insn_data []
int peep2_current_count


Define Documentation

#define INSN_OUTPUT_FORMAT_FUNCTION   3

Definition at line 239 of file recog.h.

#define INSN_OUTPUT_FORMAT_MULTI   2

Definition at line 238 of file recog.h.

#define INSN_OUTPUT_FORMAT_NONE   0

Definition at line 236 of file recog.h.

#define INSN_OUTPUT_FORMAT_SINGLE   1

Definition at line 237 of file recog.h.

#define MAX_RECOG_ALTERNATIVES   30

Definition at line 23 of file recog.h.


Typedef Documentation

typedef rtx(* insn_gen_fn)(rtx,...)

Definition at line 219 of file recog.h.

Definition at line 217 of file recog.h.

typedef const char*(* insn_output_fn)(rtx *, rtx)

Definition at line 218 of file recog.h.


Enumeration Type Documentation

enum op_type

Enumerator:
OP_IN 
OP_OUT 
OP_INOUT 
OP_IN 
OP_OUT 
OP_INOUT 
OP_IN 
OP_OUT 
OP_INOUT 
OP_IN 
OP_OUT 
OP_INOUT 

Definition at line 26 of file recog.h.


Function Documentation

void add_clobbers ( rtx  ,
int   
)

int added_clobbers_hard_reg_p ( int   ) 

Definition at line 24554 of file insn-emit.c.

References abort.

Referenced by GTY(), and insn_invalid_p().

int apply_change_group ( void   ) 

int asm_operand_ok ( rtx  ,
const char *   
)

void cancel_changes ( int   ) 

int check_asm_operands ( rtx   ) 

void confirm_change_group ( void   ) 

int constrain_operands ( int   ) 

int constrain_operands_cached ( int   ) 

Definition at line 2102 of file recog.c.

References constrain_operands(), and which_alternative.

Referenced by final_scan_insn().

void extract_constrain_insn_cached ( rtx   ) 

Definition at line 2092 of file recog.c.

References constrain_operands(), extract_insn_cached(), fatal_insn_not_found, reload_completed, and which_alternative.

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   ) 

void extract_insn_cached ( rtx   ) 

rtx* find_single_use ( rtx  ,
rtx  ,
rtx  
)

int if_test_bypass_p ( rtx  ,
rtx   
)

void init_recog ( void   ) 

void init_recog_no_volatile ( void   ) 

void insn_extract ( rtx   ) 

int insn_invalid_p ( rtx   ) 

int memory_address_p ( enum  machine_mode,
rtx   
)

int mode_dependent_address_p ( rtx   ) 

int num_changes_pending ( void   ) 

Definition at line 321 of file recog.c.

References num_changes.

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

int num_validated_changes ( void   ) 

Definition at line 431 of file recog.c.

References num_changes.

Referenced by insns_match_p(), invert_exp(), invert_jump_1(), redirect_exp(), redirect_jump_1(), and subst_constants().

int offsettable_address_p ( int  ,
enum  machine_mode,
rtx   
)

int offsettable_memref_p ( rtx   ) 

int offsettable_nonstrict_memref_p ( rtx   ) 

rtx peep2_next_insn ( int   ) 

int peep2_reg_dead_p ( int  ,
rtx   
)

int peep2_regno_dead_p ( int  ,
int   
)

rtx peephole2_insns ( rtx  ,
rtx  ,
int *   
)

void preprocess_constraints ( void   ) 

int recog ( rtx  ,
rtx  ,
int *   
)

static int recog_memoized ( rtx  insn  )  [inline, static]

Definition at line 137 of file recog.h.

References INSN_CODE, PATTERN, and recog().

int reg_fits_class_p ( rtx  ,
enum  reg_class,
int  ,
enum  machine_mode 
)

int store_data_bypass_p ( rtx  ,
rtx   
)

Definition at line 3377 of file recog.c.

References abort, exp, gcc_assert, GET_CODE, MEM, MEM_P, PATTERN, reg_mentioned_p(), SET, SET_DEST, single_set, XVECEXP, and XVECLEN.

Referenced by mips_store_data_bypass_p().

int strict_memory_address_p ( enum  machine_mode,
rtx   
)

int validate_change ( rtx  ,
rtx ,
rtx  ,
int   
)

Definition at line 212 of file recog.c.

References abort, apply_change_group(), changes_allocated, gcc_assert, GET_CODE, INSN_CODE, change_t::loc, MAX_RECOG_OPERANDS, MEM, MEM_P, num_changes, change_t::object, change_t::old, change_t::old_code, rtx_equal_p(), and xrealloc().

Referenced by apply_change_group(), canon_reg(), combine_stack_adjustments_for_block(), cond_exec_process_insns(), copyprop_hardreg_forward_1(), cprop_jump(), cse_change_cc_mode(), cse_insn(), cse_process_notes(), cse_set_around_loop(), dead_libcall_p(), df_ref_reg_replace(), df_rtx_mem_replace(), df_rtx_reg_replace(), eliminate_regs_in_insn(), expand_var_during_unrolling(), final_scan_insn(), find_best_addr(), fixup_match_1(), fixup_match_2(), fixup_var_refs_1(), fold_rtx(), handle_avail_expr(), hoist_update_store(), insns_match_p(), instantiate_virtual_regs_1(), invert_exp_1(), loop_givs_rescan(), maybe_eliminate_biv_1(), old_insns_match_p(), optimize_bit_field(), optimize_reg_copy_3(), pre_insert_copy_insn(), purge_addressof_1(), redirect_exp_1(), regmove_optimize(), reload_combine(), reload_cse_move2add(), reload_cse_simplify_operands(), reload_cse_simplify_set(), replace_in_call_usage(), replace_loop_mem(), replace_loop_mems(), replace_loop_reg(), replace_oldest_value_reg(), rtx_equiv_p(), s390_split_branches(), see_merge_one_def_extension(), split_iv(), subst_constants(), try_apply_stack_adjustment(), try_auto_increment(), try_replace_reg(), try_swap_copy_prop(), validate_canon_reg(), validate_replace_rtx_1(), validate_simplify_insn(), and verify_changes().

int validate_replace_rtx ( rtx  ,
rtx  ,
rtx   
)

void validate_replace_rtx_group ( rtx  ,
rtx  ,
rtx   
)

Definition at line 663 of file recog.c.

References PATTERN, and validate_replace_rtx_1().

Referenced by optimize_reg_copy_3().

void validate_replace_src_group ( rtx  ,
rtx  ,
rtx   
)

bool validate_simplify_insn ( rtx  insn  ) 

int verify_changes ( int   ) 


Variable Documentation

Definition at line 21993 of file insn-output.c.

Definition at line 80 of file recog.c.

struct operand_alternative recog_op_alt[MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES]

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:44 2009 for Open64 by  doxygen 1.5.6