diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/calls.c | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 51b568c..5ae1456 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + PR optimization/12372 + * calls.c (expand_call): Add call_fusage data for stack arguments in + constant calls. + 2004-01-15 Alan Modra <amodra@bigpond.net.au> * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. diff --git a/gcc/calls.c b/gcc/calls.c index 1be581c..f0a59bb 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 |