alias.h revision 1.5 1 1.1 mrg /* Exported functions from alias.c
2 1.5 mrg Copyright (C) 2004-2015 Free Software Foundation, Inc.
3 1.1 mrg
4 1.1 mrg This file is part of GCC.
5 1.1 mrg
6 1.1 mrg GCC is free software; you can redistribute it and/or modify it under
7 1.1 mrg the terms of the GNU General Public License as published by the Free
8 1.1 mrg Software Foundation; either version 3, or (at your option) any later
9 1.1 mrg version.
10 1.1 mrg
11 1.1 mrg GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 1.1 mrg WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 1.1 mrg FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 1.1 mrg for more details.
15 1.1 mrg
16 1.1 mrg You should have received a copy of the GNU General Public License
17 1.1 mrg along with GCC; see the file COPYING3. If not see
18 1.1 mrg <http://www.gnu.org/licenses/>. */
19 1.1 mrg
20 1.1 mrg #ifndef GCC_ALIAS_H
21 1.1 mrg #define GCC_ALIAS_H
22 1.1 mrg
23 1.1 mrg /* The type of an alias set. Code currently assumes that variables of
24 1.1 mrg this type can take the values 0 (the alias set which aliases
25 1.1 mrg everything) and -1 (sometimes indicating that the alias set is
26 1.1 mrg unknown, sometimes indicating a memory barrier) and -2 (indicating
27 1.1 mrg that the alias set should be set to a unique value but has not been
28 1.1 mrg set yet). */
29 1.1 mrg typedef int alias_set_type;
30 1.1 mrg
31 1.1 mrg extern alias_set_type new_alias_set (void);
32 1.1 mrg extern alias_set_type get_alias_set (tree);
33 1.1 mrg extern alias_set_type get_deref_alias_set (tree);
34 1.1 mrg extern alias_set_type get_varargs_alias_set (void);
35 1.1 mrg extern alias_set_type get_frame_alias_set (void);
36 1.5 mrg extern tree component_uses_parent_alias_set_from (const_tree);
37 1.1 mrg extern bool alias_set_subset_of (alias_set_type, alias_set_type);
38 1.1 mrg extern void record_alias_subset (alias_set_type, alias_set_type);
39 1.1 mrg extern void record_component_aliases (tree);
40 1.1 mrg extern int alias_sets_conflict_p (alias_set_type, alias_set_type);
41 1.1 mrg extern int alias_sets_must_conflict_p (alias_set_type, alias_set_type);
42 1.1 mrg extern int objects_must_conflict_p (tree, tree);
43 1.3 mrg extern int nonoverlapping_memrefs_p (const_rtx, const_rtx, bool);
44 1.5 mrg tree reference_alias_ptr_type (tree);
45 1.5 mrg bool alias_ptr_types_compatible_p (tree, tree);
46 1.1 mrg
47 1.1 mrg /* This alias set can be used to force a memory to conflict with all
48 1.1 mrg other memories, creating a barrier across which no memory reference
49 1.1 mrg can move. Note that there are other legacy ways to create such
50 1.1 mrg memory barriers, including an address of SCRATCH. */
51 1.1 mrg #define ALIAS_SET_MEMORY_BARRIER ((alias_set_type) -1)
52 1.1 mrg
53 1.1 mrg #endif /* GCC_ALIAS_H */
54