In order to stop continuously partially unrolling the same loop
we add the bool partially_unrolled to nir_loop, we add it here
rather than in nir_loop_info because nir_loop_info is only set
via loop analysis and is intended to be cleared before each
analysis. Also nir_loop_info is never cloned.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
struct exec_list body; /** < list of nir_cf_node */
nir_loop_info *info;
struct exec_list body; /** < list of nir_cf_node */
nir_loop_info *info;
+ bool partially_unrolled;
clone_loop(clone_state *state, struct exec_list *cf_list, const nir_loop *loop)
{
nir_loop *nloop = nir_loop_create(state->ns);
clone_loop(clone_state *state, struct exec_list *cf_list, const nir_loop *loop)
{
nir_loop *nloop = nir_loop_create(state->ns);
+ nloop->partially_unrolled = loop->partially_unrolled;
nir_cf_node_insert_end(cf_list, &nloop->cf_node);
nir_cf_node_insert_end(cf_list, &nloop->cf_node);