summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-12-02 10:43:38 +0100
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-12-02 10:43:38 +0100
commit298cd0f3606f0cba028eca7cacaee70c53b93a65 (patch)
treed1c2c681d74b6af4489896a3671d71a6ca98a5b7
parent28dfabccb9454101cb88b654a8b4cd4ef420cede (diff)
undefined
-rw-r--r--gcc/ipa-type-escape-analysis.c8
-rw-r--r--gcc/ipa-type-escape-analysis.h10
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