GCC Middle and Back End API Reference
|
#include "bconfig.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "errors.h"
#include "read-md.h"
#include "gensupport.h"
#include "hash-table.h"
#include "target-insns.def"
Data Structures | |
struct | insn_hasher |
Macros | |
#define | DEF_TARGET_INSN(INSN, ARGS) def_target_insn (#INSN, #ARGS); |
Functions | |
static bool | parse_argument (const char *p, const char **end_out, unsigned int *opno_out=0, bool *required_out=0) |
static void | def_target_insn (const char *name, const char *prototype) |
static void | add_insn (md_rtx_info *info) |
int | main (int argc, const char **argv) |
Variables | |
static hash_table< insn_hasher > * | insns |
static hash_table< nofree_string_hash > * | stubs |
static hash_map< nofree_string_hash, const char * > * | have_funcs |
#define DEF_TARGET_INSN | ( | INSN, | |
ARGS ) def_target_insn (#INSN, #ARGS); |
|
static |
Record the DEFINE_INSN or DEFINE_EXPAND described by INFO.
References md_rtx_info::def, error_at(), ggc_alloc(), insns, md_rtx_info::loc, and XSTR.
Referenced by main().
Output hook definitions for pattern NAME, which has target-insns.def prototype PROTOTYPE.
References end(), error(), error_at(), FATAL_EXIT_CODE, fputc(), gcc_assert, get_file_location(), get_pattern_stats(), ggc_alloc(), have_funcs, i, insns, maybe_eval_c_test(), parse_argument(), md_reader::print_c_condition(), rtx_reader_ptr, stats, stubs, XSTR, and XVEC.
References add_insn(), md_rtx_info::def, FATAL_EXIT_CODE, GET_CODE, ggc_alloc(), have_error, have_funcs, init_rtx_reader_args(), insns, progname, read_md_rtx(), stubs, and SUCCESS_EXIT_CODE.
|
static |
Return true if the part of the prototype at P is for an argument name. If so, point *END_OUT to the first character after the name. If OPNO_OUT is nonnull, set *OPNO_OUT to the number of the associated operand. If REQUIRED_OUT is nonnull, set *REQUIRED_OUT to whether the .md pattern is required to match the operand.
References ggc_alloc().
Referenced by def_target_insn().
|
static |
Records which C conditions have been wrapped in functions, as a mapping from the C condition to the function name.
Referenced by def_target_insn(), and main().
|
static |
All define_insns and define_expands, hashed by name.
Referenced by add_equal_note(), add_insn(), add_next_usage_insn(), add_to_inherit(), asan_clear_shadow(), asan_emit_allocas_unpoison(), asan_emit_stack_protection(), assign_parm_setup_reg(), change_sp_offset(), commit_one_edge_insertion(), compute_max_insns(), convert_mode_scalar(), cse_cc_succs(), def_target_insn(), delete_trivially_dead_insns(), emit_libcall_block(), emit_libcall_block_1(), emit_moves(), expand_absneg_bit(), expand_binop(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_call(), expand_copysign_bit(), expand_DIVMOD(), expand_fix(), expand_fixed_convert(), expand_float(), expand_phi_nodes(), expand_twoval_binop_libfunc(), expand_unop(), expmed_mult_highpart_optab(), hwasan_emit_untag_frame(), inherit_in_ebb(), init_insn_rhs_dead_pseudo_p(), init_loop_unswitch_info(), inline_string_cmp(), ira(), ira_update_equiv_info_by_shuffle_insn(), main(), mark_target_live_regs(), match_asm_constraints_1(), need_cmov_or_rewire(), prepare_float_lib_cmp(), process_address_1(), record_insns(), reorder_blocks_1(), replace_read(), resolve_shift_zext(), resolve_simple_move(), reverse_equiv_p(), should_duplicate_loop_header_p(), split_edge_and_insert(), split_if_necessary(), and vect_slp_bbs().
|
static |
Records the prototype suffix X for each invalid_X stub that has been generated.
Referenced by def_target_insn(), and main().