#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"

Go to the source code of this file.
| int address_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| int apply_change_group | ( | void | ) |
Definition at line 301 of file recog.c.
References asm_noperands(), BB_DIRTY, BLOCK_FOR_INSN, cancel_changes(), basic_block_def::flags, gen_rtx_PARALLEL, GET_CODE, GET_MODE, i, insn_invalid_p(), INSN_P, MEM_P, memory_address_p(), NULL_RTX, num_changes, change_t::object, PATTERN, rtvec_alloc(), USE, validate_change(), XEXP, XVECEXP, and XVECLEN.
| 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 | |||
| ) |
Definition at line 1550 of file recog.c.
References address_operand(), c, CONST_DOUBLE_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_CONSTRAINT_P, CONSTANT_P, CONSTRAINT_LEN, EXTRA_ADDRESS_CONSTRAINT, EXTRA_CONSTRAINT_STR, EXTRA_MEMORY_CONSTRAINT, flag_pic, gcc_assert, general_operand(), GET_CODE, GET_MODE, GET_MODE_CLASS, INTVAL, ISDIGIT, LEGITIMATE_PIC_OPERAND_P, len, MEM_P, memory_operand(), MODE_VECTOR_FLOAT, NO_REGS, offsettable_nonstrict_memref_p(), REG_CLASS_FROM_CONSTRAINT, register_operand(), reload_completed, result, and XEXP.
| 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 | ) |
Definition at line 115 of file recog.c.
References alloca, asm_noperands(), asm_operand_ok(), c, constrain_operands(), decode_asm_operands(), extract_insn(), i, ISDIGIT, make_insn_raw(), NULL, operands, reload_completed, and which_alternative.
| int comparison_operator | ( | rtx | op, | |
| enum machine_mode | 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 | |||
| ) |
| int constrain_operands | ( | int | strict | ) |
Definition at line 2214 of file recog.c.
References ALL_REGS, c, cl(), CONST_DOUBLE_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_CONSTRAINT_P, CONSTANT_P, constrain_operands(), CONSTRAINT_LEN, end, EXTRA_ADDRESS_CONSTRAINT, EXTRA_CONSTRAINT_STR, EXTRA_MEMORY_CONSTRAINT, FIRST_PSEUDO_REGISTER, GENERAL_REGS, GET_CODE, GET_MODE, GET_MODE_CLASS, INTVAL, len, MAX_RECOG_OPERANDS, MEM_P, memory_address_p(), mode, MODE_VECTOR_FLOAT, NO_REGS, offset, offsettable_memref_p(), offsettable_nonstrict_memref_p(), OP_OUT, operands_match_p(), funny_match::other, p, REG_CLASS_FROM_CONSTRAINT, reg_fits_class_p(), REG_P, REGNO, reload_in_progress, safe_from_earlyclobber(), strict_memory_address_p(), strtoul(), SUBREG_BYTE, SUBREG_REG, subreg_regno_offset(), funny_match::this, UNARY_P, val, which_alternative, and XEXP.
| int constrain_operands_cached | ( | int | strict | ) |
| const char* decode_asm_operands | ( | rtx | body, | |
| rtx * | operands, | |||
| rtx ** | operand_locs, | |||
| const char ** | constraints, | |||
| enum machine_mode * | modes | |||
| ) |
Definition at line 1417 of file recog.c.
References ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_CONSTRAINT, ASM_OPERANDS_INPUT_LENGTH, ASM_OPERANDS_INPUT_MODE, ASM_OPERANDS_OUTPUT_CONSTRAINT, ASM_OPERANDS_TEMPLATE, GET_CODE, GET_MODE, i, SET, SET_DEST, SET_SRC, XSTR, XVECEXP, and XVECLEN.
Definition at line 1933 of file recog.c.
References constrain_operands(), extract_insn_cached(), fatal_insn_not_found, reload_completed, and which_alternative.
Definition at line 1953 of file recog.c.
References asm_noperands(), decode_asm_operands(), fatal_insn_not_found, gcc_assert, GET_CODE, GET_MODE, i, insn_extract(), MAX_RECOG_ALTERNATIVES, MAX_RECOG_OPERANDS, NULL, OP_IN, OP_INOUT, OP_OUT, p, PATTERN, recog_memoized, SET, SET_SRC, USE, which_alternative, and XVECEXP.
Definition at line 1757 of file recog.c.
References CONST, CONSTANT_P, find_constant_term_loc(), GET_CODE, PLUS, and XEXP.
Definition at line 823 of file recog.c.
References cc0_rtx, dead_or_set_p(), find_single_use_1(), INSN_P, JUMP_P, LABEL_P, LOG_LINKS, NEXT_INSN, next_nonnote_insn(), NONJUMP_INSN_P, PATTERN, REG_P, reload_completed, reload_in_progress, result, and XEXP.
Definition at line 712 of file recog.c.
References CONST, find_single_use_1(), GET_CODE, GET_MODE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, MEM, PC, REG_P, REGNO, result, SET, SET_DEST, SET_SRC, SUBREG_REG, UNITS_PER_WORD, x, XEXP, XVECEXP, and XVECLEN.
| int general_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 886 of file recog.c.
References CONSTANT_P, FIRST_PSEUDO_REGISTER, flag_pic, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, INTVAL, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, MEM, MEM_P, MEM_VOLATILE_P, memory_address_p(), MODE_FLOAT, MODE_INT, MODE_PARTIAL_INT, NO_REGS, REG, REGNO, REGNO_REG_CLASS, reload_completed, sub, SUBREG_BYTE, SUBREG_REG, trunc_int_for_mode(), volatile_ok, XEXP, and is::y.
| int immediate_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 1068 of file recog.c.
References CONSTANT_P, flag_pic, GET_CODE, GET_MODE, GET_MODE_CLASS, INTVAL, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, MODE_INT, MODE_PARTIAL_INT, and trunc_int_for_mode().
| int indirect_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 1289 of file recog.c.
References general_operand(), GET_CODE, GET_MODE, INTVAL, MEM_P, memory_operand(), offset, PLUS, Pmode, reload_completed, SUBREG_BYTE, SUBREG_REG, and XEXP.
| int insn_invalid_p | ( | rtx | insn | ) |
Definition at line 242 of file recog.c.
References add_clobbers(), added_clobbers_hard_reg_p(), check_asm_operands(), constrain_operands(), extract_insn(), gen_rtx_PARALLEL, GET_CODE, INSN_CODE, PATTERN, recog(), reload_completed, reload_in_progress, rtvec_alloc(), SET, and XVECEXP.
| int memory_address_p | ( | enum machine_mode mode | ATTRIBUTE_UNUSED, | |
| rtx | addr | |||
| ) |
| 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 | |||
| ) |
| int nonmemory_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 1133 of file recog.c.
References CONSTANT_P, FIRST_PSEUDO_REGISTER, flag_pic, general_operand(), GET_CODE, GET_MODE, GET_MODE_CLASS, INTVAL, LEGITIMATE_CONSTANT_P, LEGITIMATE_PIC_OPERAND_P, MEM_P, MODE_INT, MODE_PARTIAL_INT, NO_REGS, REG_P, REGNO, REGNO_REG_CLASS, reload_completed, SUBREG_REG, and trunc_int_for_mode().
| int num_changes_pending | ( | void | ) |
| int num_validated_changes | ( | void | ) |
| int offsettable_address_p | ( | int | strictp, | |
| enum machine_mode | mode, | |||
| rtx | y | |||
| ) |
Definition at line 1837 of file recog.c.
References BIGGEST_ALIGNMENT, BITS_PER_UNIT, CONSTANT_ADDRESS_P, find_constant_term_loc(), gen_rtx_LO_SUM, GET_CODE, GET_MODE, GET_MODE_ALIGNMENT, GET_MODE_SIZE, GET_RTX_CLASS, int, memory_address_p(), mode_dependent_address_p(), PLUS, plus_constant, RTX_AUTOINC, strict_memory_address_p(), XEXP, y1(), and is::z.
| int offsettable_memref_p | ( | rtx | op | ) |
| int offsettable_nonstrict_memref_p | ( | rtx | op | ) |
| int pmode_register_operand | ( | rtx | op, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED | |||
| ) |
| 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.
Definition at line 2050 of file recog.c.
References operand_alternative::anything_ok, c, operand_alternative::cl, cl(), operand_alternative::constraint, CONSTRAINT_LEN, operand_alternative::decmem_ok, operand_alternative::earlyclobber, end, EXTRA_ADDRESS_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT, GENERAL_REGS, i, operand_alternative::incmem_ok, int, operand_alternative::is_address, operand_alternative::matched, operand_alternative::matches, operand_alternative::memory_ok, memset, MODE_BASE_REG_CLASS, NO_REGS, operand_alternative::nonoffmem_ok, operand_alternative::offmem_ok, p, recog_op_alt, REG_CLASS_FROM_CONSTRAINT, reg_class_subunion, operand_alternative::reject, and strtoul().
| int push_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 1185 of file recog.c.
References GET_CODE, GET_MODE, GET_MODE_SIZE, INTVAL, MEM_P, PLUS, PUSH_ROUNDING, STACK_GROWS_DOWNWARD, stack_pointer_rtx, STACK_PUSH_CODE, and XEXP.
| int reg_fits_class_p | ( | rtx | operand, | |
| enum reg_class | cl, | |||
| int | offset, | |||
| enum machine_mode | mode | |||
| ) |
Definition at line 2602 of file recog.c.
References FIRST_PSEUDO_REGISTER, hard_regno_nregs, reg_class_contents, REGNO, and TEST_HARD_REG_BIT.
| int register_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 997 of file recog.c.
References FIRST_PSEUDO_REGISTER, general_operand(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, MEM_P, MODE_COMPLEX_FLOAT, MODE_COMPLEX_INT, MODE_FLOAT, NO_REGS, REG_CANNOT_CHANGE_MODE_P, REG_P, REGNO, REGNO_REG_CLASS, reload_completed, sub, and SUBREG_REG.
| int scratch_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| void split_all_insns | ( | int | upd_life | ) |
Definition at line 2660 of file recog.c.
References BARRIER_P, BB_END, BB_HEAD, blocks, changed, delete_insn_and_edges(), find_many_sub_basic_blocks(), find_reg_note(), FOR_EACH_BB_REVERSE, basic_block_def::index, INSN_P, last, last_basic_block, NEXT_INSN, NULL_RTX, PREV_INSN, PROP_DEATH_NOTES, REG_UNUSED, reload_completed, sbitmap_alloc(), sbitmap_free, sbitmap_resize(), sbitmap_zero(), SET_BIT, set_noop_p(), single_set, split_insn(), UPDATE_LIFE_GLOBAL_RM_NOTES, update_life_info(), and verify_flow_info().
Definition at line 2752 of file recog.c.
References delete_insn_and_edges(), get_insns(), INSN_P, NEXT_INSN, reload_completed, set_noop_p(), single_set, and split_insn().
Definition at line 2628 of file recog.c.
References cleanup_subreg_operands(), first, INSN_P, last, NEXT_INSN, NULL_RTX, PATTERN, PREV_INSN, reload_completed, SET_INSN_DELETED, and try_split().
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.
Definition at line 191 of file recog.c.
References apply_change_group(), changes_allocated, gcc_assert, INSN_CODE, change_t::loc, MAX_RECOG_OPERANDS, MEM_P, num_changes, change_t::object, change_t::old, change_t::old_code, rtx_equal_p(), and xrealloc().
Definition at line 642 of file recog.c.
References apply_change_group(), PATTERN, and validate_replace_rtx_1().
Definition at line 429 of file recog.c.
References adjust_address_nv, ASM_OPERANDS_INPUT_VEC, BITS_BIG_ENDIAN, BITS_PER_UNIT, BYTES_BIG_ENDIAN, COMMUTATIVE_ARITH_P, const0_rtx, EP_extv, EP_extzv, gcc_assert, GEN_INT, gen_rtx_CLOBBER, gen_rtx_fmt_ee(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_SIZE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, INTVAL, MEM_P, MEM_VOLATILE_P, MINUS, mode_dependent_address_p(), mode_for_extraction(), new_mode(), num_changes, offset, PLUS, pos(), REG_P, REGNO, rtx_equal_p(), SET, SET_DEST, SET_SRC, SIGN_EXTEND, simplify_gen_binary(), simplify_gen_unary(), simplify_subreg(), SUBREG_BYTE, SUBREG_REG, swap_commutative_operands_p(), swap_condition(), SWAPPABLE_OPERANDS_P, validate_change(), validate_replace_rtx_1(), x, XEXP, XVECEXP, and XVECLEN.
Definition at line 632 of file recog.c.
References apply_change_group(), and validate_replace_rtx_1().
Definition at line 665 of file recog.c.
References d, validate_replace_src_data::from, validate_replace_src_data::insn, validate_replace_src_data::to, and validate_replace_rtx_1().
Definition at line 677 of file recog.c.
References validate_replace_src_data::from, validate_replace_src_data::insn, note_uses(), PATTERN, validate_replace_src_data::to, and validate_replace_src_1().
int changes_allocated [static] |
Definition at line 92 of file recog.c.
Referenced by df_record_entry_block_defs(), df_record_exit_block_uses(), ia64_output_mi_thunk(), mark_regs_live_at_end(), rest_of_clean_state(), rest_of_handle_branch_target_load_optimize(), rest_of_handle_flow2(), rs6000_output_mi_thunk(), sh_output_mi_thunk(), and sparc_output_mi_thunk().
int num_changes = 0 [static] |
| struct operand_alternative recog_op_alt[MAX_RECOG_OPERANDS][MAX_RECOG_ALTERNATIVES] |
| int reload_completed |
| int volatile_ok |
1.5.6