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


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.

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]