Lines Matching defs:inv

129   struct invariant *inv;
263 struct invariant *inv;
278 inv = invariant_for_use (use);
279 if (!inv)
282 gcc_assert (inv->eqto != ~0u);
283 return inv->eqto;
416 return invariant_expr_equal_p (entry1->inv->insn, entry1->expr,
417 entry2->inv->insn, entry2->expr);
426 struct invariant *inv)
428 hashval_t hash = hash_invariant_expr_1 (inv->insn, expr);
434 pentry.inv = inv;
440 return entry->inv;
443 entry->inv = inv;
449 return inv;
456 find_identical_invariants (htab_t eq, struct invariant *inv)
464 if (inv->eqto != ~0u)
467 EXECUTE_IF_SET_IN_BITMAP (inv->depends_on, 0, depno, bi)
473 set = single_set (inv->insn);
478 inv->eqto = find_or_insert_inv (eq, expr, mode, inv)->invno;
480 if (dump_file && inv->eqto != inv->invno)
483 inv->invno, inv->eqto);
492 struct invariant *inv;
496 for (i = 0; VEC_iterate (invariant_p, invariants, i, inv); i++)
497 find_identical_invariants (eq, inv);
633 struct invariant *inv = XNEW (struct invariant);
636 inv->def = def;
637 inv->always_executed = always_executed;
638 inv->depends_on = depends_on;
643 inv->cost = rtx_cost (set, SET);
645 inv->cost = rtx_cost (SET_SRC (set), SET);
647 inv->move = false;
648 inv->reg = NULL_RTX;
649 inv->stamp = 0;
650 inv->insn = insn;
652 inv->invno = VEC_length (invariant_p, invariants);
653 inv->eqto = ~0u;
655 def->invno = inv->invno;
656 VEC_safe_push (invariant_p, heap, invariants, inv);
662 INSN_UID (insn), inv->invno, inv->cost);
663 dump_bitmap (dump_file, inv->depends_on);
666 return inv;
698 struct invariant *inv;
713 inv = DF_REF_DATA (def);
714 if (!inv)
717 def_data = inv->def;
745 struct invariant *inv;
793 inv = create_new_invariant (def, insn, depends_on, always_executed);
798 DF_REF_DATA (ref) = inv;
808 struct invariant *inv;
812 inv = invariant_for_use (use);
813 if (inv)
814 record_use (inv->def, DF_REF_LOC (use), DF_REF_INSN (use));
914 get_inv_cost (struct invariant *inv, int *comp_cost, unsigned *regs_needed)
923 inv = VEC_index (invariant_p, invariants, inv->eqto);
927 if (inv->move
928 || inv->stamp == actual_stamp)
930 inv->stamp = actual_stamp;
933 (*comp_cost) += inv->cost;
953 rtx set = single_set (inv->insn);
961 EXECUTE_IF_SET_IN_BITMAP (inv->depends_on, 0, depno, bi)
992 gain_for_invariant (struct invariant *inv, unsigned *regs_needed,
997 get_inv_cost (inv, &comp_cost, regs_needed);
1018 struct invariant *inv;
1022 for (invno = 0; VEC_iterate (invariant_p, invariants, invno, inv); invno++)
1024 if (inv->move)
1028 if (inv->eqto != inv->invno)
1031 again = gain_for_invariant (inv, &aregs_needed,
1036 *best = inv;
1049 struct invariant *inv = VEC_index (invariant_p, invariants, invno);
1053 inv = VEC_index (invariant_p, invariants, inv->eqto);
1055 if (inv->move)
1057 inv->move = true;
1062 EXECUTE_IF_SET_IN_BITMAP (inv->depends_on, 0, invno, bi)
1074 struct invariant *inv = NULL;
1097 for (i = 0; VEC_iterate (invariant_p, invariants, i, inv); i++)
1099 if (inv->def)
1100 n_inv_uses += inv->def->n_uses;
1104 while (best_gain_for_invariant (&inv, &regs_needed,
1107 set_move_mark (inv->invno);
1132 struct invariant *inv = VEC_index (invariant_p, invariants, invno);
1133 struct invariant *repr = VEC_index (invariant_p, invariants, inv->eqto);
1140 if (inv->reg)
1148 if (inv == repr)
1150 if (inv->depends_on)
1152 EXECUTE_IF_SET_IN_BITMAP (inv->depends_on, 0, i, bi)
1164 set = single_set (inv->insn);
1173 emit_insn_after (gen_move_insn (dest, reg), inv->insn);
1175 reorder_insns (inv->insn, inv->insn, BB_END (preheader));
1195 emit_insn_after (gen_move_insn (dest, reg), inv->insn);
1196 delete_insn (inv->insn);
1204 set = single_set (inv->insn);
1205 emit_insn_after (gen_move_insn (SET_DEST (set), reg), inv->insn);
1206 delete_insn (inv->insn);
1209 inv->reg = reg;
1214 if (inv->def)
1216 for (use = inv->def->uses; use; use = use->next)
1223 /* If we failed, clear move flag, so that we do not try to move inv
1227 inv->move = false;
1228 inv->reg = NULL_RTX;
1238 struct invariant *inv;
1241 for (i = 0; VEC_iterate (invariant_p, invariants, i, inv); i++)
1262 struct invariant *inv;
1270 inv = DF_REF_DATA (ref);
1271 if (!inv)
1274 def = inv->def;
1282 for (i = 0; VEC_iterate (invariant_p, invariants, i, inv); i++)
1284 BITMAP_FREE (inv->depends_on);
1285 free (inv);