diff options
author | davidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-10 20:26:38 +0000 |
---|---|---|
committer | davidxl <davidxl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-07-10 20:26:38 +0000 |
commit | 5680e50808cee38502097ea720988ff5486037ff (patch) | |
tree | 3ddd4b4957cfc5c0cac4bfd53cfe390f92e77c18 /gcc/gimplify.c | |
parent | b8d5d078ca5f303ee10da8891be50fde8e664880 (diff) | |
download | gcc-5680e50808cee38502097ea720988ff5486037ff.tar.gz |
Implement -freuse-stack= option
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189413 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 9bf4ead84ed..bd3642c8c41 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -1247,7 +1247,8 @@ gimplify_bind_expr (tree *expr_p, gimple_seq *pre_p) && !DECL_HAS_VALUE_EXPR_P (t) /* Only care for variables that have to be in memory. Others will be rewritten into SSA names, hence moved to the top-level. */ - && !is_gimple_reg (t)) + && !is_gimple_reg (t) + && flag_stack_reuse != SR_NONE) { tree clobber = build_constructor (TREE_TYPE (t), NULL); TREE_THIS_VOLATILE (clobber) = 1; @@ -5634,7 +5635,8 @@ gimplify_target_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) /* Add a clobber for the temporary going out of scope, like gimplify_bind_expr. */ if (gimplify_ctxp->in_cleanup_point_expr - && needs_to_live_in_memory (temp)) + && needs_to_live_in_memory (temp) + && flag_stack_reuse == SR_ALL) { tree clobber = build_constructor (TREE_TYPE (temp), NULL); TREE_THIS_VOLATILE (clobber) = true; |