On Thu, Apr 18, 2019 at 11:20:32AM +0200, Richard Biener wrote:
>
> This fixes another case similar to the fixed PR89892, mergephi
> via remove_forwarder_block_with_phi caused out-of-date debug
> binds to become live and thus needs similar treatment as
> remove_forwarder_block. Previously it didn't even bother
> to move debug stmts because the destination always has
> multiple predecessors. Now we have to move and reset them.
>
> Fixed by factoring out a worker from remove_forwarder_block and
> using that from remove_forwarder_block_with_phi as well.
>
> Bootstrap & regtest running on x86_64-unknown-linux-gnu.
This regressed quite a few guality tests on both x86_64 and i686:
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 20 x
== 36
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 20 y
== 25
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 20 z
== 6
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 23 x
== 98
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 23 y
== 117
+FAIL: gcc.dg/guality/pr54519-1.c -O3 -g -DPREVENT_OPTIMIZATION line 23 z
== 8
+FAIL: gcc.dg/guality/pr54519-2.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-2.c -O3 -g -DPREVENT_OPTIMIZATION line 17 x
== 6
+FAIL: gcc.dg/guality/pr54519-2.c -O3 -g -DPREVENT_OPTIMIZATION line 17 y
== 25
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 20 x == 36
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 20 y == 25
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 20 z == 6
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 23 x == 98
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 23 y ==
117
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -DPREVENT_OPTIMIZATION line 23 z == 8
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none -DPREVENT_OPTIMIZATION line 20 x == 36
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none -DPREVENT_OPTIMIZATION line 23 x == 98
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 20 x == 36
+FAIL: gcc.dg/guality/pr54519-3.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 23 x == 98
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 20 x
== 36
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 20 y
== 25
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 20 z
== 6
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 23 x
== 98
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 23 y
== 117
+FAIL: gcc.dg/guality/pr54519-3.c -O3 -g -DPREVENT_OPTIMIZATION line 23 z
== 8
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 20 x == 36
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 20 y == 25
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 20 z == 6
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 23 x == 98
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 23 y ==
117
+FAIL: gcc.dg/guality/pr54519-3.c -Os -DPREVENT_OPTIMIZATION line 23 z == 8
+FAIL: gcc.dg/guality/pr54519-4.c -O2 -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-4.c -O2 -DPREVENT_OPTIMIZATION line 17 y == 25
+FAIL: gcc.dg/guality/pr54519-4.c -O2 -flto -fno-use-linker-plugin
-flto-partition=none -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-4.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-4.c -O3 -g -DPREVENT_OPTIMIZATION line 17 x
== 6
+FAIL: gcc.dg/guality/pr54519-4.c -O3 -g -DPREVENT_OPTIMIZATION line 17 y
== 25
+FAIL: gcc.dg/guality/pr54519-4.c -Os -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-4.c -Os -DPREVENT_OPTIMIZATION line 17 y == 25
+FAIL: gcc.dg/guality/pr54519-5.c -O2 -flto -fuse-linker-plugin
-fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 17 x == 6
+FAIL: gcc.dg/guality/pr54519-5.c -O3 -g -DPREVENT_OPTIMIZATION line 17 x
== 6
+FAIL: gcc.dg/guality/pr54519-5.c -O3 -g -DPREVENT_OPTIMIZATION line 17 y
== 25
+FAIL: gcc.dg/guality/pr54519-6.c -Os -DPREVENT_OPTIMIZATION line 11 x == 2
+FAIL: gcc.dg/guality/pr54519-6.c -Os -DPREVENT_OPTIMIZATION line 11 y == 0
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg1
== 1
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg2
== 2
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg3
== 3
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg4
== 4
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg5
== 5
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 14 arg6
== 6
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg1
== 1
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg2
== 2
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg3
== 3
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg4
== 4
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg5
== 5
+FAIL: gcc.dg/guality/pr68860-1.c -O2 -DPREVENT_OPTIMIZATION line 16 arg6
== 6
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg1 == 1
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg2 == 2
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg3 == 3
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg4 == 4
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg5 == 5
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 14
arg6 == 6
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg1 == 1
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg2 == 2
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg3 == 3
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg4 == 4
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg5 == 5
+FAIL: gcc.dg/guality/pr68860-1.c -O3 -g -DPREVENT_OPTIMIZATION line 16
arg6 == 6
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg1
== 1
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg2
== 2
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg3
== 3
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg4
== 4
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg5
== 5
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 14 arg6
== 6
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg1
== 1
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg2
== 2
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg3
== 3
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg4
== 4
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg5
== 5
+FAIL: gcc.dg/guality/pr68860-1.c -Os -DPREVENT_OPTIMIZATION line 16 arg6
== 6
Jakub