Lines Matching refs:ir
37 #include "ir.h"
112 void add_constant(ir_assignment *ir);
113 void kill(ir_variable *ir, unsigned write_mask);
218 ir_constant_propagation_visitor::visit_enter(ir_function_signature *ir)
232 visit_list_elements(this, &ir->body);
242 ir_constant_propagation_visitor::visit_leave(ir_assignment *ir)
247 unsigned kill_mask = ir->write_mask;
248 if (ir->lhs->as_dereference_array()) {
266 kill(ir->lhs->variable_referenced(), kill_mask);
268 add_constant(ir);
274 ir_constant_propagation_visitor::visit_enter(ir_function *ir)
276 (void) ir;
281 ir_constant_propagation_visitor::visit_enter(ir_call *ir)
284 exec_list_iterator sig_param_iter = ir->callee->parameters.iterator();
285 foreach_iter(exec_list_iterator, iter, ir->actual_parameters) {
343 ir_constant_propagation_visitor::visit_enter(ir_if *ir)
345 ir->condition->accept(this);
346 handle_rvalue(&ir->condition);
348 handle_if_block(&ir->then_instructions);
349 handle_if_block(&ir->else_instructions);
356 ir_constant_propagation_visitor::visit_enter(ir_loop *ir)
370 visit_list_elements(this, &ir->body_instructions);
430 ir_constant_propagation_visitor::add_constant(ir_assignment *ir)
434 if (ir->condition)
437 if (!ir->write_mask)
440 ir_dereference_variable *deref = ir->lhs->as_dereference_variable();
441 ir_constant *constant = ir->rhs->as_constant();
452 entry = new(this->mem_ctx) acp_entry(deref->var, ir->write_mask, constant);