osprey-gcc/gcc/recog.c File Reference

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.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 (rtx *, rtx, rtx, rtx)
static rtxfind_single_use_1 (rtx, rtx *)
static void validate_replace_src_1 (rtx *, void *)
static rtx split_insn (rtx)
void init_recog_no_volatile (void)
void init_recog (void)
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 (void)
int apply_change_group (void)
int num_validated_changes (void)
void cancel_changes (int num)
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)
void validate_replace_src_group (rtx from, rtx to, rtx insn)
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, enum machine_mode mode ATTRIBUTE_UNUSED)
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 (enum machine_mode mode ATTRIBUTE_UNUSED, 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 (rtx addr ATTRIBUTE_UNUSED)
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 (void)
int constrain_operands (int strict)
int reg_fits_class_p (rtx operand, enum reg_class cl, int offset, enum machine_mode mode)
void split_all_insns (int upd_life)
void split_all_insns_noflow (void)
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
int epilogue_completed
static change_tchanges
static int changes_allocated
static int num_changes = 0


Define Documentation

#define STACK_POP_CODE   POST_DEC

Definition at line 55 of file recog.c.

#define STACK_PUSH_CODE   PRE_INC

Definition at line 47 of file recog.c.


Function Documentation

int address_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 977 of file recog.c.

References memory_address_p().

int apply_change_group ( void   ) 

int asm_noperands ( rtx  body  ) 

Definition at line 1333 of file recog.c.

References ASM_OPERANDS_INPUT_LENGTH, ASM_OPERANDS_INPUT_VEC, GET_CODE, i, SET, SET_SRC, XVECEXP, and XVECLEN.

int asm_operand_ok ( rtx  op,
const char *  constraint 
)

void cancel_changes ( int  num  ) 

Definition at line 410 of file recog.c.

References i, INSN_CODE, change_t::loc, MEM_P, num_changes, change_t::old, and change_t::old_code.

int check_asm_operands ( rtx  x  ) 

int comparison_operator ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1322 of file recog.c.

References COMPARISON_P, and GET_MODE.

int const_double_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1108 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 
)

Definition at line 1092 of file recog.c.

References GET_CODE, INTVAL, and trunc_int_for_mode().

int constrain_operands ( int  strict  ) 

int constrain_operands_cached ( int  strict  ) 

Definition at line 1942 of file recog.c.

References constrain_operands(), and which_alternative.

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  ) 

void extract_insn ( rtx  insn  ) 

void extract_insn_cached ( rtx  insn  ) 

Definition at line 1923 of file recog.c.

References extract_insn(), and INSN_CODE.

rtx* find_constant_term_loc ( rtx p  ) 

Definition at line 1757 of file recog.c.

References CONST, CONSTANT_P, find_constant_term_loc(), GET_CODE, PLUS, and XEXP.

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

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

int general_operand ( rtx  op,
enum machine_mode  mode 
)

int if_test_bypass_p ( rtx  out_insn,
rtx  in_insn 
)

int immediate_operand ( rtx  op,
enum machine_mode  mode 
)

int indirect_operand ( rtx  op,
enum machine_mode  mode 
)

void init_recog ( void   ) 

Definition at line 105 of file recog.c.

References volatile_ok.

void init_recog_no_volatile ( void   ) 

Definition at line 99 of file recog.c.

References volatile_ok.

int insn_invalid_p ( rtx  insn  ) 

int memory_address_p ( enum machine_mode mode  ATTRIBUTE_UNUSED,
rtx  addr 
)

Definition at line 1250 of file recog.c.

References GO_IF_LEGITIMATE_ADDRESS, and mode.

int memory_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1266 of file recog.c.

References general_operand(), GET_CODE, GET_MODE, MEM_P, reload_completed, and SUBREG_REG.

int mode_dependent_address_p ( rtx addr  ATTRIBUTE_UNUSED  ) 

Definition at line 1909 of file recog.c.

References addr(), ATTRIBUTE_UNUSED_LABEL, and GO_IF_MODE_DEPENDENT_ADDRESS.

int nonimmediate_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1125 of file recog.c.

References CONSTANT_P, and general_operand().

int nonmemory_operand ( rtx  op,
enum machine_mode  mode 
)

int num_changes_pending ( void   ) 

Definition at line 292 of file recog.c.

References num_changes.

int num_validated_changes ( void   ) 

Definition at line 402 of file recog.c.

References num_changes.

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

int offsettable_memref_p ( rtx  op  ) 

Definition at line 1810 of file recog.c.

References GET_MODE, MEM_P, offsettable_address_p(), and XEXP.

int offsettable_nonstrict_memref_p ( rtx  op  ) 

Definition at line 1820 of file recog.c.

References GET_MODE, MEM_P, offsettable_address_p(), and XEXP.

int pmode_register_operand ( rtx  op,
enum machine_mode mode  ATTRIBUTE_UNUSED 
)

Definition at line 1043 of file recog.c.

References Pmode, and register_operand().

int pop_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1231 of file recog.c.

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

void preprocess_constraints ( void   ) 

int push_operand ( rtx  op,
enum machine_mode  mode 
)

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

int register_operand ( rtx  op,
enum machine_mode  mode 
)

int scratch_operand ( rtx  op,
enum machine_mode  mode 
)

Definition at line 1052 of file recog.c.

References FIRST_PSEUDO_REGISTER, GET_CODE, GET_MODE, REG_P, and REGNO.

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 3266 of file recog.c.

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

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

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

Definition at line 642 of file recog.c.

References apply_change_group(), PATTERN, and validate_replace_rtx_1().

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 651 of file recog.c.

References PATTERN, and validate_replace_rtx_1().

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

Definition at line 632 of file recog.c.

References apply_change_group(), and validate_replace_rtx_1().

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

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


Variable Documentation

change_t* changes [static]

Definition at line 167 of file recog.c.

int changes_allocated [static]

Definition at line 168 of file recog.c.

int num_changes = 0 [static]

Definition at line 170 of file recog.c.

Definition at line 74 of file recog.c.

struct operand_alternative recog_op_alt[MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES]

Definition at line 78 of file recog.c.

Definition at line 89 of file recog.c.

Definition at line 72 of file recog.c.

Definition at line 83 of file recog.c.


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