[Nouveau] [PATCH] nv50/ra: Only increment DefValue counter if we are going to spill
Ilia Mirkin
imirkin at alum.mit.edu
Sat Aug 19 16:55:02 UTC 2017
On Sat, Aug 19, 2017 at 12:50 PM, Tobias Klausmann
<tobias.johannes.klausmann at mni.thm.de> wrote:
> This is in preparation of an upcoming patch changing how we keep track of the
> defs.
>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
> ---
> src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> index e4f38c8e46..5034f8f989 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> @@ -1750,8 +1750,7 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst)
> // multiple destinations that all need to be spilled (like OP_SPLIT).
> unordered_set<Instruction *> to_del;
>
> - for (Value::DefIterator d = lval->defs.begin(); d != lval->defs.end();
> - ++d) {
> + for (Value::DefIterator d = lval->defs.begin(); d != lval->defs.end();) {
> Value *slot = mem ?
> static_cast<Value *>(mem) : new_LValue(func, FILE_GPR);
> Value *tmp = NULL;
> @@ -1787,13 +1786,13 @@ SpillCodeInserter::run(const std::list<ValuePair>& lst)
> assert(defi);
> if (defi->isPseudo()) {
> d = lval->defs.erase(d);
> - --d;
> if (slot->reg.file == FILE_MEMORY_LOCAL)
> to_del.insert(defi);
> else
> defi->setDef(0, slot);
> } else {
> spill(defi, slot, dval);
> + d++;
++d;
I have vague recollections of this being preferred because of some
silly C++ difference in how the pre- and post-fix operators work.
> }
> }
>
> --
> 2.14.0
>
> _______________________________________________
> Nouveau mailing list
> Nouveau at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
More information about the Nouveau
mailing list