Hi,

> Are there any other topics that folks want to bring up ?

There are some issues exposed while testing the register pressure
estimation for SMS  that I would to get some feedback on:

As discussed off-line; one thing is related to the note_uses function
which currently does not take element zero into account when dealing
with ZERO_EXTRACT case
(http://gcc.gnu.org/ml/gcc/2011-10/msg00419.html). I've bootstrap the
solution of adding (*fun) (&XEXP (dest, 0), data); on PowerPC and I
get a bootstrap failure (Internal error: abort in
get_output_file_with_visibility, at gengtype.c:2093) . I debugged it
to a point I know that the following expression causes it (applying
this change for the 8799th time on this operation cause the failure);
however I am not sure how to proceed with it as this operation does
not look faulty; so I appropriate directions to precede.

(zero_extract:DI (reg:DI 2829)
    (const_int 1 [0x1])
    (const_int 3 [0x3]))

Another issue is related to the regression I saw with SMS in libav's
dsputil-ssd_int8_vs_int16_c.
Consulting with Ayal regarding this it seemed that the
regression was due to dependence between accumulations that can be
avoided, more specifically we had the following case in vector code:

vec1 = vec1 + ...
...
vec1 = vec1+ ...
...
vec1 = vec1+ ...
...
vec1 = vec1+...

to resolve this, I implemented a hack similar to MVE optimiation in
the loop-unroller as follows:

vec1 = vec1 + ...
...
vec2 = vec2+ ...
...
vec3 = vec3+ ...
...
vec4 = vec4+...

This gives ~4.5% improvements to the non-SMSed version.
I was thinking of submitting this patch and I would appreciate
thoughts about where to place it in the passes pipeline.

Thanks,
Revital

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to