diff options
author | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-12-02 16:02:55 +0100 |
---|---|---|
committer | Erick Ochoa <erick.ochoa@theobroma-systems.com> | 2020-12-02 16:02:55 +0100 |
commit | 294fc5b1b29f0290ab9b70763cee4aae8df5fd68 (patch) | |
tree | a45196316d83c8ef04fa41e9abdc5d53932d1aea | |
parent | 54297d91d8bf09929f80de79b84b8ed40888c67b (diff) |
std::stack<tree> -> vec<tree>
-rw-r--r-- | gcc/ipa-dfe.c | 50 | ||||
-rw-r--r-- | gcc/ipa-dfe.h | 12 | ||||
-rw-r--r-- | gcc/ipa-field-reorder.c | 8 |
3 files changed, 35 insertions, 35 deletions
diff --git a/gcc/ipa-dfe.c b/gcc/ipa-dfe.c index b3352a94721..342372490d7 100644 --- a/gcc/ipa-dfe.c +++ b/gcc/ipa-dfe.c @@ -479,7 +479,7 @@ get_new_identifier (tree type, const char *suffix) void type_reconstructor::_walk_ARRAY_TYPE_pre (tree t) { - for_reference.push (t); + for_reference2.safe_push(t); set_is_not_modified_yet (t); tree _t = tree_to_tree (t); @@ -493,17 +493,17 @@ type_reconstructor::_walk_ARRAY_TYPE_pre (tree t) TYPE_MIN_VALUE (copy_domain) = copy_node (min); TYPE_MAX_VALUE (copy_domain) = copy_node (max); } - in_progress.push (copy); + in_progress2.safe_push (copy); } void type_reconstructor::_walk_ARRAY_TYPE_post (tree t) { - tree t2 = for_reference.top (); + tree t2 = for_reference2.last (); gcc_assert (t2 == t); - for_reference.pop (); - tree copy = in_progress.top (); - in_progress.pop (); + for_reference2.pop (); + tree copy = in_progress2.last (); + in_progress2.pop (); bool is_modified = get_is_modified (t); @@ -544,22 +544,22 @@ type_reconstructor::_walk_ARRAY_TYPE_post (tree t) void type_reconstructor::_walk_POINTER_TYPE_pre (tree t) { - for_reference.push (t); + for_reference2.safe_push (t); set_is_not_modified_yet (t); tree _t = tree_to_tree (t); tree copy = build_variant_type_copy (_t); - in_progress.push (copy); + in_progress2.safe_push (copy); } void type_reconstructor::_walk_POINTER_TYPE_post (tree t) { - tree t2 = for_reference.top (); + tree t2 = for_reference2.last (); gcc_assert (t2 == t); - for_reference.pop (); - tree copy = in_progress.top (); - in_progress.pop (); + for_reference2.pop (); + tree copy = in_progress2.last (); + in_progress2.pop (); bool is_modified = get_is_modified (t); @@ -596,24 +596,24 @@ type_reconstructor::_walk_RECORD_TYPE_pre (tree t) } set_is_not_modified_yet (t); - for_reference.push (t); + for_reference2.safe_push (t); // We don't know if we will modify this type t // So, let's make a copy. Just in case. tree _t = tree_to_tree (t); tree copy = build_variant_type_copy (_t); - in_progress.push (copy); + in_progress2.safe_push (copy); field_list2_stack.push (vNULL); } void type_reconstructor::_walk_RECORD_TYPE_post (tree t) { - tree t2 = for_reference.top (); + tree t2 = for_reference2.last (); gcc_assert (t2 == t); - for_reference.pop (); + for_reference2.pop (); - tree copy = in_progress.top (); - in_progress.pop (); + tree copy = in_progress2.last (); + in_progress2.pop (); field_tuple_list2_t field_tuple_list2 = field_list2_stack.top (); field_list2_stack.pop (); @@ -697,7 +697,7 @@ type_reconstructor::_walk_RECORD_TYPE_post (tree t) void type_reconstructor::_walk_field_pre (tree t) { - for_reference.push (t); + for_reference2.safe_push (t); // We don't know if we will rewrite the field // that we are working on. So proactively, let's make // a copy. @@ -707,23 +707,23 @@ type_reconstructor::_walk_field_pre (tree t) TREE_TYPE (copy) = type_copy; // To communicate this field to the other methods, // let's put it in the "in_progress" stack. - in_progress.push (copy); + in_progress2.safe_push (copy); } void type_reconstructor::_walk_field_post (tree t) { - tree t2 = for_reference.top (); + tree t2 = for_reference2.last (); gcc_assert (t2 == t); - for_reference.pop (); + for_reference2.pop (); // Let's get the copy we were working on. - tree copy = in_progress.top (); + tree copy = in_progress2.last (); // Let's put the stack in the same position... - in_progress.pop (); + in_progress2.pop (); // What record does this field belongs to? - tree record = for_reference.top (); + tree record = for_reference2.last (); field_offsets_t *field_offsets = _records2->get(record); if (!field_offsets) return; diff --git a/gcc/ipa-dfe.h b/gcc/ipa-dfe.h index 74512c6e83f..8fd8a76eeaa 100644 --- a/gcc/ipa-dfe.h +++ b/gcc/ipa-dfe.h @@ -71,7 +71,7 @@ class type_reconstructor : public type_walker { public: type_reconstructor (record_field_offset_map_t records, const char *suffix) - : _suffix (suffix) + : _suffix (suffix), in_progress2(vNULL), for_reference2(vNULL) { _reorg_map2 = new reorg_record_map2_t; _reorg_fields2 = new reorg_field_map2_t; @@ -106,13 +106,14 @@ public: typedef hash_map<tree, bool> is_modified_map2_t; protected: - const char *get_new_suffix (); + // The new suffix + const char *_suffix; // Modifications to the current sub_type - std::stack<tree> in_progress; + vec<tree> in_progress2; // Path to current subtype - std::stack<tree> for_reference; + vec<tree> for_reference2; // OLD FIELD -> new FIELD typedef std::pair<tree, tree> field_tuple_t; @@ -128,8 +129,7 @@ protected: //record_field_offset_map_t _records; record_field_offset_map2_t* _records2; - // The new suffix - const char *_suffix; + const char *get_new_suffix (); // Which fields will be deleted. field_tuple_list2_stack_t field_list2_stack; diff --git a/gcc/ipa-field-reorder.c b/gcc/ipa-field-reorder.c index a275f4d3655..b1f0310cd7a 100644 --- a/gcc/ipa-field-reorder.c +++ b/gcc/ipa-field-reorder.c @@ -221,12 +221,12 @@ compare_FIELD_DECLs_TYPE_SIZE (tree _l, tree _r) void TypeReconstructorFieldReordering::_walk_RECORD_TYPE_post (tree t) { - tree t2 = for_reference.top (); + tree t2 = for_reference2.last (); gcc_assert (t2 == t); - for_reference.pop (); + for_reference2.pop (); - tree copy = in_progress.top (); - in_progress.pop (); + tree copy = in_progress2.last (); + in_progress2.pop (); field_tuple_list2_t field_tuple_list2 = field_list2_stack.top (); field_list2_stack.pop (); |