diff options
author | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-12-02 10:43:38 +0100 |
---|---|---|
committer | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-12-02 10:43:38 +0100 |
commit | 298cd0f3606f0cba028eca7cacaee70c53b93a65 (patch) | |
tree | d1c2c681d74b6af4489896a3671d71a6ca98a5b7 | |
parent | 28dfabccb9454101cb88b654a8b4cd4ef420cede (diff) |
undefined
-rw-r--r-- | gcc/ipa-type-escape-analysis.c | 8 | ||||
-rw-r--r-- | gcc/ipa-type-escape-analysis.h | 10 |
2 files changed, 7 insertions, 11 deletions
diff --git a/gcc/ipa-type-escape-analysis.c b/gcc/ipa-type-escape-analysis.c index 64a8e0206fc..a39d6f39f16 100644 --- a/gcc/ipa-type-escape-analysis.c +++ b/gcc/ipa-type-escape-analysis.c @@ -2440,7 +2440,8 @@ gimple_escaper::_init () tree decl = cnode->decl; gcc_assert (decl); - undefined.insert (decl); + //undefined.insert (decl); + undefined2.add (decl); } FOR_EACH_FUNCTION_WITH_GIMPLE_BODY (cnode) @@ -2449,7 +2450,8 @@ gimple_escaper::_init () cnode->get_untransformed_body (); tree decl = cnode->decl; gcc_assert (decl); - undefined.erase (decl); + //undefined.erase (decl); + undefined2.remove (decl); } } @@ -2639,7 +2641,7 @@ gimple_escaper::_walk_pre_gcall (gcall *s) type_stringifier stringifier; const bool _is_function_escaping = node ? is_function_escaping (node) : is_function_escaping (fn); - const bool is_undefined = undefined.find (fn) != undefined.end (); + const bool is_undefined = undefined2.contains (fn); log ("is undefined %s\n", is_undefined ? "t" : "f"); const bool _is_escaping = is_undefined || _is_function_escaping; diff --git a/gcc/ipa-type-escape-analysis.h b/gcc/ipa-type-escape-analysis.h index c84fdb63f93..15e54c7af6e 100644 --- a/gcc/ipa-type-escape-analysis.h +++ b/gcc/ipa-type-escape-analysis.h @@ -1043,8 +1043,8 @@ public: protected: /* Set of undefined functions, this set is filled with * functions obtained via FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. */ - typedef std::set<tree> undefset; - undefset undefined; + typedef hash_set<tree> undefset2; + undefset2 undefined2; /* Initializes undefined. */ void _init (); @@ -1130,7 +1130,6 @@ typedef hash_map<tree, unsigned> field_access_map2_t; // maps RECORD_TYPE -> (FIELD_DECL -> bitflag). typedef std::map<tree, field_access_map_t> record_field_map_t; -typedef std::map<tree, field_access_map2_t*> record_field_map3_t; typedef hash_map<tree, field_access_map2_t*> record_field_map4_t; // Class used to determine if a FIELD is read, written or never accessed. @@ -1157,7 +1156,6 @@ public: private: // maps RECORD -> (FIELD_DECL -> bitflag). - //record_field_map3_t _map3; record_field_map4_t _map4; // set of trees which are memoized and we don't need to look into them. @@ -1201,10 +1199,6 @@ private: // Stack to keep track of how current subexpression was reached. std::stack<tree> _stack; - // Holds main results. - //record_field_map_t record_field_map; - - // Mark FIELD_DECL as read. // If ADDR_EXPR is parent expression that means // The address of a field is taken. Mark |