Hi,

On Tue, 12 Nov 2013 10:30:16, Sriraman Tallam wrote:
>
> On Mon, Nov 11, 2013 at 11:30 PM, Uros Bizjak <ubiz...@gmail.com> wrote:
>> There was something wrong with Bernd's address, retrying.
>>
>>>> Currently on trunk the option -mpreferred-stack-boundary does not work
>>>> together with #pragma GCC target("sse") or __attribute__((target("sse"))).
>>>>
>>>> There is already a test case that detects this: 
>>>> gcc.target/i386/fastcall-sseregparm.c
>>>>
>>>> The attached patch fixes this test case under i686-pc-linux-gnu.
>>>>
>>>> Boot-strapped and regression-tested under i686-pc-linux-gnu.
>>>>
>>>> OK for trunk?
>>>
>>> I'm not experienced enough in this new option handling stuff, let's
>>> ask Sriraman for his opinion on the patch.
>
>
> I do not think this is the right fix, I am wondering how many other
> target flags we may have to copy this way from global_options. I
> notice that other flags like ix86_regparm and
> ix86_incoming_stack_boundary_arg are very similar. Why should this
> need to be restored from global_options explicitly? This patch may fix
> the issue but it seems like a hack to me. We should be able to restore
> whatever we need from target_option_default_node via
> ix86_function_specific_restore. Maybe modifying the i386.opt file to
> make ix86_preferred_stack_boundary_arg a variable might fix it. See
> ix86_isa_flags for instance in i386.opt.
>
>
> Please let me know what you think.

Thanks, now I see what you mean. I can change it the other way round
and implement ix86_preferred_stack_boundary like ix86_incoming_stack_boundary.

using this define in options.h:
#define ix86_preferred_stack_boundary_arg 
global_options.x_ix86_preferred_stack_boundary_arg

the global option is never copied into function specific options.

Attached is the updated patch.

OK for trunk after boot-strap and regression-testing?

Bernd.


PS: I have one more patch pending, and would like to know what you think
about it: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg00133.html
That has also to do with global state variables that are modified due to
target options, and initially I was expecting that the patch for PR57756 would
be fixing it automatically, but I was wrong...

>
> Thanks
> Sri
>
>
>>
>> Uros.                                          
2013-11-12  Bernd Edlinger  <bernd.edlin...@hotmail.de>

        PR target/58964
        * config/i386/i386.c (ix86_option_override_internal): Use
        global option ix86_preferred_stack_boundary_arg.

Attachment: patch-pr58964.diff
Description: Binary data

Reply via email to