Ping for review.
Thanks.

On Sun, Sep 06, 2015 at 05:21:29PM +0800, Zhigang Gong wrote:
> If the reservedSpillRegs is not zero, it indicates we are in a
> very high register pressure. Use register vector will likely
> increase that pressure and will cause significant performance
> problem which is much worse than use a short-live temporary
> vector register with several additional MOVs.
> 
> So let's simply avoid use vector registers and just use a
> temporary short-live-interval vector.
> 
> Signed-off-by: Zhigang Gong <[email protected]>
> ---
>  backend/src/backend/gen_reg_allocation.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/backend/src/backend/gen_reg_allocation.cpp 
> b/backend/src/backend/gen_reg_allocation.cpp
> index 39f1934..36ad914 100644
> --- a/backend/src/backend/gen_reg_allocation.cpp
> +++ b/backend/src/backend/gen_reg_allocation.cpp
> @@ -318,7 +318,7 @@ namespace gbe
>        if (it == vectorMap.end() &&
>            ctx.sel->isScalarReg(reg) == false &&
>            ctx.isSpecialReg(reg) == false &&
> -          (intervals[reg].maxID - intervals[reg].minID) < 2048)
> +          ctx.reservedSpillRegs == 0 )
>        {
>          const VectorLocation location = std::make_pair(vector, regID);
>          this->vectorMap.insert(std::make_pair(reg, location));
> -- 
> 1.9.1
> 
> _______________________________________________
> Beignet mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to