[Mesa-dev] [PATCH 0/2] nv50/ir: create PhiInstruction

Rhys Perry pendingchaos02 at gmail.com
Wed Jul 11 15:58:10 UTC 2018


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



More information about the mesa-dev mailing list