Lines Matching refs:ird
204 struct is_reduction_data *ird = (struct is_reduction_data *)data; in is_reduction() local
205 if (!ird->is_reduction) in is_reduction()
212 if (ird->contains_constant) { in is_reduction()
213 ird->is_reduction = false; in is_reduction()
215 ird->contains_constant = true; in is_reduction()
224 ird->is_reduction = false; in is_reduction()
239 ird->is_reduction = false; in is_reduction()
243 if (ird->type != NULL && ird->type != expr->type) { in is_reduction()
244 ird->is_reduction = false; in is_reduction()
247 ird->type = expr->type; in is_reduction()
249 ird->num_expr++; in is_reduction()
251 if (ird->operation != 0 && ird->operation != expr->operation) in is_reduction()
252 ird->is_reduction = false; in is_reduction()
253 ird->operation = expr->operation; in is_reduction()
255 ird->is_reduction = false; in is_reduction()
262 struct is_reduction_data ird; in handle_expression() local
263 ird.operation = (ir_expression_operation)0; in handle_expression()
264 ird.type = NULL; in handle_expression()
265 ird.num_expr = 0; in handle_expression()
266 ird.is_reduction = true; in handle_expression()
267 ird.contains_constant = false; in handle_expression()
269 visit_tree(expr, is_reduction, (void *)&ird); in handle_expression()
271 if (ird.is_reduction && ird.num_expr > 2) { in handle_expression()