Lines Matching refs:ir

39 #include "ir.h"
68 ir_vec_index_to_cond_assign_visitor::convert_vec_index_to_cond_assign(ir_rvalue *ir)
70 ir_dereference_array *orig_deref = ir->as_dereference_array();
77 return ir;
81 return ir;
83 void *mem_ctx = ralloc_parent(ir);
99 var = new(base_ir) ir_variable(ir->type, "vec_index_tmp_v",
114 new(base_ir) ir_swizzle(cond_deref->clone(ir, NULL), i, 0, 0, 0, 1);
138 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_expression *ir)
142 for (i = 0; i < ir->get_num_operands(); i++) {
143 ir->operands[i] = convert_vec_index_to_cond_assign(ir->operands[i]);
150 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_swizzle *ir)
156 ir->val = convert_vec_index_to_cond_assign(ir->val);
162 ir_vec_index_to_cond_assign_visitor::visit_leave(ir_assignment *ir)
169 ir->rhs = convert_vec_index_to_cond_assign(ir->rhs);
170 if (ir->condition)
171 ir->condition = convert_vec_index_to_cond_assign(ir->condition);
174 ir_dereference_array *orig_deref = ir->lhs->as_dereference_array();
181 void *mem_ctx = ralloc_parent(ir);
188 index = new(ir) ir_variable(glsl_type::int_type, "vec_index_tmp_i",
191 deref = new(ir) ir_dereference_variable(index);
192 assign = new(ir) ir_assignment(deref, orig_deref->array_index, NULL);
196 var = new(ir) ir_variable(ir->rhs->type, "vec_index_tmp_v",
199 deref = new(ir) ir_dereference_variable(var);
200 assign = new(ir) ir_assignment(deref, ir->rhs, NULL);
214 new(ir) ir_swizzle(cond_deref->clone(ir, NULL), i, 0, 0, 0, 1);
221 new(ir) ir_swizzle(orig_deref->array->clone(mem_ctx, NULL),
224 deref = new(ir) ir_dereference_variable(var);
225 assign = new(ir) ir_assignment(swizzle, deref, condition_swizzle);
233 if (ir->condition != NULL) {
237 ir_if *if_stmt = new(mem_ctx) ir_if(ir->condition);
240 ir->insert_before(if_stmt);
242 ir->insert_before(&list);
245 ir->remove();
253 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_call *ir)
255 foreach_iter(exec_list_iterator, iter, *ir) {
268 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_return *ir)
270 if (ir->value) {
271 ir->value = convert_vec_index_to_cond_assign(ir->value);
278 ir_vec_index_to_cond_assign_visitor::visit_enter(ir_if *ir)
280 ir->condition = convert_vec_index_to_cond_assign(ir->condition);