Hi,
this patch improves readability and structure of function
create_function_info_for.
Bootstrapped and reg-tested on x86_64.
Committed to trunk as trivial.
Thanks,
- Tom
Improve readability and structure of create_function_info_for
2015-10-30 Tom de Vries <t...@codesourcery.com>
* tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
updating is alap, and seperated from preceding code. Make sure
insert_vi_for_tree is seperated from surrounding code.
---
gcc/tree-ssa-structalias.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index f142ca0..5195eb39 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -5465,6 +5465,7 @@ create_function_info_for (tree decl, const char *name, bool add_id)
clobbervi->fullsize = vi->fullsize;
clobbervi->is_full_var = true;
clobbervi->is_global_var = false;
+
gcc_assert (prev_vi->offset < clobbervi->offset);
prev_vi->next = clobbervi->id;
prev_vi = clobbervi;
@@ -5479,6 +5480,7 @@ create_function_info_for (tree decl, const char *name, bool add_id)
usevi->fullsize = vi->fullsize;
usevi->is_full_var = true;
usevi->is_global_var = false;
+
gcc_assert (prev_vi->offset < usevi->offset);
prev_vi->next = usevi->id;
prev_vi = usevi;
@@ -5501,10 +5503,12 @@ create_function_info_for (tree decl, const char *name, bool add_id)
chainvi->fullsize = vi->fullsize;
chainvi->is_full_var = true;
chainvi->is_global_var = false;
+
+ insert_vi_for_tree (fn->static_chain_decl, chainvi);
+
gcc_assert (prev_vi->offset < chainvi->offset);
prev_vi->next = chainvi->id;
prev_vi = chainvi;
- insert_vi_for_tree (fn->static_chain_decl, chainvi);
}
/* Create a variable for the return var. */
@@ -5530,11 +5534,13 @@ create_function_info_for (tree decl, const char *name, bool add_id)
resultvi->is_full_var = true;
if (DECL_RESULT (decl))
resultvi->may_have_pointers = true;
+
+ if (DECL_RESULT (decl))
+ insert_vi_for_tree (DECL_RESULT (decl), resultvi);
+
gcc_assert (prev_vi->offset < resultvi->offset);
prev_vi->next = resultvi->id;
prev_vi = resultvi;
- if (DECL_RESULT (decl))
- insert_vi_for_tree (DECL_RESULT (decl), resultvi);
}
/* Set up variables for each argument. */
@@ -5560,14 +5566,15 @@ create_function_info_for (tree decl, const char *name, bool add_id)
argvi->fullsize = vi->fullsize;
if (arg)
argvi->may_have_pointers = true;
+
+ if (arg)
+ insert_vi_for_tree (arg, argvi);
+
gcc_assert (prev_vi->offset < argvi->offset);
prev_vi->next = argvi->id;
prev_vi = argvi;
if (arg)
- {
- insert_vi_for_tree (arg, argvi);
- arg = DECL_CHAIN (arg);
- }
+ arg = DECL_CHAIN (arg);
}
/* Add one representative for all further args. */
@@ -5591,6 +5598,7 @@ create_function_info_for (tree decl, const char *name, bool add_id)
argvi->is_full_var = true;
argvi->is_heap_var = true;
argvi->fullsize = vi->fullsize;
+
gcc_assert (prev_vi->offset < argvi->offset);
prev_vi->next = argvi->id;
prev_vi = argvi;
--
1.9.1