Home | History | Annotate | Line # | Download | only in gcc
      1 /* Comparsion of AO ref.
      2    Copyright (C) 2020-2022 Free Software Foundation, Inc.
      3 
      4    This file is part of GCC.
      5 
      6    GCC is free software; you can redistribute it and/or modify
      7    under the terms of the GNU General Public License as published by
      8    the Free Software Foundation; either version 3 of the License, or
      9    (at your option) any later version.
     10 
     11    GCC is distributed in the hope that it will be useful,
     12    but WITHOUT ANY WARRANTY; without even the implied warranty of
     13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14    GNU General Public License for more details.
     15 
     16    You should have received a copy of the GNU General Public License
     17    along with GCC; see the file COPYING3.  If not see
     18    <http://www.gnu.org/licenses/>.  */
     19 
     20 #ifndef TREE_SSA_ALIAS_COMPARE_H
     21 #define TREE_SSA_ALIAS_COMPARE_H
     22 
     23 class operand_compare;
     24 /* A class aggregating all connections and semantic equivalents
     25    for a given pair of semantic function candidates.  */
     26 class ao_compare : public operand_compare
     27 {
     28   public:
     29   enum ao_ref_diff
     30   {
     31     SEMANTICS = 1,
     32     BASE_ALIAS_SET = 2,
     33     REF_ALIAS_SET = 4,
     34     ACCESS_PATH = 8,
     35     DEPENDENCE_CLIQUE = 16
     36   };
     37   int compare_ao_refs (ao_ref *ref1, ao_ref *ref2, bool lto_streaming_safe,
     38 		       bool tbaa);
     39   void hash_ao_ref (ao_ref *ref, bool lto_streaming_safe, bool tbaa,
     40 		    inchash::hash &hstate);
     41 };
     42 
     43 #endif
     44