+2014-08-26 David Malcolm <dmalcolm@redhat.com>
+
+ * rtl.h (push_to_sequence): Strengthen param from rtx to
+ rtx_insn *.
+ (push_to_sequence2): Likewise for both params.
+ (delete_insns_since): Likewise for param.
+ (reorder_insns_nobb): Likewise for all three params.
+ (set_new_first_and_last_insn): Likewise for both params.
+
+ * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
+ rtx_insn *. Remove now-redundant cast.
+ (set_last_insn): Likewise.
+
+ * builtins.c (expand_builtin_return): Strengthen local
+ "call_fusage" from rtx to rtx_insn *.
+ * cfgrtl.c (create_basic_block_structure): Likewise for local
+ "after".
+ * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
+ "first", "last" and local "insn".
+ (delete_insns_since): Likewise for param "from".
+ (reorder_insns_nobb): Likewise for params "from", "to", "after"
+ and local "x".
+ (push_to_sequence): Likewise for param "first" and local "last".
+ (push_to_sequence2): Likewise for params "first" and "last".
+ * lra.c (emit_add3_insn): Likewise for local "last".
+ (lra_emit_add): Likewise.
+ * lra-constraints.c (base_to_reg): Likewise for locals "insn",
+ "last_insn".
+ (process_address_1): Likewise for locals "insn", last".
+ * modulo-sched.c (ps_first_note): Likewise for return type.
+ * optabs.c (expand_binop_directly): Likewise for param "last".
+
2014-08-26 David Malcolm <dmalcolm@redhat.com>
* rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
int size, align, regno;
enum machine_mode mode;
rtx reg;
- rtx call_fusage = 0;
+ rtx_insn *call_fusage = 0;
result = convert_memory_address (Pmode, result);
{
/* If we found an existing note, thread it back onto the chain. */
- rtx after;
+ rtx_insn *after;
if (LABEL_P (head))
after = head;
Used for an inline-procedure after copying the insn chain. */
void
-set_new_first_and_last_insn (rtx first, rtx last)
+set_new_first_and_last_insn (rtx_insn *first, rtx_insn *last)
{
- rtx insn;
+ rtx_insn *insn;
set_first_insn (first);
set_last_insn (last);
FROM becomes the new last instruction. */
void
-delete_insns_since (rtx from)
+delete_insns_since (rtx_insn *from)
{
if (from == 0)
set_first_insn (0);
called after delay-slot filling has been done. */
void
-reorder_insns_nobb (rtx from, rtx to, rtx after)
+reorder_insns_nobb (rtx_insn *from, rtx_insn *to, rtx_insn *after)
{
#ifdef ENABLE_CHECKING
- rtx x;
+ rtx_insn *x;
for (x = from; x != to; x = NEXT_INSN (x))
gcc_assert (after != x);
gcc_assert (after != to);
start_sequence for more information about how to use this function. */
void
-push_to_sequence (rtx first)
+push_to_sequence (rtx_insn *first)
{
- rtx last;
+ rtx_insn *last;
start_sequence ();
looping through the list. */
void
-push_to_sequence2 (rtx first, rtx last)
+push_to_sequence2 (rtx_insn *first, rtx_insn *last)
{
start_sequence ();
/* Specify a new insn as the first in the chain. */
static inline void
-set_first_insn (rtx insn)
+set_first_insn (rtx_insn *insn)
{
gcc_checking_assert (!insn || !PREV_INSN (insn));
- crtl->emit.x_first_insn = safe_as_a <rtx_insn *> (insn);
+ crtl->emit.x_first_insn = insn;
}
/* Return the last insn emitted in current sequence or current function. */
/* Specify a new insn as the last in the chain. */
static inline void
-set_last_insn (rtx insn)
+set_last_insn (rtx_insn *insn)
{
gcc_checking_assert (!insn || !NEXT_INSN (insn));
- crtl->emit.x_last_insn = safe_as_a <rtx_insn *> (insn);
+ crtl->emit.x_last_insn = insn;
}
/* Return a number larger than any instruction's uid in this function. */
int code = -1;
rtx new_inner = NULL_RTX;
rtx new_reg = NULL_RTX;
- rtx insn;
- rtx last_insn = get_last_insn();
+ rtx_insn *insn;
+ rtx_insn *last_insn = get_last_insn();
lra_assert (ad->base == ad->base_term && ad->disp == ad->disp_term);
cl = base_reg_class (ad->mode, ad->as, ad->base_outer_code,
new_reg = lra_create_new_reg (Pmode, NULL_RTX, cl, "addr");
#ifdef HAVE_lo_sum
{
- rtx insn;
- rtx last = get_last_insn ();
+ rtx_insn *insn;
+ rtx_insn *last = get_last_insn ();
/* addr => lo_sum (new_base, addr), case (2) above. */
insn = emit_insn (gen_rtx_SET
static rtx
emit_add3_insn (rtx x, rtx y, rtx z)
{
- rtx insn, last;
+ rtx_insn *last;
+ rtx insn;
last = get_last_insn ();
lra_emit_add (rtx x, rtx y, rtx z)
{
int old;
- rtx insn, last;
+ rtx insn;
+ rtx_insn *last;
rtx a1, a2, base, index, disp, scale, index_scale;
bool ok_p;
in the loop that was associated with ps_rtl_insn (PS, ID).
If the instruction had some notes before it, this is the first
of those notes. */
-static rtx
+static rtx_insn *
ps_first_note (partial_schedule_ptr ps, int id)
{
gcc_assert (id < ps->g->num_nodes);
expand_binop_directly (enum machine_mode mode, optab binoptab,
rtx op0, rtx op1,
rtx target, int unsignedp, enum optab_methods methods,
- rtx last)
+ rtx_insn *last)
{
enum machine_mode from_mode = widened_mode (mode, op0, op1);
enum insn_code icode = find_widening_optab_handler (binoptab, mode,
extern rtx get_first_nonnote_insn (void);
extern rtx get_last_nonnote_insn (void);
extern void start_sequence (void);
-extern void push_to_sequence (rtx);
-extern void push_to_sequence2 (rtx, rtx);
+extern void push_to_sequence (rtx_insn *);
+extern void push_to_sequence2 (rtx_insn *, rtx_insn *);
extern void end_sequence (void);
#if TARGET_SUPPORTS_WIDE_INT == 0
extern double_int rtx_to_double_int (const_rtx);
extern int max_label_num (void);
extern int get_first_label_num (void);
extern void maybe_set_first_label_num (rtx);
-extern void delete_insns_since (rtx);
+extern void delete_insns_since (rtx_insn *);
extern void mark_reg_pointer (rtx, int);
extern void mark_user_reg (rtx);
extern void reset_used_flags (rtx);
extern void set_used_flags (rtx);
extern void reorder_insns (rtx_insn *, rtx_insn *, rtx_insn *);
-extern void reorder_insns_nobb (rtx, rtx, rtx);
+extern void reorder_insns_nobb (rtx_insn *, rtx_insn *, rtx_insn *);
extern int get_max_insn_count (void);
extern int in_sequence_p (void);
extern void init_emit (void);
extern void init_emit_once (void);
extern void push_topmost_sequence (void);
extern void pop_topmost_sequence (void);
-extern void set_new_first_and_last_insn (rtx, rtx);
+extern void set_new_first_and_last_insn (rtx_insn *, rtx_insn *);
extern unsigned int unshare_all_rtl (void);
extern void unshare_all_rtl_again (rtx_insn *);
extern void unshare_all_rtl_in_chain (rtx);