summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/nouveau
diff options
context:
space:
mode:
authorTobias Klausmann <[email protected]>2017-11-12 02:51:55 +0100
committerIlia Mirkin <[email protected]>2017-11-26 12:51:30 -0500
commit068a72fbcb50176f31e9ecd588bd8225922cef2a (patch)
treee70e54270aa3820519bce78183d07cd46f43925b /src/gallium/drivers/nouveau
parent0fed7f83bae7721b9351d45342d6ff528c3e2dc9 (diff)
nouveau/compiler: Allow to omit line numbers when printing instructions
This comes in handy when checking "NV50_PROG_DEBUG=1" outputs with diff! V2: - Use environmental variable (Karol Herbst) V3: - Use the already populated nv50_ir_prog_info to forward information to the print pass (Pierre Moreau) V4: - get rid of default value in PrintPass constructor Signed-off-by: Tobias Klausmann <[email protected]> Reviewed-by: Pierre Moreau <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau')
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h1
-rw-r--r--src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp13
-rw-r--r--src/gallium/drivers/nouveau/nouveau_compiler.c1
-rw-r--r--src/gallium/drivers/nouveau/nv50/nv50_program.c1
-rw-r--r--src/gallium/drivers/nouveau/nvc0/nvc0_program.c1
5 files changed, 13 insertions, 4 deletions
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h b/src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h
index ffd53c9cd38..520d1d6743e 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; /* only used for printing the prog when dbgFlags is set */
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 f5253b37450..ab39f9fdf63 100644
--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp
@@ -689,7 +689,7 @@ void Instruction::print() const
class PrintPass : public Pass
{
public:
- PrintPass() : serial(0) { }
+ PrintPass(bool omitLineNum) : serial(0), omit_serial(omitLineNum) { }
virtual bool visit(Function *);
virtual bool visit(BasicBlock *);
@@ -697,6 +697,7 @@ public:
private:
int serial;
+ bool omit_serial;
};
bool
@@ -760,7 +761,11 @@ PrintPass::visit(BasicBlock *bb)
bool
PrintPass::visit(Instruction *insn)
{
- INFO("%3i: ", serial++);
+ if (omit_serial)
+ INFO(" ");
+ else
+ INFO("%3i: ", serial);
+ serial++;
insn->print();
return true;
}
@@ -768,14 +773,14 @@ PrintPass::visit(Instruction *insn)
void
Function::print()
{
- PrintPass pass;
+ PrintPass pass(prog->driver->omitLineNum);
pass.run(this, true, false);
}
void
Program::print()
{
- PrintPass pass;
+ PrintPass pass(driver->omitLineNum);
init_colours();
pass.run(this, true, false);
}
diff --git a/src/gallium/drivers/nouveau/nouveau_compiler.c b/src/gallium/drivers/nouveau/nouveau_compiler.c
index 3151a6f420c..f2c175661be 100644
--- a/src/gallium/drivers/nouveau/nouveau_compiler.c
+++ b/src/gallium/drivers/nouveau/nouveau_compiler.c
@@ -122,6 +122,7 @@ 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);
ret = nv50_ir_generate_code(&info);
if (ret) {
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_program.c b/src/gallium/drivers/nouveau/nv50/nv50_program.c
index 6e943a3d943..b117790d6ec 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_program.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_program.c
@@ -367,6 +367,7 @@ 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);
#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 c95a96c7178..46a15d76df0 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_program.c
@@ -575,6 +575,7 @@ 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);
#else
info->optLevel = 3;
#endif