Lines Matching refs:ir

49 #include "ir.h"
63 void visit_new_assignment(ir_assignment *ir);
85 lower_clip_distance_visitor::visit(ir_variable *ir)
93 if (ir->name && strcmp(ir->name, "gl_ClipDistance") == 0) {
95 this->old_clip_distance_var = ir;
96 assert (ir->type->is_array());
97 assert (ir->type->element_type() == glsl_type::float_type);
98 unsigned new_size = (ir->type->array_size() + 3) / 4;
101 this->new_clip_distance_var = ir->clone(ralloc_parent(ir), NULL);
108 this->new_clip_distance_var->max_array_access = ir->max_array_access / 4;
110 ir->replace_with(this->new_clip_distance_var);
181 lower_clip_distance_visitor::visit_leave(ir_dereference_array *ir)
189 ir_dereference_variable *old_var_ref = ir->array->as_dereference_variable();
194 this->create_indices(ir->array_index, array_index, swizzle_index);
195 void *mem_ctx = ralloc_parent(ir);
196 ir->array = new(mem_ctx) ir_dereference_array(
198 ir->array_index = swizzle_index;
212 lower_clip_distance_visitor::visit_leave(ir_assignment *ir)
214 ir_dereference_variable *lhs_var = ir->lhs->as_dereference_variable();
215 ir_dereference_variable *rhs_var = ir->rhs->as_dereference_variable();
232 void *ctx = ralloc_parent(ir);
236 ir->lhs->clone(ctx, NULL), new(ctx) ir_constant(i));
239 ir->rhs->clone(ctx, NULL), new(ctx) ir_constant(i));
244 ir->remove();
258 lower_clip_distance_visitor::visit_new_assignment(ir_assignment *ir)
261 this->base_ir = ir;
262 ir->accept(this);
275 lower_clip_distance_visitor::visit_leave(ir_call *ir)
277 void *ctx = ralloc_parent(ir);
279 const exec_node *formal_param_node = ir->callee->parameters.head;
280 const exec_node *actual_param_node = ir->actual_parameters.head;