diff options
author | Greta Yorsh <greta.yorsh@arm.com> | 2012-07-11 09:41:37 +0100 |
---|---|---|
committer | Greta Yorsh <gretay@gcc.gnu.org> | 2012-07-11 09:41:37 +0100 |
commit | c48acc4f0a390ee7d6036078471572ece8a1668e (patch) | |
tree | 463887e7fe54c8c784bf98b6a7288e4ee77f80b6 /gcc | |
parent | b0af456aadd6fd46d30ff3a59157f94a43009f77 (diff) | |
download | gcc-c48acc4f0a390ee7d6036078471572ece8a1668e.zip gcc-c48acc4f0a390ee7d6036078471572ece8a1668e.tar.gz gcc-c48acc4f0a390ee7d6036078471572ece8a1668e.tar.bz2 |
re PR target/53859 (ICE when calculate insn latency for armv7e-m arch in O2 level)
2012-07-10 Greta Yorsh <Greta.Yorsh@arm.com>
gcc/
PR target/53859
* config/arm/arm.c (arm_early_load_addr_dep): Handle new
epilogue patterns.
gcc/testsuite
PR target/53859
* gcc.target/arm/pr53859.c: New test.
From-SVN: r189423
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/arm/pr53859.c | 11 |
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c2a800..b7da441 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-07-11 Greta Yorsh <Greta.Yorsh@arm.com> + + PR target/53859 + * config/arm/arm.c (arm_early_load_addr_dep): Handle new + epilogue patterns. + 2012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com> * doc/extend.texi (Namespace Association): Alter cautionary text. diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 0639beb..9748dda 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -23659,7 +23659,12 @@ arm_early_load_addr_dep (rtx producer, rtx consumer) if (GET_CODE (addr) == COND_EXEC) addr = COND_EXEC_CODE (addr); if (GET_CODE (addr) == PARALLEL) - addr = XVECEXP (addr, 0, 0); + { + if (GET_CODE (XVECEXP (addr, 0, 0)) == RETURN) + addr = XVECEXP (addr, 0, 1); + else + addr = XVECEXP (addr, 0, 0); + } addr = XEXP (addr, 1); return reg_overlap_mentioned_p (value, addr); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3de1578..cd9d0a8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-07-11 Greta Yorsh <Greta.Yorsh@arm.com> + + PR target/53859 + * gcc.target/arm/pr53859.c: New test. + 2012-07-10 Oleg Endo <olegendo@gcc.gnu.org> PR target/53886 diff --git a/gcc/testsuite/gcc.target/arm/pr53859.c b/gcc/testsuite/gcc.target/arm/pr53859.c new file mode 100644 index 0000000..003489e --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/pr53859.c @@ -0,0 +1,11 @@ +/* PR target/53859 */ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_thumb2_ok } */ +/* { dg-options "-mcpu=cortex-m4 -mthumb -O2" } */ + +void bar (int,int,char* ,int); + +void foo (char c) +{ + bar (1,2,&c,3); +} |