Lines Matching defs:insn

31 #include "insn-config.h"
122 rtx insn = BB_HEAD (bb);
126 if (CALL_P (insn) || NONJUMP_INSN_P (insn))
129 if (insn == BB_END (bb))
131 insn = NEXT_INSN (insn);
145 rtx insn = BB_HEAD (bb);
149 if (NONJUMP_INSN_P (insn))
151 int cost = insn_rtx_cost (PATTERN (insn));
157 speculatively executing this insn may need to include
164 rtx set = single_set (insn);
174 else if (CALL_P (insn))
177 if (insn == BB_END (bb))
179 insn = NEXT_INSN (insn);
185 /* Return the first non-jump active insn in the basic block. */
190 rtx insn = BB_HEAD (bb);
192 if (LABEL_P (insn))
194 if (insn == BB_END (bb))
196 insn = NEXT_INSN (insn);
199 while (NOTE_P (insn))
201 if (insn == BB_END (bb))
203 insn = NEXT_INSN (insn);
206 if (JUMP_P (insn))
209 return insn;
212 /* Return the last non-jump active (non-jump) insn in the basic block. */
217 rtx insn = BB_END (bb);
220 while (NOTE_P (insn)
221 || JUMP_P (insn)
223 && NONJUMP_INSN_P (insn)
224 && GET_CODE (PATTERN (insn)) == USE))
226 if (insn == head)
228 insn = PREV_INSN (insn);
231 if (LABEL_P (insn))
234 return insn;
260 /* first insn to look at */rtx end,
261 /* last insn to look at */rtx test,
266 rtx insn;
273 for (insn = start; ; insn = NEXT_INSN (insn))
275 if (NOTE_P (insn))
278 gcc_assert(NONJUMP_INSN_P (insn) || CALL_P (insn));
281 if (reload_completed && GET_CODE (PATTERN (insn)) == USE)
285 SET_INSN_DELETED (insn);
289 /* Last insn wasn't last? */
293 if (modified_in_p (test, insn))
301 pattern = PATTERN (insn);
318 /* If the machine needs to modify the insn being conditionally executed,
322 IFCVT_MODIFY_INSN (ce_info, pattern, insn);
327 validate_change (insn, &PATTERN (insn), pattern, 1);
329 if (CALL_P (insn) && prob_val)
330 validate_change (insn, &REG_NOTES (insn),
332 REG_NOTES (insn)), 1);
335 if (insn == end)
383 rtx then_start; /* first insn in THEN block */
384 rtx then_end; /* last insn + 1 in THEN block */
385 rtx else_start = NULL_RTX; /* first insn in ELSE block or NULL */
386 rtx else_end = NULL_RTX; /* last insn + 1 in ELSE block */
575 fprintf (dump_file, "%d insn%s converted to conditional execution.\n",
639 build the store_flag insn directly. */
697 rtx seq, insn, target;
703 insn = (OBJECT_P (y) || CONSTANT_P (y) || GET_CODE (y) == SUBREG)
709 if (recog_memoized (insn) <= 0)
799 rtx insn;
811 for (insn = seq; insn; insn = NEXT_INSN (insn))
812 if (JUMP_P (insn)
813 || recog_memoized (insn) == -1)
1189 /* If earliest == jump, try to build the cmove insn directly.
1368 The best way to do this is to copy the original insn. In this
1369 way we preserve any clobbers etc that the insn may have had.
1419 /* If insn to set up A clobbers any registers B depends on, try to
1420 swap insn that sets up A with the one that sets up B. If even
1484 rtx cond, set, insn;
1611 for (insn = if_info->jump; insn != *earliest; insn = PREV_INSN (insn))
1612 if (INSN_P (insn) && reg_overlap_mentioned_p (if_info->x, PATTERN (insn)))
1616 for (insn = *earliest; insn != if_info->jump; insn = NEXT_INSN (insn))
1617 if (INSN_P (insn)
1618 && (modified_in_p (if_info->a, insn)
1619 || modified_in_p (if_info->b, insn)))
1768 rtx set, insn = prev_nonnote_insn (earliest);
1769 if (insn
1770 && (set = single_set (insn))
1773 rtx note = find_reg_equal_equiv_note (insn);
1884 executed/evaluated in the original insn sequence. */
2254 noce_emit_move_insn expands to more than one insn, so disable the
2313 true due to this insn being after a jump. */
2379 We'll let life_analysis remove the insn if it's really dead. */
2408 Every insn must be a simple set of a register to a constant or a
2416 rtx insn;
2418 FOR_BB_INSNS (bb, insn)
2422 if (!INSN_P (insn) || JUMP_P (insn))
2424 set = single_set (insn);
2466 && modified_between_p (src, insn, NEXT_INSN (BB_END (bb))))
2483 rtx jump, cond, insn, seq, cond_arg0, cond_arg1, loc_insn;
2553 FOR_BB_INSNS (then_bb, insn)
2558 if (!INSN_P (insn) || JUMP_P (insn))
2560 set = single_set (insn);
2584 FOR_BB_INSNS (else_bb, insn)
2589 if (!INSN_P (insn) || JUMP_P (insn))
2591 set = single_set (insn);
2628 FOR_BB_INSNS (then_bb, insn)
2629 if (INSN_P (insn) && !JUMP_P (insn))
2630 delete_insn (insn);
2633 FOR_BB_INSNS (else_bb, insn)
2634 if (INSN_P (insn) && !JUMP_P (insn))
2635 delete_insn (insn);
2884 rtx insn;
2920 insn = BB_HEAD (cur_bb);
2922 while (insn != NULL_RTX)
2924 if (CALL_P (insn))
2927 if (INSN_P (insn)
2928 && !JUMP_P (insn)
2929 && GET_CODE (PATTERN (insn)) != USE
2930 && GET_CODE (PATTERN (insn)) != CLOBBER)
2933 if (insn == end)
2936 insn = NEXT_INSN (insn);
3045 Check for the last insn of the THEN block being an indirect jump, which
3099 "[insn %d], then %d [%d]",
3253 /* Subroutine of find_cond_trap: if BB contains only a trap insn,
3450 /* We've possibly created jump to next insn, cleanup_cfg will solve that
3578 /* If merge_bb ends with a tablejump, predicating/moving insn's
3652 rtx insn, cond, prev;
3659 for (insn = head; ; insn = NEXT_INSN (insn))
3661 if (CALL_P (insn))
3663 if (INSN_P (insn))
3665 if (may_trap_p (PATTERN (insn)))
3673 if (for_each_rtx (&PATTERN (insn), find_memory, NULL))
3676 if (insn == end)
3732 for (insn = jump; ; insn = prev)
3734 prev = propagate_one_insn (pbi, insn);
3735 if (insn == earliest)
3802 rtx insn;
3812 insn = head;
3817 if (! INSN_P (insn))
3819 note = find_reg_note (insn, REG_EQUAL, NULL_RTX);
3822 set = single_set (insn);
3824 remove_note (insn, note);
3825 } while (insn != end && (insn = NEXT_INSN (insn)));
4042 /* Last attempt to optimize CFG, as scheduling, peepholing and insn