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 <tobias.johannes.klausmann@mni.thm.de> Reviewed-by: Pierre Moreau <pierre.morrow@free.fr> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
committed by
Ilia Mirkin
parent
0fed7f83ba
commit
068a72fbcb
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user