aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>2001-01-19 13:04:23 -0500
committerRichard Kenner <kenner@gcc.gnu.org>2001-01-19 13:04:23 -0500
commit831ecbd460cd8f553e5938c7c4956840405020fd (patch)
treee80931f772afec5f17a75f9ec443c9bd0f3019a6
parentfa7aa1feb6fde728a03c5275bacde8073d6e50eb (diff)
downloadgcc-831ecbd460cd8f553e5938c7c4956840405020fd.zip
gcc-831ecbd460cd8f553e5938c7c4956840405020fd.tar.gz
gcc-831ecbd460cd8f553e5938c7c4956840405020fd.tar.bz2
alias.c (rtx_equal_for_memref_p, [...]): Don't assume args are REG.
* 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. From-SVN: r39139
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/alias.c4
-rw-r--r--gcc/expr.c1
-rw-r--r--gcc/function.c2
4 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 58eb78f..c288232 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,9 +1,17 @@
+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
@@ -19,7 +27,7 @@ Fri Jan 19 09:18:42 2001 J"orn Rennecke <amylaar@redhat.com>
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).
diff --git a/gcc/alias.c b/gcc/alias.c
index a77e7c8..6e92533 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1007,8 +1007,8 @@ rtx_equal_for_memref_p (x, y)
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;
diff --git a/gcc/expr.c b/gcc/expr.c
index a4637ab..a78be1b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -4785,6 +4785,7 @@ store_constructor (exp, target, align, cleared, size)
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));
diff --git a/gcc/function.c b/gcc/function.c
index 3e02f98..22a5a74 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -4564,7 +4564,7 @@ assign_parms (fndecl)
&& 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;