+Fri Jan 19 13:02:56 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
+ args are REG.
+ * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
+ * function.c (assign_parms): Use INTVAL for a CONST_INT.
+
2001-01-19 Jason Merrill <jason@redhat.com>
* dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
for the abstract instance of an inline function.
-Fri Jan 19 14:31:35 2001 Alexandre Oliva <aoliva@redhat.com>, J"orn Rennecke <amylaar@redhat.com>
+Fri Jan 19 14:31:35 2001 Alexandre Oliva <aoliva@redhat.com>
+ J"orn Rennecke <amylaar@redhat.com>
* reload1.c (move2add_note_store): Treat all registers directly or
indirectly derived from a base register as members of the same set
Thu Jan 18 06:43:04 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
- * flow.c (mark_set_1, case PARALLEL): Now case; rework to allow
+ * flow.c (mark_set_1, case PARALLEL): New case; rework to allow
entry to be EXPR_LIST.
* rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to
be an EXPR_LIST (but not null, which other code doesn't allow).
return 0;
case ADDRESSOF:
- return (REGNO (XEXP (x, 0)) == REGNO (XEXP (y, 0))
- && XINT (x, 1) == XINT (y, 1));
+ return (XINT (x, 1) == XINT (y, 1)
+ && rtx_equal_for_memref_p (XEXP (x, 0), XEXP (y, 0)));
default:
break;
store_constructor_field (target, bitsize, bitpos, mode, value,
type, align, cleared,
TYPE_NONALIASED_COMPONENT (type)
+ && GET_CODE (target) == MEM
? MEM_ALIAS_SET (target) :
get_alias_set (elttype));
&& GET_CODE (XEXP (XVECEXP (entry_parm, 0, i), 0)) == REG
&& (GET_MODE (XEXP (XVECEXP (entry_parm, 0, i), 0))
== passed_mode)
- && XINT (XEXP (XVECEXP (entry_parm, 0, i), 1), 0) == 0)
+ && INTVAL (XEXP (XVECEXP (entry_parm, 0, i), 1)) == 0)
{
entry_parm = XEXP (XVECEXP (entry_parm, 0, i), 0);
DECL_INCOMING_RTL (parm) = entry_parm;