This comes in handy when checking "NV50_PROG_DEBUG=1" outputs with diff!
V2: - Use environmental variable (Karol Herbst) Signed-off-by: Tobias Klausmann <tobias.johannes.klausm...@mni.thm.de> --- src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 6 +++--- src/gallium/drivers/nouveau/codegen/nv50_ir.h | 2 +- src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h | 1 + src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp | 14 ++++++++++---- src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp | 2 +- src/gallium/drivers/nouveau/nouveau_compiler.c | 3 +++ src/gallium/drivers/nouveau/nv50/nv50_program.c | 2 ++ src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 2 ++ 8 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp index e9363101bf..4bf6c73837 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.cpp @@ -1249,7 +1249,7 @@ nv50_ir_generate_code(struct nv50_ir_prog_info *info) if (ret < 0) goto out; if (prog->dbgFlags & NV50_IR_DEBUG_VERBOSE) - prog->print(); + prog->print(info->omitLineNum); targ->parseDriverInfo(info); prog->getTarget()->runLegalizePass(prog, nv50_ir::CG_STAGE_PRE_SSA); @@ -1257,13 +1257,13 @@ nv50_ir_generate_code(struct nv50_ir_prog_info *info) prog->convertToSSA(); if (prog->dbgFlags & NV50_IR_DEBUG_VERBOSE) - prog->print(); + prog->print(info->omitLineNum); prog->optimizeSSA(info->optLevel); prog->getTarget()->runLegalizePass(prog, nv50_ir::CG_STAGE_SSA); if (prog->dbgFlags & NV50_IR_DEBUG_BASIC) - prog->print(); + prog->print(info->omitLineNum); if (!prog->registerAllocation()) { ret = -4; diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir.h b/src/gallium/drivers/nouveau/codegen/nv50_ir.h index f2ce16d882..a3c7fd2f94 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir.h @@ -1249,7 +1249,7 @@ public: Program(Type type, Target *targ); ~Program(); - void print(); + void print(bool omitLineNum); Type getType() const { return progType; } diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h index ffd53c9cd3..604a22ba89 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h @@ -82,6 +82,7 @@ struct nv50_ir_prog_info uint8_t optLevel; /* optimization level (0 to 3) */ uint8_t dbgFlags; + bool omitLineNum; struct { int16_t maxGPR; /* may be -1 if none used */ diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp index 9145801b62..d6fe928af4 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp @@ -691,7 +691,7 @@ void Instruction::print() const class PrintPass : public Pass { public: - PrintPass() : serial(0) { } + PrintPass(bool omitLineNum = false) : serial(0), omit_serial(omitLineNum) { } virtual bool visit(Function *); virtual bool visit(BasicBlock *); @@ -699,6 +699,7 @@ public: private: int serial; + bool omit_serial; }; bool @@ -762,7 +763,12 @@ PrintPass::visit(BasicBlock *bb) bool PrintPass::visit(Instruction *insn) { - INFO("%3i: ", serial++); + if (omit_serial) { + INFO(" "); + serial++; + } + else + INFO("%3i: ", serial++); insn->print(); return true; } @@ -775,9 +781,9 @@ Function::print() } void -Program::print() +Program::print(bool omitLineNum) { - PrintPass pass; + PrintPass pass(omitLineNum); init_colours(); pass.run(this, true, false); } diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp index 298e7c6ef9..96ad70d28a 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target.cpp @@ -371,7 +371,7 @@ Program::emitBinary(struct nv50_ir_prog_info *info) emit->prepareEmission(this); if (dbgFlags & NV50_IR_DEBUG_BASIC) - this->print(); + this->print(info->omitLineNum); if (!binSize) { code = NULL; diff --git a/src/gallium/drivers/nouveau/nouveau_compiler.c b/src/gallium/drivers/nouveau/nouveau_compiler.c index 3151a6f420..20a4966433 100644 --- a/src/gallium/drivers/nouveau/nouveau_compiler.c +++ b/src/gallium/drivers/nouveau/nouveau_compiler.c @@ -122,6 +122,8 @@ nouveau_codegen(int chipset, int type, struct tgsi_token tokens[], info.optLevel = debug_get_num_option("NV50_PROG_OPTIMIZE", 3); info.dbgFlags = debug_get_num_option("NV50_PROG_DEBUG", 0); + info.omitLineNum = + debug_get_num_option("NV50_PROG_DEBUG_OMIT_LINENUM", 0) ? true : false; ret = nv50_ir_generate_code(&info); if (ret) { @@ -143,6 +145,7 @@ main(int argc, char *argv[]) FILE *f; char text[65536] = {0}; unsigned size = 0, *code = NULL; + bool omitLineNum = false; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-a")) diff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c index 6e943a3d94..fb5c9ed777 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_program.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c @@ -367,6 +367,8 @@ nv50_program_translate(struct nv50_program *prog, uint16_t chipset, #ifdef DEBUG info->optLevel = debug_get_num_option("NV50_PROG_OPTIMIZE", 3); info->dbgFlags = debug_get_num_option("NV50_PROG_DEBUG", 0); + info->omitLineNum = + debug_get_num_option("NV50_PROG_DEBUG_OMIT_LINENUM", 0) ? true : false; #else info->optLevel = 3; #endif diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c index c95a96c717..8dced66437 100644 --- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c @@ -575,6 +575,8 @@ nvc0_program_translate(struct nvc0_program *prog, uint16_t chipset, info->target = debug_get_num_option("NV50_PROG_CHIPSET", chipset); info->optLevel = debug_get_num_option("NV50_PROG_OPTIMIZE", 3); info->dbgFlags = debug_get_num_option("NV50_PROG_DEBUG", 0); + info->omitLineNum = + debug_get_num_option("NV50_PROG_DEBUG_OMIT_LINENUM", 0) ? true : false; #else info->optLevel = 3; #endif -- 2.15.0 _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau