Lines Matching defs:last
29 * It's done by finding the first and last load with the same indirection
30 * level, and moving all unrelated instructions between them after the last
114 /* Grouping is done by moving everything else out of the first/last
178 group_loads(nir_instr *first, nir_instr *last)
180 /* Walk the instruction range between the first and last backward, and
181 * move those that have no uses within the range after the last one.
184 last->node.prev, node);
197 use->parent_instr->index <= last->index) {
205 /* Set the last instruction because we'll delete the current one. */
208 /* Move the instruction after the last and update its index
211 nir_instr_move(nir_after_instr(last), move_instr);
212 move_instr->index = last->index + 1;
221 /* Walk the instruction range between the first and last forward, and move
226 instr != last;
234 /* Set the last instruction because we'll delete the current one. */
263 nir_instr *last = NULL;
269 if (last && is_pseudo_inst(last) && is_grouped_load(instr))
279 last = instr;
284 handle_load_range(nir_instr **first, nir_instr **last,
287 if (*first && *last &&
289 assert(*first != *last);
290 group_loads(*first, *last);
293 *last = NULL;
415 /* Find the first and last instruction that use the same
465 /* max_distance is the maximum distance between the first and last instruction