summaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authordanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-15 14:58:06 +0000
committerdanglin <danglin@138bc75d-0d04-0410-961f-82ee72b054a4>2004-01-15 14:58:06 +0000
commit8697e217cb331119b2e184acd2e00573166e86f0 (patch)
treeb1fb08c929d872b45bf4140dacbc9cd51a3abd93 /gcc/calls.c
parentd835134f9f9f9cdb4bef710020609656af19858a (diff)
downloadgcc-8697e217cb331119b2e184acd2e00573166e86f0.tar.gz
PR optimization/12372
* calls.c (expand_call): Add call_fusage data for stack arguments in constant calls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75926 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 1be581cfa69..f0a59bbf617 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -3025,6 +3025,14 @@ expand_call (tree exp, rtx target, int ignore)
&& check_sibcall_argument_overlap (before_arg,
&args[i], 1)))
sibcall_failure = 1;
+
+ if (flags & ECF_CONST
+ && args[i].stack
+ && args[i].value == args[i].stack)
+ call_fusage = gen_rtx_EXPR_LIST (VOIDmode,
+ gen_rtx_USE (VOIDmode,
+ args[i].value),
+ call_fusage);
}
/* If we have a parm that is passed in registers but not in memory