[Mesa-dev] [PATCH 3/4] i965: Rewrite disassembly annotation code
Kenneth Graunke
kenneth at whitecape.org
Fri Nov 17 19:16:15 UTC 2017
On Thursday, November 16, 2017 8:47:33 PM PST Matt Turner wrote:
> diff --git a/src/intel/compiler/intel_asm_annotation.c b/src/intel/compiler/intel_asm_annotation.c
> index 26ab4b9818..fa37f248d1 100644
> --- a/src/intel/compiler/intel_asm_annotation.c
> +++ b/src/intel/compiler/intel_asm_annotation.c
> -void annotate(const struct gen_device_info *devinfo,
> - struct annotation_info *annotation, const struct cfg_t *cfg,
> - struct backend_instruction *inst, unsigned offset)
> +struct inst_group *
> +disasm_new_inst_group(struct disasm_info *disasm, unsigned next_inst_offset)
> {
> - if (annotation->mem_ctx == NULL)
> - annotation->mem_ctx = ralloc_context(NULL);
> + struct inst_group *tail =
> + rzalloc(disasm->mem_ctx, struct inst_group);
> + tail->offset = next_inst_offset;
> + exec_list_push_tail(disasm->group_list, &tail->link);
> + return tail;
> +}
>
> - if (!annotation_array_ensure_space(annotation))
> - return;
> +void
> +disasm_annotate(struct disasm_info *disasm,
> + struct backend_instruction *inst, unsigned offset)
> +{
> + const struct gen_device_info *devinfo = disasm->devinfo;
> + const struct cfg_t *cfg = disasm->cfg;
> +
> + struct inst_group *group;
> + if (!disasm->use_tail) {
> + group = disasm_new_inst_group(disasm, offset);
> + disasm->use_tail = false;
Err...it's already false in this case. You just checked it two lines
earlier, and disasm_new_inst_group doesn't change.
> + } else {
> + group = exec_node_data(struct inst_group,
> + exec_list_get_tail_raw(disasm->group_list), link);
I suspect you meant to set disasm->use_tail = false here instead.
> + }
With that fixed, the series is:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
I also think you could simply embed the exec_list in the disasm_info
structure rather than heap allocating it. It doesn't seem to buy you
anything. But, I'll leave that up to you.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171117/2f3fa05e/attachment.sig>
More information about the mesa-dev
mailing list