diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 2001-01-19 13:04:23 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-01-19 13:04:23 -0500 |
commit | 831ecbd460cd8f553e5938c7c4956840405020fd (patch) | |
tree | e80931f772afec5f17a75f9ec443c9bd0f3019a6 | |
parent | fa7aa1feb6fde728a03c5275bacde8073d6e50eb (diff) | |
download | gcc-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/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/alias.c | 4 | ||||
-rw-r--r-- | gcc/expr.c | 1 | ||||
-rw-r--r-- | gcc/function.c | 2 |
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; @@ -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; |