[Nouveau] [PATCH v3] nouveau/compiler: Allow to omit line numbers when printing instructions
Pierre Moreau
pierre.morrow at free.fr
Fri Nov 24 16:10:17 UTC 2017
(Comment is a bit further down)
On 2017-11-24 — 16:55, Tobias Klausmann wrote:
> 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)
>
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
> ---
> src/gallium/drivers/nouveau/codegen/nv50_ir_driver.h | 1 +
> src/gallium/drivers/nouveau/codegen/nv50_ir_print.cpp | 12 +++++++++---
> src/gallium/drivers/nouveau/nouveau_compiler.c | 2 ++
> src/gallium/drivers/nouveau/nv50/nv50_program.c | 2 ++
> src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 2 ++
> 5 files changed, 16 insertions(+), 3 deletions(-)
>
> 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;
You could maybe add a comment that it only affects when printing the program
(in debug mode), but the patch is nonetheless:
Reviewed-by: Pierre Moreau <pierre.morrow at free.fr>
>
> 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..eb7e9057b5 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;
> }
> @@ -777,7 +783,7 @@ Function::print()
> 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 3151a6f420..1214cf3565 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) {
> 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 at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20171124/8f03461f/attachment.sig>
More information about the Nouveau
mailing list