]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/53859 (ICE when calculate insn latency for armv7e-m arch in O2 level)
authorGreta Yorsh <greta.yorsh@arm.com>
Wed, 11 Jul 2012 08:41:37 +0000 (09:41 +0100)
committerGreta Yorsh <gretay@gcc.gnu.org>
Wed, 11 Jul 2012 08:41:37 +0000 (09:41 +0100)
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

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr53859.c [new file with mode: 0644]

index 7c2a800e515deb9b9935e2f6a5eba843bb4f1bee..b7da4413de3afd11277df88d6c8c41ff0587611c 100644 (file)
@@ -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.
index 0639beb5a0483e1aad3c1fc66374e6f54672d3c7..9748ddafd87e1f919d5733e37a49740fe8c66a5e 100644 (file)
@@ -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);
index 3de157822f6de083c5c8e34f7609c9de56ecbff2..cd9d0a8969128e9b323ae1d761994909c5f238fd 100644 (file)
@@ -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 (file)
index 0000000..003489e
--- /dev/null
@@ -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);
+}