|
GCC Middle and Back End API Reference
|
#include "config.h"#include "system.h"#include "coretypes.h"#include "backend.h"#include "rtl.h"#include "df.h"#include "rtl-iter.h"#include "rtl-ssa.h"#include "cfgcleanup.h"#include "tree-pass.h"#include "ordered-hash-map.h"#include "tree-dfa.h"#include "fold-const.h"#include "tree-hash-traits.h"#include "print-tree.h"#include "pair-fusion.h"
Data Structures | |
| struct | lfs_fields |
| struct | access_record |
| struct | access_group |
| struct | alt_base |
| struct | alias_walker |
| struct | pair_fusion_bb_info |
| struct | store_change_builder |
| struct | store_change_builder::change |
| class | def_walker< reverse > |
| class | store_walker< reverse, InsnPredicate > |
| class | load_walker< reverse > |
Macros | |
| #define | INCLUDE_ALGORITHM |
| #define | INCLUDE_FUNCTIONAL |
| #define | INCLUDE_LIST |
| #define | INCLUDE_TYPE_TRAITS |
| #define | INCLUDE_ARRAY |
Typedefs | |
| using | insn_list_t = std::list<insn_info *> |
Functions | |
| static rtx | drop_writeback (rtx mem) |
| static rtx | pair_mem_strip_offset (rtx mem, poly_int64 *offset) |
| static bool | any_pre_modify_p (rtx x) |
| static bool | any_post_modify_p (rtx x) |
| static int | encode_lfs (lfs_fields fields) |
| static lfs_fields | decode_lfs (int lfs) |
| static insn_info * | latest_hazard_before (insn_info *insn, rtx *ignore, insn_info *ignore_insn=nullptr, bool is_load_store=true) |
| static insn_info * | first_hazard_after (insn_info *insn, rtx *ignore) |
| static bool | ranges_overlap_p (const insn_range_info &r1, const insn_range_info &r2) |
| static insn_range_info | get_def_range (def_info *def) |
| static insn_range_info | def_downwards_move_range (def_info *def) |
| static insn_range_info | def_upwards_move_range (def_info *def) |
| static insn_info * | try_repurpose_store (insn_info *first, insn_info *second, const insn_range_info &move_range) |
| static rtx | gen_tombstone (void) |
| static rtx | filter_notes (rtx note, rtx result, bool *eh_region, rtx *fr_expr) |
| static rtx | combine_reg_notes (insn_info *i1, insn_info *i2, bool load_p) |
| static rtx | extract_writebacks (bool load_p, rtx pats[2], int changed) |
| static void | reset_debug_use (use_info *use) |
| static void | fixup_debug_use (obstack_watermark &attempt, use_info *use, def_info *def, rtx base, poly_int64 wb_offset) |
| static void | fixup_debug_uses_trailing_add (obstack_watermark &attempt, insn_info *pair_dst, insn_info *trailing_add, rtx writeback_effect) |
| static void | fixup_debug_uses (obstack_watermark &attempt, insn_info *insns[2], rtx orig_rtl[2], insn_info *pair_dst, insn_info *trailing_add, bool load_p, int writeback, rtx writeback_effect, unsigned base_regno) |
| static bool | store_modifies_mem_p (rtx mem, insn_info *store_insn, int &budget) |
| static bool | load_modified_by_store_p (insn_info *load, insn_info *store, int &budget) |
| static void | dump_insn_list (FILE *f, const insn_list_t &l) |
| DEBUG_FUNCTION void | debug (const insn_list_t &l) |
| #define INCLUDE_ALGORITHM |
| #define INCLUDE_ARRAY |
| #define INCLUDE_FUNCTIONAL |
| #define INCLUDE_LIST |
| #define INCLUDE_TYPE_TRAITS |
| using insn_list_t = std::list<insn_info *> |
References GET_CODE.
Referenced by extract_writebacks(), and pair_fusion_bb_info::track_access().
References GET_CODE.
Referenced by extract_writebacks().
References alloc_reg_note(), copy_rtx(), filter_notes(), gen_rtvec(), i1, i2, NULL_RTX, PATTERN(), REG_NOTES, and RTX_FRAME_RELATED_P.
Referenced by pair_fusion_bb_info::fuse_pair().
| DEBUG_FUNCTION void debug | ( | const insn_list_t & | l | ) |
References dump_insn_list().
|
static |
Referenced by pair_fusion_bb_info::transform_for_base().
|
static |
References dyn_cast(), get_def_range(), and use::insn.
Referenced by try_repurpose_store().
|
static |
References dyn_cast(), and use::insn.
Referenced by try_repurpose_store().
References change_address(), gcc_unreachable, GET_CODE, GET_MODE, GET_MODE_SIZE(), plus_constant(), side_effects_p(), and XEXP.
Referenced by pair_fusion_bb_info::fuse_pair().
|
static |
Referenced by debug(), and pair_fusion_bb_info::merge_pairs().
|
static |
References exact_log2(), fields, and gcc_checking_assert.
Referenced by pair_fusion_bb_info::track_access(), and pair_fusion_bb_info::track_via_mem_expr().
References any_post_modify_p(), any_pre_modify_p(), change_address(), changed, gcc_assert, gcc_checking_assert, GET_CODE, GET_MODE, GET_RTX_CLASS, i, known_eq, NULL_RTX, pair_mem_strip_offset(), plus_constant(), REG_P, RTX_AUTOINC, rtx_equal_p(), and XEXP.
Referenced by pair_fusion_bb_info::fuse_pair().
References alloc_reg_note(), copy_rtx(), gcc_assert, gcc_unreachable, REG_NOTE_KIND, and XEXP.
Referenced by combine_reg_notes().
|
static |
References dyn_cast(), gcc_checking_assert, HARD_REGISTER_NUM_P, use::insn, PATTERN(), and refers_to_regno_p().
Referenced by pair_fusion_bb_info::try_fuse_pair().
|
static |
References insn_propagation::apply_to_pattern(), as_a(), crtl, dump_file, insn_propagation::failure_reason, gcc_checking_assert, GET_MODE, use::insn, INSN_VAR_LOCATION_LOC, plus_constant(), pp_formatted_text(), pp_string(), print_dec(), REG_P, REGNO, reset_debug_use(), and def::uses.
Referenced by fixup_debug_uses(), and fixup_debug_uses_trailing_add().
|
static |
References as_a(), crtl, defs, dump_file, dyn_cast(), fixup_debug_use(), fixup_debug_uses_trailing_add(), gcc_assert, gcc_checking_assert, GET_CODE, GET_RTX_CLASS, i, use::insn, insns, iterate_safely(), NULL_RTX, pair_mem_strip_offset(), REG_P, REGNO, reset_debug_use(), RTX_AUTOINC, safe_dyn_cast(), and XEXP.
Referenced by pair_fusion_bb_info::fuse_pair().
|
static |
References defs, fixup_debug_use(), gcc_checking_assert, use::insn, iterate_safely(), rtx_equal_p(), safe_dyn_cast(), SET_DEST, SET_SRC, and strip_offset().
Referenced by fixup_debug_uses(), and pair_fusion::try_promote_writeback().
|
static |
References gen_rtx_MEM().
Referenced by pair_fusion_bb_info::fuse_pair().
|
static |
References last.
Referenced by def_downwards_move_range().
|
static |
References cfun, dyn_cast(), find_reg_note(), gcc_checking_assert, HARD_REGISTER_NUM_P, use::insn, NULL_RTX, PATTERN(), and refers_to_regno_p().
Referenced by pair_fusion::find_trailing_add(), and pair_fusion_bb_info::try_fuse_pair().
|
static |
References CALL_P, dump_file, FOR_EACH_SUBRTX_VAR, gcc_checking_assert, MEM_P, memory_modified_in_insn_p(), and PATTERN().
Referenced by load_walker< reverse >::alias_conflict_p().
|
static |
References gcc_checking_assert, GET_CODE, GET_MODE, GET_MODE_SIZE(), REG_P, rtx_equal_p(), strip_offset(), and XEXP.
Referenced by extract_writebacks(), fixup_debug_uses(), pair_fusion::get_viable_bases(), and pair_fusion_bb_info::track_access().
|
static |
Referenced by do_structure_copy(), try_repurpose_store(), and vect_slp_analyze_instance_dependence().
|
static |
References crtl, gen_rtx_UNKNOWN_VAR_LOC, use::insn, and INSN_VAR_LOCATION_LOC.
Referenced by fixup_debug_use(), and fixup_debug_uses().
References dump_file, memory_modified_in_insn_p(), and print_simple_rtl().
Referenced by store_walker< reverse, InsnPredicate >::alias_conflict_p().
|
static |
References def_downwards_move_range(), def_upwards_move_range(), defs, and ranges_overlap_p().
Referenced by pair_fusion_bb_info::fuse_pair().