[Beignet] [PATCH] GBE: avoid vector registers when there is high register pressure.
Zhigang Gong
zhigang.gong at linux.intel.com
Wed Sep 16 17:39:03 PDT 2015
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 <zhigang.gong at intel.com>
> ---
> 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
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list