summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErick Ochoa <erick.ochoa@theobroma-systems.com>2020-12-02 16:02:55 +0100
committerErick Ochoa <erick.ochoa@theobroma-systems.com>2020-12-02 16:02:55 +0100
commit294fc5b1b29f0290ab9b70763cee4aae8df5fd68 (patch)
treea45196316d83c8ef04fa41e9abdc5d53932d1aea
parent54297d91d8bf09929f80de79b84b8ed40888c67b (diff)
std::stack<tree> -> vec<tree>
-rw-r--r--gcc/ipa-dfe.c50
-rw-r--r--gcc/ipa-dfe.h12
-rw-r--r--gcc/ipa-field-reorder.c8
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 ();