<div dir="ltr"><div>It makes sense to use short-live vector register under register pressure.<br></div>But please also remove the comment<br>"// If an element has very long interval, we don't want to put it into a<br> // vector as it will add more pressure to the register allocation"<br><div class="gmail_extra"><br></div><div class="gmail_extra">Thanks!<br></div><div class="gmail_extra">Ruiling<br></div><div class="gmail_extra"><div class="gmail_quote">2015-09-17 8:39 GMT+08:00 Zhigang Gong <span dir="ltr"><<a href="mailto:zhigang.gong@linux.intel.com" target="_blank">zhigang.gong@linux.intel.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ping for review.<br>
Thanks.<br>
<div class="HOEnZb"><div class="h5"><br>
On Sun, Sep 06, 2015 at 05:21:29PM +0800, Zhigang Gong wrote:<br>
> If the reservedSpillRegs is not zero, it indicates we are in a<br>
> very high register pressure. Use register vector will likely<br>
> increase that pressure and will cause significant performance<br>
> problem which is much worse than use a short-live temporary<br>
> vector register with several additional MOVs.<br>
><br>
> So let's simply avoid use vector registers and just use a<br>
> temporary short-live-interval vector.<br>
><br>
> Signed-off-by: Zhigang Gong <<a href="mailto:zhigang.gong@intel.com">zhigang.gong@intel.com</a>><br>
> ---<br>
>  backend/src/backend/gen_reg_allocation.cpp | 2 +-<br>
>  1 file changed, 1 insertion(+), 1 deletion(-)<br>
><br>
> diff --git a/backend/src/backend/gen_reg_allocation.cpp b/backend/src/backend/gen_reg_allocation.cpp<br>
> index 39f1934..36ad914 100644<br>
> --- a/backend/src/backend/gen_reg_allocation.cpp<br>
> +++ b/backend/src/backend/gen_reg_allocation.cpp<br>
> @@ -318,7 +318,7 @@ namespace gbe<br>
>        if (it == vectorMap.end() &&<br>
>            ctx.sel->isScalarReg(reg) == false &&<br>
>            ctx.isSpecialReg(reg) == false &&<br>
> -          (intervals[reg].maxID - intervals[reg].minID) < 2048)<br>
> +          ctx.reservedSpillRegs == 0 )<br>
>        {<br>
>          const VectorLocation location = std::make_pair(vector, regID);<br>
>          this->vectorMap.insert(std::make_pair(reg, location));<br>
> --<br>
> 1.9.1<br>
><br>
> _______________________________________________<br>
> Beignet mailing list<br>
> <a href="mailto:Beignet@lists.freedesktop.org">Beignet@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/beignet" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/beignet</a><br>
_______________________________________________<br>
Beignet mailing list<br>
<a href="mailto:Beignet@lists.freedesktop.org">Beignet@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/beignet" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/beignet</a><br>
</div></div></blockquote></div><br></div></div>