Home | History | Annotate | Line # | Download | only in gcc
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