This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Postpone expanding va_arg until pass_stdarg
- From: Tom de Vries <Tom_deVries at mentor dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: Michael Matz <matz at suse dot de>, Jakub Jelinek <jakub at redhat dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 13 Feb 2015 22:40:17 +0100
- Subject: Re: Postpone expanding va_arg until pass_stdarg
- Authentication-results: sourceware.org; auth=none
- References: <54CA6BB1 dot 10502 at mentor dot com> <20150129172535 dot GN1746 at tucnak dot redhat dot com> <54CAB232 dot 1090005 at mentor dot com> <CAFiYyc1XB_6-P32CroiFbE2Of3j3vORu5d7ALuEgoN8F9yk0Tg at mail dot gmail dot com> <54CB61C8 dot 4060801 at mentor dot com> <alpine dot LNX dot 2 dot 00 dot 1501301322400 dot 18611 at wotan dot suse dot de> <54CF8AB8 dot 5040405 at mentor dot com> <alpine dot LNX dot 2 dot 00 dot 1502021628300 dot 18611 at wotan dot suse dot de> <54D0979A dot 8030200 at mentor dot com> <alpine dot LNX dot 2 dot 00 dot 1502031434250 dot 18611 at wotan dot suse dot de> <54D9CDE9 dot 8010805 at mentor dot com> <alpine dot LNX dot 2 dot 00 dot 1502101743570 dot 18611 at wotan dot suse dot de> <54DB9AFA dot 9030903 at mentor dot com> <alpine dot LNX dot 2 dot 00 dot 1502121454190 dot 18611 at wotan dot suse dot de> <54DD2E68 dot 8080402 at mentor dot com> <CAFiYyc27Ug4MaK7-xUvRYSVr6Hp6KBkzTShZsKDB0EQ7xMCjVQ at mail dot gmail dot com>
On 13-02-15 09:57, Richard Biener wrote:
[ We're still expanding ifn_va_arg before the va_list_gpr/fpr_size
>optimization. ]
Yeah, and the point of the exercise was of course to change that;)
Well, there are two parts.
The first is postpone expansion of va_arg to before the va_list_gpr/fpr_size
optimization. This eliminates disturbance between the expansion and the
optimization, and makes pass_stdarg more robust. This allows us to insert
optimizations before pass_stdarg without breaking pass_starg.
The second is to simplify pass_starg by handling va_arg rather than the
expansion of va_arg.
I think the first part by itself (which is done now) is already worthwhile on
its own.
Thanks,
- Tom