This series it based off the "nv50/ir: don't rely on inbound edge order in phi nodes" series. It differs in that it creates BaseInstruction, a class that both PhiInstruction and Instruction inherit from. This is so that it's more difficult to create incorrect phi instructions.
It's rather large, but a good portion of it is just changing type declarations to use BaseInstruction, adding casts or moving code around for BaseInstruction. After applying both patches, no regressions were found with Unigine Heaven, Valley or Superposition with my GTX 1060. Before splitting into two patches, the changes were tested with shader-db and piglit's quick profile and no changes were found with the same card. Rhys Perry (2): nv50/ir: create PhiInstruction as a sibling of Instruction nv50/ir: don't rely on inbound edge order in phi nodes src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 154 ++++++++---- src/gallium/drivers/nouveau/codegen/nv50_ir.h | 189 +++++++++------ src/gallium/drivers/nouveau/codegen/nv50_ir_bb.cpp | 71 +++--- .../drivers/nouveau/codegen/nv50_ir_build_util.h | 12 +- .../drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp | 24 +- .../drivers/nouveau/codegen/nv50_ir_emit_nv50.cpp | 24 +- .../drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp | 10 +- .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 16 +- .../drivers/nouveau/codegen/nv50_ir_inlines.h | 55 ++++- .../nouveau/codegen/nv50_ir_lowering_nv50.cpp | 24 +- .../nouveau/codegen/nv50_ir_lowering_nvc0.cpp | 54 ++--- .../nouveau/codegen/nv50_ir_lowering_nvc0.h | 16 +- .../drivers/nouveau/codegen/nv50_ir_peephole.cpp | 269 +++++++++++---------- .../drivers/nouveau/codegen/nv50_ir_print.cpp | 83 ++++--- src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 156 +++++------- .../drivers/nouveau/codegen/nv50_ir_ssa.cpp | 27 ++- .../drivers/nouveau/codegen/nv50_ir_target.cpp | 30 +-- src/gallium/drivers/nouveau/codegen/nv50_ir_util.h | 2 + 18 files changed, 688 insertions(+), 528 deletions(-) -- 2.14.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev