Mesa (master): nvc0: store only one value per basic block for TGSI regs
Christoph Bumiller
chrisbmr at kemper.freedesktop.org
Wed Feb 9 15:05:53 UTC 2011
Module: Mesa
Branch: master
Commit: 8e240e6153e089d23f646c7b3f2c5edff7ac223c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e240e6153e089d23f646c7b3f2c5edff7ac223c
Author: Christoph Bumiller <e0425955 at student.tuwien.ac.at>
Date: Mon Feb 7 19:05:55 2011 +0100
nvc0: store only one value per basic block for TGSI regs
---
src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c b/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c
index f53af6c..8c0967d 100644
--- a/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c
+++ b/src/gallium/drivers/nvc0/nvc0_tgsi_to_nc.c
@@ -63,7 +63,13 @@ bld_register_access(struct bld_register *reg, unsigned i)
static INLINE void
bld_register_add_val(struct bld_register *reg, struct nv_value *val)
{
- util_dynarray_append(®->vals, struct nv_value *, val);
+ struct nv_basic_block *bb = val->insn->bb;
+
+ if (reg->vals.size &&
+ (util_dynarray_top(®->vals, struct nv_value *))->insn->bb == bb)
+ *(util_dynarray_top_ptr(®->vals, struct nv_value *)) = val;
+ else
+ util_dynarray_append(®->vals, struct nv_value *, val);
}
static INLINE boolean
More information about the mesa-commit
mailing list