Lines Matching refs:entry

138  * \param 'a' is the generating expression from the AEB entry.
182 foreach_in_list_use_after(aeb_entry, entry, &aeb) {
184 if (!(entry->generator->dst.is_null() && !inst->dst.is_null()) &&
185 instructions_match(inst, entry->generator)) {
197 /* Our first sighting of this expression. Create an entry. */
198 aeb_entry *entry = ralloc(cse_ctx, aeb_entry);
199 entry->tmp = src_reg(); /* file will be BAD_FILE */
200 entry->generator = inst;
201 aeb.push_tail(entry);
207 bool no_existing_temp = entry->tmp.file == BAD_FILE;
208 if (no_existing_temp && !entry->generator->dst.is_null()) {
209 entry->tmp = retype(src_reg(VGRF, alloc.allocate(
210 regs_written(entry->generator)),
213 const unsigned width = entry->generator->exec_size;
214 unsigned component_size = width * type_sz(entry->tmp.type);
216 DIV_ROUND_UP(entry->generator->size_written, component_size);
219 MOV(offset(entry->generator->dst, width, i),
220 offset(entry->tmp, width, i));
222 copy->group = entry->generator->group;
224 entry->generator->force_writemask_all;
225 entry->generator->insert_after(block, copy);
228 entry->generator->dst = dst_reg(entry->tmp);
233 assert(inst->dst.type == entry->tmp.type);
241 offset(entry->tmp, width, i));
260 foreach_in_list_safe(aeb_entry, entry, &aeb) {
265 if (entry->generator->reads_flag() ||
266 (entry->generator->writes_flag(devinfo) &&
267 !instructions_match(inst, entry->generator))) {
268 entry->remove();
269 ralloc_free(entry);
275 src_reg *src = &entry->generator->src[i];
280 if (inst->dst.file == entry->generator->src[i].file &&
281 inst->dst.nr == entry->generator->src[i].nr) {
282 entry->remove();
283 ralloc_free(entry);
292 entry->remove();
293 ralloc_free(entry);