i965: Rewrite disassembly annotation code

The old code used an array to store each "instruction group" (the new,
better name than the old overloaded "annotation"), and required a
memmove() to shift elements over in the array when we needed to split a
group so that we could add an error message. This was confusing and
difficult to get right, not the least of which was  because the array
has a tail sentinel not included in .ann_count.

Instead use a linked list, a data structure made for efficient
insertion.

Acked-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Matt Turner
2017-11-15 17:08:42 -08:00
parent f80e97346b
commit 4f82b17287
11 changed files with 174 additions and 171 deletions

View File

@@ -79,7 +79,7 @@ brw_compile_clip(const struct brw_compiler *compiler,
unreachable("not reached");
}
brw_compact_instructions(&c.func, 0, 0, NULL);
brw_compact_instructions(&c.func, 0, NULL);
*prog_data = c.prog_data;