diff options
| author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-01 14:42:46 +0000 |
|---|---|---|
| committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-01 14:42:46 +0000 |
| commit | 611da9dd72a4c9d9ece2a8d24612e4aee435414a (patch) | |
| tree | dec33042472c7f0b545d0ec7efa809109f6fc505 | |
| parent | 2eb545ee32615be6613060d04a67703197d2c104 (diff) | |
| download | ppe42-gcc-611da9dd72a4c9d9ece2a8d24612e4aee435414a.tar.gz ppe42-gcc-611da9dd72a4c9d9ece2a8d24612e4aee435414a.zip | |
Backported from mainline
2014-09-18 Vladimir Makarov <vmakarov@redhat.com>
PR debug/63285
* haifa-sched.c (schedule_block): Advance cycle at the end of BB
if advance != 0.
* gcc.target/i386/pr63285.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@215766 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/haifa-sched.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.target/i386/pr63285.c | 28 |
4 files changed, 40 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 73722ce4b44..d875c3b2a9c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2014-10-01 Jakub Jelinek <jakub@redhat.com> Backported from mainline + 2014-09-18 Vladimir Makarov <vmakarov@redhat.com> + + PR debug/63285 + * haifa-sched.c (schedule_block): Advance cycle at the end of BB + if advance != 0. + 2014-09-10 Jan Hubicka <hubicka@ucw.cz> PR tree-optimization/63186 diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 653cb8272ea..e437e0a429c 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -6368,7 +6368,7 @@ schedule_block (basic_block *target_bb, state_t init_state) if (ls.modulo_epilogue) success = true; end_schedule: - if (!ls.first_cycle_insn_p) + if (!ls.first_cycle_insn_p || advance) advance_one_cycle (); perform_replacements_new_cycle (); if (modulo_ii > 0) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0afabe51f2d..579a4dc83a4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2014-10-01 Jakub Jelinek <jakub@redhat.com> Backported from mainline + 2014-09-18 Vladimir Makarov <vmakarov@redhat.com> + + PR debug/63285 + * gcc.target/i386/pr63285.c: New test. + 2014-09-10 Jan Hubicka <hubicka@ucw.cz> PR tree-optimization/63186 diff --git a/gcc/testsuite/gcc.target/i386/pr63285.c b/gcc/testsuite/gcc.target/i386/pr63285.c new file mode 100644 index 00000000000..e4df8fb9238 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr63285.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fcompare-debug" } */ + +struct S { int a; }; +struct T { int b, c; } a; +long b; +int c, d; +void bar (int, int); +void baz (void *, int); + +void +foo (struct S *x, int y, int z, void *f, int *p, struct T *e) +{ + while (x) + { + baz (f, &d > p); + if (z & 1) + bar (f > (void *) &f, z); + } + if (c) + { + asm ("" : "+m" (a) : "i" (0)); + y--; + } + if (e->b == e->c) + c = y; + y--; +} |

