summaryrefslogtreecommitdiff
path: root/gcc/loop-unswitch.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-03 11:55:29 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-03 11:55:29 +0000
commit4a169b5e5d16879f447e71dfb4de0acfb6e46272 (patch)
tree0a70c4a8c3ca9a7bc72b852791b251af8f8bafc2 /gcc/loop-unswitch.c
parent3b5dc11547a66e2986d16009b01b9c033fb16791 (diff)
downloadgcc-4a169b5e5d16879f447e71dfb4de0acfb6e46272.tar.gz
PR rtl-optimization/52092
* loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared on get_iv_value result. * gcc.c-torture/compile/pr52092.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183869 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-unswitch.c')
-rw-r--r--gcc/loop-unswitch.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/loop-unswitch.c b/gcc/loop-unswitch.c
index 77524d8bfe3..78da1154299 100644
--- a/gcc/loop-unswitch.c
+++ b/gcc/loop-unswitch.c
@@ -1,5 +1,5 @@
/* Loop unswitching for GNU compiler.
- Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+ Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2012
Free Software Foundation, Inc.
This file is part of GCC.
@@ -367,7 +367,7 @@ unswitch_single_loop (struct loop *loop, rtx cond_checked, int num)
fprintf (dump_file, ";; Unswitching loop\n");
/* Unswitch the loop on this condition. */
- nloop = unswitch_loop (loop, bbs[i], cond, cinsn);
+ nloop = unswitch_loop (loop, bbs[i], copy_rtx_if_shared (cond), cinsn);
gcc_assert (nloop);
/* Invoke itself on modified loops. */