summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames E Wilson <wilson@specifixinc.com>2004-02-24 07:35:42 +0000
committerJim Wilson <wilson@gcc.gnu.org>2004-02-23 23:35:42 -0800
commit3638733b62b61fe455e7673d248e564843a04666 (patch)
tree167f72f639e83f390cf2585878cbcca3c766a697 /gcc
parent69e9762e617f2d1e6e75ae41d24891a6ce7635e5 (diff)
downloadgcc-3638733b62b61fe455e7673d248e564843a04666.tar.gz
Out-of-date comments noticed while looking at PR 169.
* calls.c (preompute_arguments): Update comment. From-SVN: r78357
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/calls.c24
2 files changed, 14 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c9a8301095d..385e988c1c3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2004-02-23 James E Wilson <wilson@specifixinc.com>
+
+ * calls.c (preompute_arguments): Update comment.
+
2004-02-23 Kazu Hirata <kazu@cs.umass.edu>
* et-forest.c: Replace et_occurences with et_occurrences.
diff --git a/gcc/calls.c b/gcc/calls.c
index 82664b5232c..4bbec9d421f 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -1376,20 +1376,16 @@ precompute_arguments (int flags, int num_actuals, struct arg_data *args)
{
int i;
- /* If this function call is cse'able, precompute all the parameters.
- Note that if the parameter is constructed into a temporary, this will
- cause an additional copy because the parameter will be constructed
- into a temporary location and then copied into the outgoing arguments.
- If a parameter contains a call to alloca and this function uses the
- stack, precompute the parameter. */
-
- /* If we preallocated the stack space, and some arguments must be passed
- on the stack, then we must precompute any parameter which contains a
- function call which will store arguments on the stack.
- Otherwise, evaluating the parameter may clobber previous parameters
- which have already been stored into the stack. (we have code to avoid
- such case by saving the outgoing stack arguments, but it results in
- worse code) */
+ /* If this is a libcall, then precompute all arguments so that we do not
+ get extraneous instructions emitted as part of the libcall sequence.
+
+ If this target defines ACCUMULATE_OUTGOING_ARGS to true, then we must
+ precompute all arguments that contain function calls. Otherwise,
+ computing arguments for a subcall may clobber arguments for this call.
+
+ If this target defines ACCUMULATE_OUTGOING_ARGS to false, then we only
+ need to precompute arguments that change the stack pointer, such as calls
+ to alloca, and calls that do not pop all of their arguments. */
for (i = 0; i < num_actuals; i++)
if ((flags & ECF_LIBCALL_BLOCK)