Lines Matching defs:i3

602 combine_validate_cost (rtx i1, rtx i2, rtx i3, rtx newpat, rtx newi2pat)
611 i3_cost = INSN_UID (i3) <= last_insn_cost
612 ? uid_insn_cost[INSN_UID (i3)] : 0;
668 INSN_UID (i1), INSN_UID (i2), INSN_UID (i3));
676 INSN_UID (i2), INSN_UID (i3));
695 uid_insn_cost[INSN_UID (i3)] = new_i3_cost;
1147 can_combine_p (rtx insn, rtx i3, rtx pred ATTRIBUTE_UNUSED, rtx succ,
1157 && next_active_insn (succ) == i3)
1158 : next_active_insn (insn) == i3);
1204 && GET_CODE (PATTERN (i3)) == PARALLEL)
1206 rtx i3pat = PATTERN (i3);
1218 PREV_INSN (insn), i3)
1278 || (CALL_P (i3)
1279 && (find_reg_fusage (i3, USE, dest)
1284 || FIND_REG_INC_NOTE (i3, dest)
1287 || (JUMP_P (i3) && find_reg_note (i3, REG_NON_LOCAL_GOTO, NULL_RTX))
1298 && reg_used_between_p (dest, succ, i3))
1316 || find_reg_note (i3, REG_NO_CONFLICT, dest)
1356 if (GET_CODE (PATTERN (i3)) == PARALLEL)
1357 for (i = XVECLEN (PATTERN (i3), 0) - 1; i >= 0; i--)
1358 if (GET_CODE (XVECEXP (PATTERN (i3), 0, i)) == CLOBBER)
1362 rtx reg = XEXP (XVECEXP (PATTERN (i3), 0, i), 0);
1389 for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
1404 for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
1417 && (JUMP_P (i3)
1418 || reg_used_between_p (XEXP (link, 0), insn, i3)
1423 || reg_overlap_mentioned_p (XEXP (link, 0), PATTERN (i3))))
1491 combinable_i3pat (rtx i3, rtx *loc, rtx i2dest, rtx i1dest,
1551 && reg_referenced_p (subdest, PATTERN (i3))
1574 if (! combinable_i3pat (i3, &XVECEXP (x, 0, i), i2dest, i1dest,
1821 try_combine (rtx i3, rtx i2, rtx i1, int *new_direct_jump_p)
1862 if (cant_combine_insn_p (i3)
1865 || likely_spilled_retval_p (i3)
1872 || find_reg_note (i3, REG_LIBCALL, NULL_RTX)
1906 if (i1 == 0 && NONJUMP_INSN_P (i3) && GET_CODE (PATTERN (i3)) == SET
1907 && REG_P (SET_SRC (PATTERN (i3)))
1908 && REGNO (SET_SRC (PATTERN (i3))) >= FIRST_PSEUDO_REGISTER
1909 && find_reg_note (i3, REG_DEAD, SET_SRC (PATTERN (i3)))
1911 && ! side_effects_p (SET_DEST (PATTERN (i3)))
1916 && GET_CODE (SET_DEST (PATTERN (i3))) != ZERO_EXTRACT
1917 && GET_CODE (SET_DEST (PATTERN (i3))) != STRICT_LOW_PART
1918 && ! reg_overlap_mentioned_p (SET_SRC (PATTERN (i3)),
1919 SET_DEST (PATTERN (i3)))
1920 && next_real_insn (i2) == i3)
1937 && reg_overlap_mentioned_p (SET_DEST (PATTERN (i3)),
1945 && SET_DEST (XVECEXP (p2, 0, i)) == SET_SRC (PATTERN (i3)))
1949 subst_insn = i3;
1953 i2dest = SET_SRC (PATTERN (i3));
1960 SET_DEST (PATTERN (i3)));
1975 && GET_CODE (PATTERN (i3)) == SET
1976 && (GET_CODE (SET_SRC (PATTERN (i3))) == CONST_INT
1977 || GET_CODE (SET_SRC (PATTERN (i3))) == CONST_DOUBLE)
1978 && reg_subword_p (SET_DEST (PATTERN (i3)), SET_DEST (temp)))
1980 rtx dest = SET_DEST (PATTERN (i3));
2022 rtx inner = SET_SRC (PATTERN (i3));
2088 subst_insn = i3;
2152 if (! can_combine_p (i2, i3, i1, NULL_RTX, &i2dest, &i2src)
2153 || (i1 && ! can_combine_p (i1, i3, NULL_RTX, i2, &i1dest, &i1src)))
2172 if (! combinable_i3pat (i3, &PATTERN (i3), i2dest, i1dest,
2185 || (GET_CODE (PATTERN (i3)) == SET
2186 && GET_CODE (SET_SRC (PATTERN (i3))) == MULT))
2197 if (!(GET_CODE (PATTERN (i3)) == SET
2198 && REG_P (SET_SRC (PATTERN (i3)))
2199 && MEM_P (SET_DEST (PATTERN (i3)))
2200 && (GET_CODE (XEXP (SET_DEST (PATTERN (i3)), 0)) == POST_INC
2201 || GET_CODE (XEXP (SET_DEST (PATTERN (i3)), 0)) == POST_DEC)))
2205 for (link = REG_NOTES (i3); link; link = XEXP (link, 1))
2227 added_sets_2 = ! dead_or_set_p (i3, i2dest);
2230 = i1 && ! (i1_feeds_i3 ? dead_or_set_p (i3, i1dest)
2231 : (dead_or_set_p (i3, i1dest) || dead_or_set_p (i2, i1dest)));
2262 subst_insn = i3;
2276 if (i1 == 0 && added_sets_2 && GET_CODE (PATTERN (i3)) == SET
2277 && GET_CODE (SET_SRC (PATTERN (i3))) == COMPARE
2278 && XEXP (SET_SRC (PATTERN (i3)), 1) == const0_rtx
2279 && rtx_equal_p (XEXP (SET_SRC (PATTERN (i3)), 0), i2dest))
2286 newpat = PATTERN (i3);
2298 && (cc_use = find_single_use (SET_DEST (newpat), i3,
2373 newpat = subst (PATTERN (i3), i2dest, i2src, 0,
2377 /* Record whether i2's body now appears within i3's body. */
2490 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2501 i3, and one from i2. Combining then splitting the parallel results
2523 && find_reg_note (i3, REG_UNUSED, SET_DEST (set1)))
2525 && find_reg_note (i3, REG_UNUSED, SUBREG_REG (SET_DEST (set1)))))
2526 && (!(note = find_reg_note (i3, REG_EH_REGION, NULL_RTX))
2531 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2535 && find_reg_note (i3, REG_UNUSED, SET_DEST (set0)))
2537 && find_reg_note (i3, REG_UNUSED,
2539 && (!(note = find_reg_note (i3, REG_EH_REGION, NULL_RTX))
2544 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2552 PATTERN (i3) = newpat;
2553 adjust_for_new_dest (i3);
2573 m_split = split_insns (newpat, i3);
2593 i3);
2618 i3);
2639 newpat_vec_with_clobbers), i3);
2644 insn_code_number = recog_for_combine (&m_split, i3, &new_i3_notes);
2649 && (next_real_insn (i2) == i3
2666 && (next_real_insn (i2) == i3
2667 || ! reg_used_between_p (SET_DEST (i2set), i2, i3)))
2668 insn_code_number = recog_for_combine (&newi3pat, i3,
2701 if (insn_code_number < 0 && (split = find_split_point (&newpat, i3)) != 0
2713 && (next_real_insn (i2) == i3
2854 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2904 && ! find_reg_note (i3, REG_UNUSED,
2917 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
2972 insn_code_number = recog_for_combine (&newpat, i3, &new_i3_notes);
3033 rtx p = prev_nonnote_insn (i3);
3045 if (!combine_validate_cost (i1, i2, i3, newpat, newi2pat))
3062 PATTERN (i3) = newpat;
3063 adjust_for_new_dest (i3);
3080 for (insn = NEXT_INSN (i3);
3089 if (XEXP (link, 0) == i3)
3116 i3notes = REG_NOTES (i3), i3links = LOG_LINKS (i3);
3141 INSN_CODE (i3) = insn_code_number;
3142 PATTERN (i3) = newpat;
3144 if (CALL_P (i3) && CALL_INSN_FUNCTION_USAGE (i3))
3146 rtx call_usage = CALL_INSN_FUNCTION_USAGE (i3);
3157 CALL_INSN_FUNCTION_USAGE (i3) = call_usage;
3185 if (temp != i3 && INSN_P (temp))
3188 XEXP (link, 0) = i3;
3202 LOG_LINKS (i3) = 0;
3203 REG_NOTES (i3) = 0;
3230 move_deaths (newpat, newi2pat, INSN_CUID (i1), i3, &midnotes);
3234 i3, &midnotes);
3238 distribute_notes (i3notes, i3, i3, newi2pat ? i2 : NULL_RTX,
3241 distribute_notes (i2notes, i2, i3, newi2pat ? i2 : NULL_RTX,
3244 distribute_notes (i1notes, i1, i3, newi2pat ? i2 : NULL_RTX,
3247 distribute_notes (midnotes, NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
3252 so we always pass it as i3. We have not counted the notes in
3270 distribute_notes (new_i3_notes, i3, i3, NULL_RTX, NULL_RTX, NULL_RTX);
3292 NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
3306 NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
3320 NULL_RTX, i3, newi2pat ? i2 : NULL_RTX,
3341 for (link = LOG_LINKS (i3); link; link = XEXP (link, 1))
3364 for (link = LOG_LINKS (i3); link; link = XEXP (link, 1))
3391 if (returnjump_p (i3) || any_uncondjump_p (i3))
3394 mark_jump_label (PATTERN (i3), i3, 0);
3396 if ((temp = next_nonnote_insn (i3)) == NULL_RTX
3398 emit_barrier_after (i3);
3425 && INSN_CUID (added_links_insn) < INSN_CUID (i3))
3428 return newi2pat ? i2 : i3;
11931 distribute_notes (rtx notes, rtx from_insn, rtx i3, rtx i2, rtx elim_i2,
11948 likely to be i3. */
11949 place = i3;
11957 if (JUMP_P (i3))
11958 place = i3;
11968 if (CALL_P (i3))
11969 place = i3;
11975 if (may_trap_p (i3))
11976 place = i3;
11989 if (CALL_P (i3))
11990 place = i3;
11999 /* Any clobbers for i3 may still exist, and so we must process
12006 if it is for the same register as the original i3 dest.
12007 In that case, we will notice that the register is set in i3,
12008 and then add a REG_UNUSED note for the destination of i3, which
12016 if (reg_set_p (XEXP (note, 0), PATTERN (i3)))
12018 if (from_insn != i3)
12022 ? find_regno_note (i3, REG_UNUSED, REGNO (XEXP (note, 0)))
12023 : find_reg_note (i3, REG_UNUSED, XEXP (note, 0))))
12024 place = i3;
12029 else if (reg_referenced_p (XEXP (note, 0), PATTERN (i3))
12031 ? find_regno_note (i3, REG_DEAD,
12033 : find_reg_note (i3, REG_DEAD, XEXP (note, 0))))
12036 place = i3;
12054 if (from_insn == i3
12056 place = i3;
12063 if (reg_mentioned_p (XEXP (note, 0), PATTERN (i3)))
12064 place = i3;
12080 if (reg_mentioned_p (XEXP (note, 0), PATTERN (i3))
12081 || ((tem = find_reg_note (i3, REG_EQUAL, NULL_RTX))
12084 place = i3;
12212 else if (reg_referenced_p (XEXP (note, 0), PATTERN (i3)))
12213 place = i3;
12214 else if (i2 != 0 && next_nonnote_insn (i2) == i3
12223 tem = i3;
12333 register which formerly died in i3 and was not used
12334 by i2, which now no longer dies in i3 and is used in
12336 and i3, then we may need to move a link from place to