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, PR target/70799, 1/2] Support constants in STV pass (DImode)


On Fri, Apr 29, 2016 at 5:48 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Apr 29, 2016 at 8:42 AM, Ilya Enkovich <enkovich.gnu@gmail.com> wrote:
>> Hi,
>>
>> As the first part of PR70799 fix I'd like to add constants support for
>> DI-STV pass (which is also related to PR70763).  This patch adds CONST_INT
>> support as insn operands and extends cost model accordingly.
>>
>> Bootstrapped and regtested on x86_64-unknown-linux-gnu{-m32}.  OK for trunk?
>>
>> Thanks,
>> Ilya
>> --
>> gcc/
>>
>> 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
>>
>>         PR target/70799
>>         PR target/70763
>>         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
>>         integer constants.
>>         (dimode_scalar_chain::vector_const_cost): New.
>>         (dimode_scalar_chain::compute_convert_gain): Handle constants.
>>         (dimode_scalar_chain::convert_op): Likewise.
>>         (dimode_scalar_chain::convert_insn): Likewise.
>
> I think we should fix STV regression first:
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70321
>
> In 64-bit, STV is run before CSE2 pass.  Can we do that for 32-bit?

64bit STV only handles constants ATM, so it is not that susceptible to
where the pass is inserted. However, I think that we *can* also move
32bit STV pass before CSE2 pass. If I'm not missing some details here,
the combine will then combine V2DI instructions instead of DImode
insns, and this should be irrelevant as far as combine is concerned.

But the above patch is orthogonal to the STV introduced regression,
regression depends on a pass insertion point.

Uros.


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