This is the mail archive of the gcc-patches@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: [PATCH, i386] Add prefixes avoidance tuning for silvermont target


2014-07-14 23:58 GMT+04:00 Uros Bizjak <ubizjak@gmail.com>:
> On Thu, Jul 3, 2014 at 3:38 PM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>> 2014-07-03 16:07 GMT+04:00 Uros Bizjak <ubizjak@gmail.com>:
>>> On Thu, Jul 3, 2014 at 1:50 PM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>>>
>>>> I didn't find a nice way to fix peephole2 patterns to take register
>>>> constraints into account. Is there any way to do it?
>>>
>>> Use REX_SSE_REGNO_P (REGNO (operands[...])) in the insn C constraint.
>>
>> Peephole doesn't know whether it works with tuned instruction or not,
>> right? I would need to mark all instructions I modify with some
>> attribute and then check for it in peephole.
>>
>>>
>>>> Also fully restrict xmm8-15 does not seem right.  It is just costly
>>>> but not fully disallowed.
>>>
>>> As said earlier, you can try "Ya*x" as a constraint.
>>
>> I tried it. It does not seem to affect allocation much. I do not see
>> any gain on targeted tests.
>
> Strange, because the documentation claims:
>
> '*'
>      Says that the following character should be ignored when choosing
>      register preferences.  '*' has no effect on the meaning of the
>      constraint as a constraint, and no effect on reloading.  For LRA
>      '*' additionally disparages slightly the alternative if the
>      following character matches the operand.
>
> Let me rethink this a bit. Prehaps we could reconsider Jakub's
> proposal with "Ya,!x" (with two alternatives). IIRC this approach was
> needed for some MMX alternatives, where we didn't want RA to allocate
> a MMX register when the value could be passed in integer regs, but the
> value was still allowed in MMX register.

That's is what my patch already does, but with '?' instead of '!'.
Will try it with '!' and see if there is a big difference.

Ilya

>
> As a side note, I'll investigate pushdf pattern, if it needs to be
> updated. The proposed approach is from reload era, and things changed
> substantially since then.
>
> Uros.


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