From 0380c51fefbf548d957595868069e1af09190e69 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Fri, 28 Sep 2012 20:32:55 +0000 Subject: [PATCH] re PR bootstrap/54688 (violation of implicit restriction "No_Elaboration_Code" on a-ioexce.ads) PR bootstrap/54688 * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take STACK_GROWS_DOWNWARD into account. From-SVN: r191838 --- gcc/ChangeLog | 6 ++++++ gcc/sched-deps.c | 14 +++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f2fb9f40770..7851337f434d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-09-20 Bernd Schmidt + + PR bootstrap/54688 + * sched-deps.c (parse_add_or_inc): Remove MINUS handling. Take + STACK_GROWS_DOWNWARD into account. + 2012-09-28 Jakub Jelinek PR target/54716 diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index f53caddf7354..6625a53a699b 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -4600,8 +4600,7 @@ parse_add_or_inc (struct mem_inc_info *mii, rtx insn, bool before_mem) if (!REG_P (SET_DEST (pat))) return false; - if (GET_CODE (SET_SRC (pat)) != PLUS - && GET_CODE (SET_SRC (pat)) != MINUS) + if (GET_CODE (SET_SRC (pat)) != PLUS) return false; mii->inc_insn = insn; @@ -4629,9 +4628,14 @@ parse_add_or_inc (struct mem_inc_info *mii, rtx insn, bool before_mem) } if (regs_equal && REGNO (SET_DEST (pat)) == STACK_POINTER_REGNUM) - /* Note that the sign has already been reversed for !before_mem. */ - return mii->inc_constant > 0; - + { + /* Note that the sign has already been reversed for !before_mem. */ +#ifdef STACK_GROWS_DOWNWARD + return mii->inc_constant > 0; +#else + return mii->inc_constant < 0; +#endif + } return true; } -- 2.47.2