Re[6]: GCC won`t emit my instriction

Alex Hill via gcc-help gcc-help@gcc.gnu.org
Mon Jun 17 11:34:00 GMT 2019




>Среда, 12 июня 2019, 1:54 +05:00 от Jim Wilson <jimw@sifive.com>:
>
>On Tue, Jun 11, 2019 at 1:32 AM Alex Hill < hardest2005@mail.ru > wrote:
>> BUT! In case we using IF loop GCC wont emit minmax AGAIN!
>It looks like the memory accesses are the problem, not the control
>flow.  However, the control flow may be affecting exactly how the
>compiler optimizes the memory references.  If you create a temporary
>variable, store the result in the temporary variable, and then write
>the temporary variable to memory at the end, it should be optimized
>regardless of control flow.
>
>> what`s the difference between
>> (reg:DI 113 [ ivtmp.29 ]) [1 MEM[base: _39, offset: 0B]+0 S8 A64])
>> and
>> (reg/f:DI 89 [ _48 ]) [1 *_48+0 S8 A64])
>
>_ivtmp.29 and _48 are variable names.  In both cases, these are
>variable names created by high level optimization passes.  See the
>-fdump-tree-all output, and look at the last one before the conversion
>to RTL.
>
>The MEM is giving alias analysis info.  A is the alignment, S is the
>size.  The first number is the alias set, where alias set 0 aliases
>everything, and other numbers only alias values in the same alias set.
>The MEM is the original base and offset for this address, where _39 is
>again a compiler generated variable.  You can find the code that
>prints this stuff in print-rtl.c, and then you probably need to look
>at the alias analysis code if you want to know more.
>
>See also the noce_try_minmax function I pointed at earlier, to see why
>it works in one case but not in another case.
>
>Jim
I`m still looking for the way to emit minmax, now i`m try to find solution in
ifcvt.c, is there exist a way to dump conditional execution step by step, 
i`m interesting in functions:
df_analyze in df-core.c
noce_process_if_block in ifcvt.c
noce_try_minmax in ifcvt.c

I read more than thousand pages from documents from gnu.gcc.org, try to find in internet but i can`t find how to dump
every step of rtl passes, for example 243.r.ce1, there is only general info in dumps receivced by fdump-rtl-all.
In 243.r.ce1 just told "df_analyze called" and nothing else.

Sorry for my Engrish
Kind regards Alex Hill.


More information about the Gcc-help mailing list