#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "rtl.h"#include "tree.h"#include "tm_p.h"#include "function.h"#include "alias.h"#include "emit-rtl.h"#include "regs.h"#include "hard-reg-set.h"#include "basic-block.h"#include "flags.h"#include "output.h"#include "toplev.h"#include "cselib.h"#include "splay-tree.h"#include "ggc.h"#include "langhooks.h"#include "timevar.h"#include "target.h"#include "cgraph.h"#include "varray.h"#include "tree-pass.h"#include "ipa-type-escape.h"#include "gt-alias.h"

Go to the source code of this file.
| #define DIFFERENT_ALIAS_SETS_P | ( | MEM1, | |||
| MEM2 | ) | mems_in_disjoint_alias_sets_p (MEM1, MEM2) |
| #define REG_BASE_VALUE | ( | X | ) |
| typedef struct alias_set_entry* alias_set_entry |
Definition at line 1598 of file alias.c.
References canon_rtx(), GEN_INT, gen_rtx_PLUS, GET_CODE, GET_MODE, offset, and XEXP.
Definition at line 1963 of file alias.c.
References BITS_PER_UNIT, component_ref_field_offset(), DECL_FIELD_BIT_OFFSET, GEN_INT, host_integerp(), HOST_WIDE_INT, INTVAL, NULL_RTX, TREE_CODE, tree_low_cst(), and TREE_OPERAND.
| int alias_sets_conflict_p | ( | HOST_WIDE_INT | set1, | |
| HOST_WIDE_INT | set2 | |||
| ) |
Definition at line 299 of file alias.c.
References alias_set_entry::children, get_alias_set_entry(), alias_set_entry::has_zero_child, and splay_tree_lookup().
| int alias_sets_might_conflict_p | ( | HOST_WIDE_INT | set1, | |
| HOST_WIDE_INT | set2 | |||
| ) |
| static int aliases_everything_p | ( | rtx | mem | ) | [static] |
| static int base_alias_check | ( | rtx | x, | |
| rtx | y, | |||
| enum machine_mode | x_mode, | |||
| enum machine_mode | y_mode | |||
| ) | [static] |
Definition at line 1491 of file alias.c.
References AND, canon_rtx(), find_base_term(), flag_argument_noalias, flag_expensive_optimizations, GET_CODE, GET_MODE, GET_MODE_UNIT_SIZE, INTVAL, Pmode, rtx_equal_p(), and XEXP.
Definition at line 1151 of file alias.c.
References canon_rtx(), gen_rtx_PLUS, GET_CODE, GET_MODE, get_reg_known_value(), INTVAL, MEM, MEM_P, PLUS, plus_constant, REG, REG_P, REGNO, replace_equiv_address_nv(), x0, x1, and XEXP.
| int canon_true_dependence | ( | rtx | mem, | |
| enum machine_mode | mem_mode, | |||
| rtx | mem_addr, | |||
| rtx | x, | |||
| int(*)(rtx, int) | varies | |||
| ) |
Definition at line 2219 of file alias.c.
References ALIAS_SET_MEMORY_BARRIER, aliases_everything_p(), AND, base_alias_check(), canon_rtx(), DIFFERENT_ALIAS_SETS_P, fixed_scalar_and_varying_struct_p(), get_addr(), GET_CODE, GET_MODE, GET_MODE_SIZE, MEM_ALIAS_SET, MEM_READONLY_P, MEM_VOLATILE_P, memrefs_conflict_p(), nonoverlapping_memrefs_p(), SIZE_FOR_MODE, and XEXP.
Definition at line 436 of file alias.c.
References DECL_NONADDRESSABLE_P, get_alias_set(), handled_component_p(), TREE_CODE, TREE_OPERAND, TREE_TYPE, and TYPE_NONALIASED_COMPONENT.
Definition at line 2628 of file alias.c.
References free(), ggc_free(), reg_known_equiv_p, and reg_known_value.
Definition at line 383 of file alias.c.
References d1, DECL_BASED_ON_RESTRICT_P, DECL_GET_RESTRICT_BASE, DECL_P, error_mark_node, find_base_decl(), POINTER_TYPE_P, tcc_binary, tcc_unary, TREE_CODE, TREE_CODE_CLASS, TREE_OPERAND, and TREE_TYPE.
Definition at line 1362 of file alias.c.
References AND, CONST, CONSTANT_P, convert_memory_address(), cselib_val, CSELIB_VAL_PTR, FIND_BASE_TERM, find_base_term(), GET_CODE, GET_MODE, GET_MODE_SIZE, INTVAL, MINUS, pic_offset_table_rtx, PLUS, Pmode, REG, REG_BASE_VALUE, REG_P, REG_POINTER, SIGN_EXTEND, tmp1, tmp2, TRUNCATE, val, and XEXP.
Definition at line 792 of file alias.c.
References AND, arg_pointer_rtx, CONST, CONSTANT_P, convert_memory_address(), find_base_value(), fixed_regs, gen_rtx_ADDRESS, GET_CODE, GET_MODE, GET_MODE_SIZE, INTVAL, MEM, MINUS, PLUS, Pmode, REG, REG_N_SETS, REG_P, REG_POINTER, REGNO, SIGN_EXTEND, TRUNCATE, VEC_index, VEC_length, and XEXP.
Definition at line 1332 of file alias.c.
References find_symbolic_term(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, OBJECT_P, and XEXP.
| static rtx fixed_scalar_and_varying_struct_p | ( | rtx | mem1, | |
| rtx | mem2, | |||
| rtx | mem1_addr, | |||
| rtx | mem2_addr, | |||
| int(*)(rtx, int) | varies_p | |||
| ) | [static] |
Definition at line 1853 of file alias.c.
References flag_strict_aliasing, MEM_IN_STRUCT_P, MEM_SCALAR_P, and NULL_RTX.
Definition at line 1571 of file alias.c.
References CONSTANT_P, cselib_val, CSELIB_VAL_PTR, GET_CODE, MEM, MEM_P, REG, and REG_P.
| HOST_WIDE_INT get_alias_set | ( | tree | t | ) |
Definition at line 476 of file alias.c.
References AGGREGATE_TYPE_P, can_address_p(), COMPLEX_TYPE, component_uses_parent_alias_set(), DECL_POINTER_ALIAS_SET, DECL_POINTER_ALIAS_SET_KNOWN_P, DECL_RTL, DECL_RTL_SET_P, error_mark_node, find_base_decl(), find_placeholder(), flag_strict_aliasing, get_alias_set(), GET_CODE, handled_component_p(), HOST_WIDE_INT, INDIRECT_REF_P, MEM, MEM_ALIAS_SET, MEM_P, new_alias_set(), record_alias_subset(), record_component_aliases(), STRIP_NOPS, TREE_CODE, TREE_OPERAND, TREE_TYPE, TYPE_ALIAS_SET, TYPE_ALIAS_SET_KNOWN_P, TYPE_MAIN_VARIANT, TYPE_P, and TYPE_REF_CAN_ALIAS_ALL.
| static alias_set_entry get_alias_set_entry | ( | HOST_WIDE_INT | ) | [static] |
| bool get_reg_known_equiv_p | ( | unsigned int | regno | ) |
| rtx get_reg_known_value | ( | unsigned int | regno | ) |
| struct alias_set_entry GTY | ( | () | ) | [read, write] |
Definition at line 131 of file alias.c.
References alias_set_entry::alias_set, alias_set_entry::children, GTY, alias_set_entry::has_zero_child, and HOST_WIDE_INT.
Definition at line 2413 of file alias.c.
References base, changed, char, find_reg_note(), flag_unroll_loops, free(), gcc_assert, GET_CODE, get_insns(), get_reg_known_value(), ggc_alloc_cleared, ggc_calloc(), i, insn, INSN_P, int, INTVAL, MAX_ALIAS_LOOP_PASSES, max_reg_num(), memcpy, memset, NEXT_INSN, NOTE_INSN_FUNCTION_BEG, NOTE_LINE_NUMBER, NOTE_P, note_stores(), NULL, NULL_RTX, PATTERN, PLUS, plus_constant, prologue_epilogue_contains(), record_set(), REG, REG_EQUAL, REG_EQUIV, reg_known_equiv_p, reg_known_value, REG_N_SETS, REG_NOALIAS, REG_NOTE_KIND, REG_NOTES, reg_overlap_mentioned_p(), REG_P, REGNO, regno_reg_rtx, reload_completed, rtx_equal_p(), rtx_varies_p(), SET, SET_DEST, set_reg_known_equiv_p(), set_reg_known_value(), SET_SRC, single_set, src, timevar_pop, timevar_push, ui, VEC_address, VEC_index, VEC_length, VEC_replace, VEC_safe_grow, VEC_truncate, xcalloc(), XEXP, xmalloc(), XNEWVEC, and xrealloc().
Definition at line 2358 of file alias.c.
References ARG_POINTER_REGNUM, arg_pointer_rtx, FRAME_POINTER_REGNUM, frame_pointer_rtx, FUNCTION_ARG_REGNO_P, gen_rtx_ADDRESS, gen_rtx_REG(), HARD_FRAME_POINTER_REGNUM, hard_frame_pointer_rtx, HARD_REGNO_MODE_OK, i, OUTGOING_REGNO, Pmode, splay_tree_compare_ints(), splay_tree_new(), STACK_POINTER_REGNUM, and stack_pointer_rtx.
| static int insert_subset_children | ( | splay_tree_node | node, | |
| void * | data | |||
| ) | [static] |
Definition at line 289 of file alias.c.
References splay_tree_node_s::key, splay_tree_insert(), and splay_tree_node_s::value.
Definition at line 2387 of file alias.c.
References anti_dependence(), MEM_P, and output_dependence().
Definition at line 2400 of file alias.c.
References INSN_P, memory_modified_1(), note_stores(), and PATTERN.
Definition at line 1650 of file alias.c.
References addr_side_effect_eval(), AND, canon_rtx(), CONST, CONSTANT_P, get_addr(), GET_CODE, INTVAL, memrefs_conflict_p(), PLUS, rtx_equal_for_memref_p(), x0, x1, XEXP, y0(), and y1().
Definition at line 270 of file alias.c.
References alias_sets_conflict_p(), flag_strict_aliasing, gcc_assert, and MEM_ALIAS_SET.
| HOST_WIDE_INT new_alias_set | ( | void | ) |
Definition at line 629 of file alias.c.
References flag_strict_aliasing, HOST_WIDE_INT, VEC_length, and VEC_safe_push.
Definition at line 1893 of file alias.c.
References DECL_FIELD_CONTEXT, TREE_CODE, TREE_OPERAND, and TYPE_MAIN_VARIANT.
Definition at line 1993 of file alias.c.
References adjust_offset_for_component_ref(), CONSTANT_P, DECL_FIELD_CONTEXT, decl_for_component_ref(), DECL_P, DECL_RTL, flag_argument_noalias, GET_CODE, GET_MODE, GET_MODE_SIZE, HOST_WIDE_INT, INDIRECT_REF_P, int, INTVAL, ipa_type_escape_field_does_not_clobber_p(), MEM_EXPR, MEM_OFFSET, MEM_P, MEM_SIZE, nonoverlapping_component_refs_p(), PLUS, POINTER_TYPE_P, REG_P, REGNO, REGNO_PTR_FRAME_P, rtx_equal_p(), TREE_CODE, TREE_OPERAND, TREE_TYPE, and XEXP.
Definition at line 350 of file alias.c.
References get_alias_set(), HOST_WIDE_INT, readonly_fields_p(), TYPE_READONLY, and TYPE_VOLATILE.
| static void record_alias_subset | ( | HOST_WIDE_INT | superset, | |
| HOST_WIDE_INT | subset | |||
| ) | [static] |
Definition at line 626 of file alias.c.
References abort, alias_set_entry::alias_set, alias_set_entry::children, get_alias_set_entry(), alias_set_entry::has_zero_child, insert_subset_children(), splay_tree_compare_ints(), splay_tree_foreach(), splay_tree_insert(), splay_tree_new(), and xmalloc().
Referenced by get_alias_set(), and record_component_aliases().
Definition at line 710 of file alias.c.
References BINFO_BASE_ITERATE, BINFO_TYPE, COMPLEX_TYPE, DECL_NONADDRESSABLE_P, get_alias_set(), HOST_WIDE_INT, i, NULL, record_alias_subset(), TREE_CHAIN, TREE_CODE, TREE_TYPE, TREE_VEC_ELT, TREE_VEC_LENGTH, TYPE_BINFO, TYPE_BINFO_BASETYPES, TYPE_FIELDS, and TYPE_NONALIASED_COMPONENT.
Definition at line 960 of file alias.c.
References AND, find_base_value(), fixed_regs, gcc_assert, GEN_INT, gen_rtx_ADDRESS, GET_CODE, GET_MODE, hard_regno_nregs, MINUS, n, NULL_RTX, PLUS, Pmode, REG_P, REGNO, SET_SRC, src, VEC_length, and XEXP.
Definition at line 1195 of file alias.c.
References canon_rtx(), COMMUTATIVE_P, gcc_unreachable, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, NON_COMMUTATIVE_P, PLUS, REG, REGNO, rtx_equal_for_memref_p(), strcmp(), UNARY_P, XEXP, XINT, XSTR, XVECEXP, and XVECLEN.
| int true_dependence | ( | rtx | mem, | |
| enum machine_mode | mem_mode, | |||
| rtx | x, | |||
| int(*)(rtx, int) | varies | |||
| ) |
Definition at line 2142 of file alias.c.
References ALIAS_SET_MEMORY_BARRIER, aliases_everything_p(), AND, base, base_alias_check(), canon_rtx(), CONSTANT_POOL_ADDRESS_P, DIFFERENT_ALIAS_SETS_P, find_base_term(), fixed_scalar_and_varying_struct_p(), get_addr(), GET_CODE, GET_MODE, GET_MODE_SIZE, MEM_ALIAS_SET, MEM_READONLY_P, MEM_VOLATILE_P, memrefs_conflict_p(), nonoverlapping_memrefs_p(), SIZE_FOR_MODE, and XEXP.
Definition at line 2280 of file alias.c.
References ALIAS_SET_MEMORY_BARRIER, aliases_everything_p(), base, base_alias_check(), canon_rtx(), CONSTANT_POOL_ADDRESS_P, DIFFERENT_ALIAS_SETS_P, find_base_term(), fixed_scalar_and_varying_struct_p(), get_addr(), GET_CODE, GET_MODE, MEM_ALIAS_SET, MEM_READONLY_P, MEM_VOLATILE_P, memrefs_conflict_p(), nonoverlapping_memrefs_p(), rtx_addr_varies_p(), SIZE_FOR_MODE, and XEXP.
bool memory_modified [static] |
1.5.6