]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR bootstrap/53021 (bootstrap failure on Linux/ia32)
authorJakub Jelinek <jakub@redhat.com>
Fri, 20 Apr 2012 12:19:51 +0000 (14:19 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 20 Apr 2012 12:19:51 +0000 (14:19 +0200)
PR bootstrap/53021
* alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
* alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
macros instead of constants.
* dse.c (record_store): Check for SP ADDRESS by comparing
XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
XEXP to be stack_pointer_rtx.

From-SVN: r186623

gcc/ChangeLog
gcc/alias.c
gcc/alias.h
gcc/dse.c

index 68593c90b8c200a8c307a30b02b3b5a00b05253f..ff0cc2c1b1af5089c337323abe84c32cde557500 100644 (file)
@@ -1,3 +1,14 @@
+2012-04-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/53021
+       * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
+       UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
+       * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
+       macros instead of constants.
+       * dse.c (record_store): Check for SP ADDRESS by comparing
+       XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
+       XEXP to be stack_pointer_rtx.
+
 2012-04-20  Richard Guenther  <rguenther@suse.de>
 
        * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
index 09befd7eced8b6edb462dc36052ea19ab05c5e0b..7b1986c0923e3e296c881bcd531a2e48112ef069 100644 (file)
@@ -1,6 +1,6 @@
 /* Alias analysis for GNU C
    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-   2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Contributed by John Carr (jfc@mit.edu).
 
 This file is part of GCC.
@@ -2734,11 +2734,15 @@ init_alias_target (void)
        && HARD_REGNO_MODE_OK (i, Pmode))
       static_reg_base_value[i] = arg_base_value;
 
-  static_reg_base_value[STACK_POINTER_REGNUM] = unique_base_value (-1);
-  static_reg_base_value[ARG_POINTER_REGNUM] = unique_base_value (-2);
-  static_reg_base_value[FRAME_POINTER_REGNUM] = unique_base_value (-3);
+  static_reg_base_value[STACK_POINTER_REGNUM]
+    = unique_base_value (UNIQUE_BASE_VALUE_SP);
+  static_reg_base_value[ARG_POINTER_REGNUM]
+    = unique_base_value (UNIQUE_BASE_VALUE_ARGP);
+  static_reg_base_value[FRAME_POINTER_REGNUM]
+    = unique_base_value (UNIQUE_BASE_VALUE_FP);
 #if !HARD_FRAME_POINTER_IS_FRAME_POINTER
-  static_reg_base_value[HARD_FRAME_POINTER_REGNUM] = unique_base_value (-4);
+  static_reg_base_value[HARD_FRAME_POINTER_REGNUM]
+    = unique_base_value (UNIQUE_BASE_VALUE_HFP);
 #endif
 }
 
index 49905b13649bfebda9a05dfbaf3de9a8c2ba6a79..d4dd3038292faaefb603e4f36ad6cee96f6d523b 100644 (file)
@@ -1,5 +1,6 @@
 /* Exported functions from alias.c
-   Copyright (C) 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007, 2008, 2009, 2010, 2012
+   Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -50,4 +51,11 @@ extern int nonoverlapping_memrefs_p (const_rtx, const_rtx, bool);
    memory barriers, including an address of SCRATCH.  */
 #define ALIAS_SET_MEMORY_BARRIER       ((alias_set_type) -1)
 
+/* Values of XWINT (address, 0) of Pmode ADDRESS rtxes for special
+   registers.  */
+#define UNIQUE_BASE_VALUE_SP   -1
+#define UNIQUE_BASE_VALUE_ARGP -2
+#define UNIQUE_BASE_VALUE_FP   -3
+#define UNIQUE_BASE_VALUE_HFP  -4
+
 #endif /* GCC_ALIAS_H */
index d6c8de7fad8629cbc9abc6c2152c92340918c621..9f57613d5141a588114e744770bbe2a0bc03ac81 100644 (file)
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -1,5 +1,5 @@
 /* RTL dead store elimination.
-   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
+   Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
    Free Software Foundation, Inc.
 
    Contributed by Richard Sandiford <rsandifor@codesourcery.com>
@@ -1503,7 +1503,7 @@ record_store (rtx body, bb_info_t bb_info)
       if (!base_term
          || (GET_CODE (base_term) == ADDRESS
              && GET_MODE (base_term) == Pmode
-             && XEXP (base_term, 0) == stack_pointer_rtx))
+             && XWINT (base_term, 0) == UNIQUE_BASE_VALUE_SP))
        insn_info->stack_pointer_based = true;
       insn_info->contains_cselib_groups = true;