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