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