This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pass_stdarg problem when run after pass_lim


On January 29, 2015 6:25:35 PM CET, Jakub Jelinek <jakub@redhat.com> wrote:
>On Thu, Jan 29, 2015 at 06:19:45PM +0100, Tom de Vries wrote:
>> consider attached patch, which adds pass_lim after fre1 (a
>simplification of
>> my oacc kernels patch series).
>> 
>> The included testcase lim-before-stdarg.c fails.
>> 
>> The first sign of trouble is in lim-before-stdarg.c.088t.stdarg
>(attached):
>> ...
>> gen_rtvec: va_list escapes 0, needs to save 0 GPR units and 0 FPR
>units.
>> ...
>> 
>> Because of the 'need to save 0 GPRs units', at expand no prologue is
>> generated to dump the varargs in registers onto stack.
>
>The stdarg pass can't grok too heavy optimizations, so if at all
>possible,
>don't schedule such passes early, and if you for some reason do, avoid
>optimizing in there the va_list related accesses.  I'm afraid that is
>the
>only recommendation I can give here for that.

The other possibility (Matz has patches for that) is to delay vaarg lowering currently done by gimplification and combine it with the stdarg pass.

Richard.

>	Jakub



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]