+2010-04-16 Jakub Jelinek <jakub@redhat.com>
+
+ * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
+ don't call get_addr on both. If one expression is a VALUE and
+ the other a REG, check VALUE's locs if the REG isn't among them.
+
2010-04-16 Christian Bruel <christian.bruel@st.com>
* config/sh/sh.h (sh_frame_pointer_required): New function.
{
if (REG_P (y))
{
- struct elt_loc_list *l = NULL;
- if (CSELIB_VAL_PTR (x))
- for (l = CSELIB_VAL_PTR (x)->locs; l; l = l->next)
- if (REG_P (l->loc) && rtx_equal_for_memref_p (l->loc, y))
- break;
+ struct elt_loc_list *l;
+ for (l = CSELIB_VAL_PTR (x)->locs; l; l = l->next)
+ if (REG_P (l->loc) && rtx_equal_for_memref_p (l->loc, y))
+ break;
if (l)
x = y;
else
{
if (REG_P (x))
{
- struct elt_loc_list *l = NULL;
- if (CSELIB_VAL_PTR (y))
- for (l = CSELIB_VAL_PTR (y)->locs; l; l = l->next)
- if (REG_P (l->loc) && rtx_equal_for_memref_p (l->loc, x))
- break;
+ struct elt_loc_list *l;
+ for (l = CSELIB_VAL_PTR (y)->locs; l; l = l->next)
+ if (REG_P (l->loc) && rtx_equal_for_memref_p (l->loc, x))
+ break;
if (l)
y = x;
else