1 /* Comparsion of AO ref.
2    Copyright (C) 2020-2021 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