Mercurial > hg > CbC > CbC_gcc
diff gcc/ipa-icf.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/ipa-icf.h Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/ipa-icf.h Thu Oct 25 07:37:49 2018 +0900 @@ -1,5 +1,5 @@ /* Interprocedural semantic function equality pass - Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copyright (C) 2014-2018 Free Software Foundation, Inc. Contributed by Jan Hubicka <hubicka@ucw.cz> and Martin Liska <mliska@suse.cz> @@ -141,6 +141,8 @@ unsigned int index; }; +typedef std::pair<symtab_node *, symtab_node *> symtab_pair; + /* Semantic item is a base class that encapsulates all shared functionality for both semantic function and variable items. */ class sem_item @@ -253,9 +255,6 @@ symtab_node *n2, bool address); - /* Compare two attribute lists. */ - static bool compare_attributes (const_tree list1, const_tree list2); - /* Hash properties compared by compare_referenced_symbol_properties. */ void hash_referenced_symbol_properties (symtab_node *ref, inchash::hash &hstate, @@ -279,6 +278,9 @@ /* Initialize internal data structures. Bitmap STACK is used for bitmap memory allocation process. */ void setup (bitmap_obstack *stack); + + /* Because types can be arbitrarily large, avoid quadratic bottleneck. */ + static hash_map<const_tree, hashval_t> m_type_hash_cache; }; // class sem_item class sem_function: public sem_item @@ -522,9 +524,6 @@ /* Gets a congruence class group based on given HASH value and TYPE. */ congruence_class_group *get_group_by_hash (hashval_t hash, sem_item_type type); - - /* Because types can be arbitrarily large, avoid quadratic bottleneck. */ - hash_map<const_tree, hashval_t> m_type_hash_cache; private: /* For each semantic item, append hash values of references. */ @@ -563,6 +562,12 @@ processed. */ bool merge_classes (unsigned int prev_class_count); + /* Fixup points to analysis info. */ + void fixup_points_to_sets (void); + + /* Fixup points to set PT. */ + void fixup_pt_set (struct pt_solution *pt); + /* Adds a newly created congruence class CLS to worklist. */ void worklist_push (congruence_class *cls); @@ -632,6 +637,10 @@ /* Bitmap stack. */ bitmap_obstack m_bmstack; + + /* Vector of merged variables. Needed for fixup of points-to-analysis + info. */ + vec <symtab_pair> m_merged_variables; }; // class sem_item_optimizer } // ipa_icf namespace