re PR bootstrap/53021 (bootstrap failure on Linux/ia32)
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
This commit is contained in:
parent
faaf273bb0
commit
757e8ba242
@ -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
|
||||
|
14
gcc/alias.c
14
gcc/alias.c
@ -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
|
||||
}
|
||||
|
||||
|
10
gcc/alias.h
10
gcc/alias.h
@ -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 */
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user