freedreno: Fix invalid read when a block has no instructions.
authorEric Anholt <eric@anholt.net>
Tue, 3 Sep 2019 21:19:36 +0000 (14:19 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 16 Sep 2019 22:02:43 +0000 (22:02 +0000)
commiteea6f21cbdcd758a7a071485b854723ce32d1641
tree375b8375d3dfe84fb121ec4f609277e8b638ed44
parentd9d6305b80b957ec80b2eb6ccffeab84f6766f19
freedreno: Fix invalid read when a block has no instructions.

We can't deref list_(first/last)_entries unless we know we have at least
one.  Instead, just use our IP we've been tracking as we go to set up the
start ip, and fill in the end IP as we walk instructions.

Fixes a complaint in valgrind on
dEQP-GLES3.functional.transform_feedback.* which sometimes has an
empty main (non-END) block when the VS inputs are just directly mapped
to outputs without any ALU ops.

Reviewed-by: Rob Clark <robdclark@chromium.org>
src/freedreno/ir3/ir3.c