summaryrefslogtreecommitdiffstats
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 22:05:51 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 22:05:51 +0000
commit5be42b3963507aba2ab5946c590b70d9bd3a1e25 (patch)
treea90073debda145f6a7cc32fb368f7c0370185f15 /gcc/calls.c
parent23a9ff5e82f1ae63ed3b3950784659dccb37761c (diff)
downloadppe42-gcc-5be42b3963507aba2ab5946c590b70d9bd3a1e25.tar.gz
ppe42-gcc-5be42b3963507aba2ab5946c590b70d9bd3a1e25.zip
PR rtl-opt/33721
* explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm, remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN. Honor required_align, tidy the code a bit. Emit split_stack code in the right place. Mark the return value with the alignment properly. * expr.h (allocate_dynamic_stack_space): Update decl. * builtins.c (expand_builtin_apply): Update call to allocate_dynamic_stack_space. (expand_builtin_alloca): Likewise. Remove TARGET parameter. * calls.c (initialize_argument_information): Update call to allocate_dynamic_stack_space. (expand_call): Likewise. * cfgexpand.c (get_decl_align_unit): Don't limit alignment. Don't update_stack_alignment here. (alloc_stack_frame_space): Make ALIGN unsigned. (stack_var_cmp): Sort by alignment too. (partition_stack_vars): Don't merge large and small alignment vars. (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters. Take care when BASE is not virtual_stack_vars_rtx. (expand_stack_vars): Allocate dynamic stack space for large alignment variables. (expand_one_stack_var): Update all to expand_one_stack_var_at. (defer_stack_allocation): True for large alignment vars. (update_stack_alignment): Merge into ... (expand_one_var): ... here. (gimple_expand_cfg): Place code from expand_stack_vars. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165240 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 9a4768a32bd..31dcd7bb077 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1100,10 +1100,11 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
/* We can pass TRUE as the 4th argument because we just
saved the stack pointer and will restore it right after
the call. */
- copy = gen_rtx_MEM (BLKmode,
- allocate_dynamic_stack_space
- (size_rtx, NULL_RTX,
- TYPE_ALIGN (type), TRUE));
+ copy = allocate_dynamic_stack_space (size_rtx,
+ TYPE_ALIGN (type),
+ TYPE_ALIGN (type),
+ true);
+ copy = gen_rtx_MEM (BLKmode, copy);
set_mem_attributes (copy, type, 1);
}
else
@@ -2664,8 +2665,8 @@ expand_call (tree exp, rtx target, int ignore)
/* We can pass TRUE as the 4th argument because we just
saved the stack pointer and will restore it right after
the call. */
- allocate_dynamic_stack_space (push_size, NULL_RTX,
- BITS_PER_UNIT, TRUE);
+ allocate_dynamic_stack_space (push_size, 0,
+ BIGGEST_ALIGNMENT, true);
}
/* If argument evaluation might modify the stack pointer,
OpenPOWER on IntegriCloud