diff options
Diffstat (limited to 'gcc')
45 files changed, 87 insertions, 90 deletions
diff --git a/gcc/passes.def b/gcc/passes.def index 0a0e4fe..29921f8 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -210,9 +210,8 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_return_slot); NEXT_PASS (pass_fre, true /* may_iterate */); NEXT_PASS (pass_merge_phi); - NEXT_PASS (pass_thread_jumps); + NEXT_PASS (pass_thread_jumps_full); NEXT_PASS (pass_vrp, true /* warn_array_bounds_p */); - NEXT_PASS (pass_vrp_threader); NEXT_PASS (pass_dse); NEXT_PASS (pass_dce); /* pass_stdarg is always run and at this point we execute @@ -336,9 +335,8 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_thread_jumps); NEXT_PASS (pass_dominator, false /* may_peel_loop_headers_p */); NEXT_PASS (pass_strlen); - NEXT_PASS (pass_thread_jumps); + NEXT_PASS (pass_thread_jumps_full); NEXT_PASS (pass_vrp, false /* warn_array_bounds_p */); - NEXT_PASS (pass_vrp_threader); /* Run CCP to compute alignment and nonzero bits. */ NEXT_PASS (pass_ccp, true /* nonzero_p */); NEXT_PASS (pass_warn_restrict); diff --git a/gcc/testsuite/gcc.dg/loop-unswitch-2.c b/gcc/testsuite/gcc.dg/loop-unswitch-2.c index 0931f6e..f8e99bd 100644 --- a/gcc/testsuite/gcc.dg/loop-unswitch-2.c +++ b/gcc/testsuite/gcc.dg/loop-unswitch-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-details -fdisable-tree-thread2 -fdisable-tree-thread3" } */ +/* { dg-options "-O2 -funswitch-loops -fdump-tree-unswitch-details -fno-thread-jumps" } */ void foo (float **a, float **b, float *c, int n, int m, int l) { diff --git a/gcc/testsuite/gcc.dg/old-style-asm-1.c b/gcc/testsuite/gcc.dg/old-style-asm-1.c index f9406ff0..c8fb668 100644 --- a/gcc/testsuite/gcc.dg/old-style-asm-1.c +++ b/gcc/testsuite/gcc.dg/old-style-asm-1.c @@ -1,9 +1,6 @@ /* PR inline-asm/8832 */ /* { dg-do compile } */ -/* { dg-options "-O2 -dP -fdisable-tree-ethread -fdisable-tree-thread1 -fdisable-tree-thread2 -fdisable-tree-thread3 -fdisable-tree-thread4" } */ - -/* Note: Threader will duplicate BBs and replace one conditional branch by an - unconditional one. */ +/* { dg-options "-O2 -dP -fno-thread-jumps" } */ /* Verify that GCC doesn't optimize old style asm instructions. */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c index 59663dd..be504dd 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Ofast -fdump-tree-vrp-thread1" } */ +/* { dg-options "-Ofast -fdump-tree-dom2" } */ void g (int); void g1 (int); @@ -27,4 +27,9 @@ f (long a, long b, long c, long d, long x) g (a); } -/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "vrp-thread1" } } */ +/* This is actually a regression. The backward threader cannot thread + the above scenario, but it is being caught by the DOM threader + which still uses the forward threader. We should implement this + optimization in the backward threader before killing the forward + threader. Similarly for the other phi_on_compare-*.c tests. */ +/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c index 0c2f6e0..b186570 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Ofast -fdump-tree-vrp-thread1" } */ +/* { dg-options "-Ofast -fdump-tree-dom2" } */ void g (void); void g1 (void); @@ -20,4 +20,4 @@ f (long a, long b, long c, long d, int x) } } -/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c index 6a3d359..b48ecbf 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Ofast -fdump-tree-vrp-thread1" } */ +/* { dg-options "-Ofast -fdump-tree-dom2" } */ void g (void); void g1 (void); @@ -22,4 +22,4 @@ f (long a, long b, long c, long d, int x) } } -/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c index 9bc4c6d..1e09f89 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/phi_on_compare-4.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Ofast -fdump-tree-vrp-thread1" } */ +/* { dg-options "-Ofast -fdump-tree-dom2" } */ void g (int); void g1 (int); @@ -37,4 +37,4 @@ f (long a, long b, long c, long d, int x) g (c + d); } -/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "Removing basic block" 1 "dom2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c b/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c index 496c425..f05076c 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1 -fno-early-inlining -fdelete-null-pointer-checks -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdump-tree-vrp1 -fno-early-inlining -fdelete-null-pointer-checks -fno-thread-jumps" } */ typedef struct { int code; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c index 4ea5f21..f9216a4 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c @@ -5,7 +5,7 @@ range information out of the conditional. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-dominator-opts -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1-details" } */ +/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fno-thread-jumps -fdump-tree-vrp1-details" } */ /* { dg-additional-options "-fdisable-tree-ethread -fdisable-tree-thread1" } */ int diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c index b9edabc..8c8f447 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c @@ -4,8 +4,7 @@ allows us to eliminate the second "if" statement. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-dominator-opts -fdisable-tree-evrp -fdump-tree-vrp1-details" } */ -/* { dg-additional-options "-fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fno-tree-dominator-opts -fdisable-tree-evrp -fdisable-tree-ethread -fdisable-tree-threadfull1 -fdump-tree-vrp1-details" } */ struct f { int i; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21417.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21417.c index b934c9c..36d9cb0 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21417.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21417.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdisable-tree-thread3 -fdump-tree-thread4-details" } */ +/* { dg-options "-O2 -fdump-tree-thread2-details" } */ struct tree_common { @@ -49,5 +49,5 @@ L23: /* We should thread the backedge to the top of the loop; ie we only execute the if (expr->common.code != 142) test once per loop iteration. */ -/* { dg-final { scan-tree-dump-times "jump thread" 1 "thread4" } } */ +/* { dg-final { scan-tree-dump-times "jump thread" 1 "thread2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c index 43f046e..83b7c80 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-evrp-details -fdump-tree-vrp-thread1-details" } */ +/* { dg-options "-O2 -fdump-tree-evrp-details" } */ static int blocksize = 4096; @@ -34,8 +34,3 @@ void foo (void) /* First, we should simplify the bits < 0 test within the loop. */ /* { dg-final { scan-tree-dump-times "Simplified relational" 1 "evrp" } } */ - -/* We used to check for 3 threaded jumps here, but they all would - rotate the loop. */ - - diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c index 72dce83..504b3cc 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c @@ -2,7 +2,7 @@ Make sure VRP folds the second "if" statement. */ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-dominator-opts -fdisable-tree-evrp -fdump-tree-vrp1-details -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fno-thread-jumps -fdisable-tree-evrp -fdump-tree-vrp1-details" } */ int foo (int a) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c b/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c index a2044d0..102b073 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr49039.c @@ -1,6 +1,6 @@ /* PR tree-optimization/49039 */ /* { dg-do compile } */ -/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fno-thread-jumps" } */ extern void bar (void); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c b/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c index 764b3fe..0f66aae 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr59597.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-Ofast -fdump-tree-vrp-thread1-details" } */ +/* { dg-options "-Ofast -fdisable-tree-cunrolli -fdump-tree-threadfull1-details" } */ typedef unsigned short u16; typedef unsigned char u8; @@ -56,7 +56,8 @@ main (int argc, char argv[]) return crc; } -/* None of the threads we can get in vrp-thread1 are valid. They all - cross or rotate loops. */ -/* { dg-final { scan-tree-dump-not "Registering jump thread" "vrp-thread1" } } */ -/* { dg-final { scan-tree-dump-not "joiner" "vrp-thread1" } } */ +/* We used to have no threads in vrp-thread1 because all the attempted + ones would cross loops. Now we get 30+ threads before VRP because + of loop unrolling. A better option is to disable unrolling and + test for the original 4 threads that this test was testing. */ +/* { dg-final { scan-tree-dump-times "Registering jump thread" 4 "threadfull1" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c index 0229a82..f5af7a1 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_1.c @@ -1,6 +1,6 @@ /* PR tree-optimization/61839. */ /* { dg-do run } */ -/* { dg-options "-O2 -fdump-tree-vrp-thread1 -fdisable-tree-evrp -fdump-tree-optimized -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdisable-tree-evrp -fdisable-tree-ethread -fdisable-tree-threadfull1 -fdump-tree-vrp1 -fdump-tree-optimized" } */ /* { dg-require-effective-target int32plus } */ __attribute__ ((noinline)) @@ -38,11 +38,11 @@ int main () } /* Scan for c = 972195717) >> [0, 1] in function foo. */ -/* { dg-final { scan-tree-dump-times "486097858 : 972195717" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "486097858 : 972195717" 1 "vrp1" } } */ /* Previously we were checking for two ?: with constant PHI arguments, but now we collapse them into one. */ /* Scan for c = 972195717) >> [2, 3] in function bar. */ -/* { dg-final { scan-tree-dump-times "243048929 : 121524464" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "243048929 : 121524464" 1 "vrp1" } } */ /* { dg-final { scan-tree-dump-times "486097858" 0 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c index 7be1873..bc2126f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr61839_3.c @@ -1,6 +1,6 @@ /* PR tree-optimization/61839. */ /* { dg-do run } */ -/* { dg-options "-O2 -fdump-tree-vrp-thread1 -fdump-tree-optimized -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdump-tree-vrp -fdump-tree-optimized -fdisable-tree-ethread -fdisable-tree-threadfull1" } */ __attribute__ ((noinline)) int foo (int a, unsigned b) @@ -22,5 +22,5 @@ int main () } /* Scan for c [12, 13] << 8 in function foo. */ -/* { dg-final { scan-tree-dump-times "3072 : 3328" 1 "vrp-thread1" } } */ +/* { dg-final { scan-tree-dump-times "3072 : 3328" 1 "vrp1" } } */ /* { dg-final { scan-tree-dump-times "3072" 0 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c b/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c index ba7025a..e9bb744 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr66752-3.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread1-details -fdump-tree-thread4" } */ +/* { dg-options "-O2 -fdump-tree-threadfull1-details -fdump-tree-thread2" } */ extern int status, pt; extern int count; @@ -35,7 +35,7 @@ foo (int N, int c, int b, int *a) /* There are 2 jump threading opportunities (which don't cross loops), all of which will be realized, which will eliminate testing of FLAG, completely. */ -/* { dg-final { scan-tree-dump-times "Registering jump" 2 "thread1"} } */ +/* { dg-final { scan-tree-dump-times "Registering jump" 2 "threadfull1"} } */ /* We used to remove references to FLAG by DCE2, but this was depending on early threaders threading through loop boundaries @@ -43,4 +43,4 @@ foo (int N, int c, int b, int *a) run after loop optimizations , can successfully eliminate the references to FLAG. Verify that ther are no references by the late threading passes. */ -/* { dg-final { scan-tree-dump-not "if .flag" "thread4"} } */ +/* { dg-final { scan-tree-dump-not "if .flag" "thread2"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr68198.c b/gcc/testsuite/gcc.dg/tree-ssa/pr68198.c index af8b7a5..1250729 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr68198.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr68198.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread1-details -fdisable-tree-ethread" } */ +/* { dg-options "-O2 -fdump-tree-threadfull1-details -fdisable-tree-ethread" } */ extern void abort (void); @@ -38,4 +38,4 @@ c_finish_omp_clauses (tree clauses) } /* There are 3 jump threading opportunities. */ -/* { dg-final { scan-tree-dump-times "Registering jump" 3 "thread1"} } */ +/* { dg-final { scan-tree-dump-times "Registering jump" 3 "threadfull1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c index f2a5e78..b3db1bc 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr77445-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-thread-details-blocks-stats" } */ +/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-thread-details-blocks-stats -fdump-tree-threadfull1-blocks-stats -fdump-tree-threadfull2-blocks-stats" } */ typedef enum STATES { START=0, INVALID, @@ -123,8 +123,8 @@ enum STATES FMS( u8 **in , u32 *transitions) { aarch64 has the highest CASE_VALUES_THRESHOLD in GCC. It's high enough to change decisions in switch expansion which in turn can expose new jump threading opportunities. Skip the later tests on aarch64. */ -/* { dg-final { scan-tree-dump "Jumps threaded: \[7-9\]" "thread2" } } */ +/* { dg-final { scan-tree-dump "Jumps threaded: \[7-9\]" "thread1" } } */ /* { dg-final { scan-tree-dump-not "optimizing for size" "thread1" } } */ -/* { dg-final { scan-tree-dump-not "optimizing for size" "thread2" } } */ -/* { dg-final { scan-tree-dump-not "optimizing for size" "thread3" { target { ! aarch64*-*-* } } } } */ -/* { dg-final { scan-tree-dump-not "optimizing for size" "thread4" { target { ! aarch64*-*-* } } } } */ +/* { dg-final { scan-tree-dump-not "optimizing for size" "threadfull1" } } */ +/* { dg-final { scan-tree-dump-not "optimizing for size" "thread2" { target { ! aarch64*-*-* } } } } */ +/* { dg-final { scan-tree-dump-not "optimizing for size" "threadfull2" { target { ! aarch64*-*-* } } } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr77445.c b/gcc/testsuite/gcc.dg/tree-ssa/pr77445.c index 883a63d..72bf0ec 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr77445.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr77445.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread3-details-blocks -fno-early-inlining -fno-tree-vrp -fno-tree-dominator-opts" } */ +/* { dg-options "-O2 -fno-early-inlining -fno-tree-vrp -fno-tree-dominator-opts -fdump-tree-thread2-details-blocks" } */ static int a; static int b; @@ -25,5 +25,5 @@ main (int argc) if (b) test2 (); } -/* { dg-final { scan-tree-dump-times "Registering jump thread" 2 "thread3" } } */ -/* { dg-final { scan-tree-dump-not "Invalid sum" "thread3" } } */ +/* { dg-final { scan-tree-dump-times "Registering jump thread" 2 "thread2" } } */ +/* { dg-final { scan-tree-dump-not "Invalid sum" "thread2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c index c3ccb5d..c6c2b2b 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread1-details --param logical-op-non-short-circuit=1" } */ +/* { dg-options "-O2 -fdump-tree-threadfull1-details --param logical-op-non-short-circuit=1" } */ // Copied from ssa-dom-thread-11.c @@ -17,4 +17,4 @@ mark_target_live_regs (int b, int block, int bb_tick) /* When the first two conditionals in the first IF are true, but the third conditional is false, then there's a jump threading opportunity to bypass the second IF statement. */ -/* { dg-final { scan-tree-dump-times "Registering.*jump thread" 1 "thread1"} } */ +/* { dg-final { scan-tree-dump-times "Registering.*jump thread" 1 "threadfull1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c index d2689b6..163d9e1 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-2.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread2-details -w" } */ +/* { dg-options "-O2 -fdump-tree-thread1-details -w" } */ // Copied from ssa-dom-thread-12.c. @@ -36,4 +36,4 @@ scan_function (gimple stmt) that stmt->num_ops - 3 != 0. When that test is false, we can derive a value for stmt->num_ops. That in turn allows us to thread the jump for the conditional at the start of the call to gimple_op. */ -/* { dg-final { scan-tree-dump-times "Registering.*jump thread" 1 "thread2"} } */ +/* { dg-final { scan-tree-dump-times "Registering.*jump thread" 1 "thread1"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c index d5aa2e8..dde43ff 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ranger-threader-4.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ -/* { dg-additional-options "-O2 -fdump-tree-vrp-details -fdump-tree-thread1-details --param logical-op-non-short-circuit=1" } */ -/* { dg-final { scan-tree-dump-times "Registering jump" 8 "thread1" } } */ +/* { dg-additional-options "-O2 -fdump-tree-threadfull1-details --param logical-op-non-short-circuit=1" } */ +/* { dg-final { scan-tree-dump-times "Registering jump" 8 "threadfull1" } } */ /* Copied from ssa-thread-14. */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c index 759d9ab..5b2ac53 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-vrp -fdump-tree-dom2-details" } */ +/* { dg-options "-O2 -fno-tree-vrp -fdisable-tree-threadfull1 -fdump-tree-dom2-details" } */ void t(void); void q(void); void q1(void); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c index 73969bb..bcc9ccf 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-11.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-dom2-details --param logical-op-non-short-circuit=1 -fdisable-tree-thread1 -fdisable-tree-thread2 -fdisable-tree-vrp-thread1 " } */ +/* { dg-options "-O2 -fdump-tree-dom2-details --param logical-op-non-short-circuit=1 -fdisable-tree-thread1 -fdisable-tree-thread2 -fdisable-tree-threadfull1" } */ static int *bb_ticks; extern void frob (void); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c index bad5e0a..e68acbb 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-12.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-dom2-details -w -fdisable-tree-thread2" } */ +/* { dg-options "-O2 -fdump-tree-dom2-details -w -fdisable-tree-thread1" } */ typedef long unsigned int size_t; union tree_node; typedef union tree_node *tree; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c index a25fe8b..8497ed6 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-14.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-dom2-details -w --param logical-op-non-short-circuit=1" } */ -/* { dg-additional-options "-fdisable-tree-thread1 -fdisable-tree-ethread -fdisable-tree-thread2" } */ +/* { dg-additional-options "-fdisable-tree-thread1 -fdisable-tree-ethread -fdisable-tree-threadfull1" } */ enum optab_methods { diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c index 1b677f4..e8555f2 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-16.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-dom2-details -w --param logical-op-non-short-circuit=1 -fdisable-tree-vrp-thread1" } */ +/* { dg-options "-O2 -fdump-tree-dom2-details -w --param logical-op-non-short-circuit=1 -fdisable-tree-threadfull1" } */ unsigned char validate_subreg (unsigned int offset, unsigned int isize, unsigned int osize, int zz, int qq) { diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c index 823ada9..74a55aa 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-2b.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread3-stats -fdump-tree-dom2-stats -fdisable-tree-ethread" } */ +/* { dg-options "-O2 -fdump-tree-thread2-stats -fdump-tree-dom2-stats -fdisable-tree-ethread" } */ void foo(); void bla(); @@ -26,4 +26,4 @@ void thread_latch_through_header (void) case. And we want to thread through the header as well. These are both caught by threading in DOM. */ /* { dg-final { scan-tree-dump-not "Jumps threaded" "dom2"} } */ -/* { dg-final { scan-tree-dump-times "Jumps threaded: 1" 1 "thread3"} } */ +/* { dg-final { scan-tree-dump-times "Jumps threaded: 1" 1 "thread2"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c index ee17edd..d40a61f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c @@ -1,15 +1,18 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-dom2-stats -fdump-tree-thread3-stats -fdump-tree-dom3-stats -fdump-tree-vrp-thread2-stats -fno-guess-branch-probability" } */ +/* { dg-options "-O2 -fdump-tree-dom2-stats -fdump-tree-thread2-stats -fdump-tree-dom3-stats -fno-guess-branch-probability" } */ /* { dg-final { scan-tree-dump-not "Jumps threaded" "dom2" } } */ +/* We were previously checking for no threads in vrp-thread2, but now + that we have merged the post and pre threaders, we get a dozen + threads before VRP2. */ + /* aarch64 has the highest CASE_VALUES_THRESHOLD in GCC. It's high enough to change decisions in switch expansion which in turn can expose new jump threading opportunities. Skip the later tests on aarch64. */ /* { dg-final { scan-tree-dump-not "Jumps threaded" "dom3" { target { ! aarch64*-*-* } } } } */ -/* { dg-final { scan-tree-dump-not "Jumps threaded" "vrp-thread2" { target { ! aarch64*-*-* } } } } */ -/* { dg-final { scan-tree-dump "Jumps threaded: 11" "thread3" { target { ! aarch64*-*-* } } } } */ -/* { dg-final { scan-tree-dump "Jumps threaded: 18" "thread3" { target { aarch64*-*-* } } } } */ +/* { dg-final { scan-tree-dump "Jumps threaded: 11" "thread2" { target { ! aarch64*-*-* } } } } */ +/* { dg-final { scan-tree-dump "Jumps threaded: 18" "thread2" { target { aarch64*-*-* } } } } */ enum STATE { S0=0, diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c index 8c5cc82..51fc065 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-14.c @@ -1,7 +1,6 @@ /* { dg-do compile } */ -/* { dg-additional-options "-O2 -fdump-tree-vrp-thread1-details --param logical-op-non-short-circuit=1" } */ -/* { dg-additional-options "-fdisable-tree-thread1" } */ -/* { dg-final { scan-tree-dump-times "Threaded jump" 8 "vrp-thread1" } } */ +/* { dg-additional-options "-O2 --param logical-op-non-short-circuit=1 -fdump-tree-threadfull1-details" } */ +/* { dg-final { scan-tree-dump-times "Registering jump thread" 8 "threadfull1" } } */ void foo (void); void bar (void); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c index 890a0ee..ef9a3e8 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-thread-backedge.c @@ -1,5 +1,5 @@ // { dg-do compile } -// { dg-options "-O2 -fdisable-tree-ethread -fdisable-tree-thread1 -fdisable-tree-thread2 -fno-tree-dominator-opts -fdump-tree-thread3-details" } +// { dg-options "-O2 -fdisable-tree-ethread -fdisable-tree-thread1 -fdisable-tree-thread2 -fno-tree-dominator-opts -fdump-tree-threadfull2-details" } // Test that we can thread jumps across the backedge of a loop through // the switch statement to a particular case. @@ -29,4 +29,4 @@ int foo (unsigned int x, int s) return s; } -// { dg-final { scan-tree-dump "Registering jump thread:.*normal \\(back\\)" "thread3" } } +// { dg-final { scan-tree-dump "Registering jump thread:.*normal \\(back\\)" "threadfull2" } } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c index f3ca140..25c2d3a 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-vrp-thread-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-thread1-details -fdelete-null-pointer-checks" } */ +/* { dg-options "-O2 -fdump-tree-threadfull1-details -fdelete-null-pointer-checks" } */ /* { dg-skip-if "" keeps_null_pointer_checks } */ void oof (void); @@ -29,5 +29,5 @@ build_omp_regions_1 (basic_block bb, struct omp_region *parent, /* ARM Cortex-M defined LOGICAL_OP_NON_SHORT_CIRCUIT to false, so skip below test. */ -/* { dg-final { scan-tree-dump-times "Registering jump thread" 1 "thread1" { target { ! arm_cortex_m } } } } */ +/* { dg-final { scan-tree-dump-times "Registering jump thread" 1 "threadfull1" { target { ! arm_cortex_m } } } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c index 2285c55..6e9c8df 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1 -fdelete-null-pointer-checks -fdisable-tree-evrp -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdump-tree-vrp1 -fdelete-null-pointer-checks -fdisable-tree-evrp -fno-thread-jumps" } */ struct A { diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c index 1d7ea4e..4cbaca4 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fno-thread-jumps" } */ struct A { diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c index c17cd1b..7f38e8d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1 -fno-early-inlining -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdump-tree-vrp1 -fno-early-inlining -fno-thread-jumps" } */ inline int ten() diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c index acb03c2..898477e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdisable-tree-evrp -fdump-tree-vrp1 -fno-thread-jumps" } */ int baz (void); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c index 31a5415..9c4acd2 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1-details -fdelete-null-pointer-checks -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1-details -fdelete-null-pointer-checks -fno-thread-jumps" } */ int foo (int i, int *p) diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c index 2c6742b..4599fa7 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1-details -fdisable-tree-thread1 -fdelete-null-pointer-checks" } */ +/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1-details -fno-thread-jumps -fdelete-null-pointer-checks" } */ /* Compile with -fno-tree-fre -O2 to prevent CSEing *p. */ int diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c index fad0051..4e4954d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1 -std=gnu89 -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fno-tree-fre -fdisable-tree-evrp -fdump-tree-vrp1 -std=gnu89 -fno-thread-jumps" } */ foo (int *p) { diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp33.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp33.c index 88833eb..470675e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp33.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp33.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1 -fno-tree-fre -fdisable-tree-evrp -fdisable-tree-ethread -fdisable-tree-thread1" } */ +/* { dg-options "-O2 -fdump-tree-vrp1 -fno-tree-fre -fdisable-tree-evrp -fno-thread-jumps" } */ /* This is from PR14052. */ diff --git a/gcc/testsuite/gcc.dg/uninit-pred-7_a.c b/gcc/testsuite/gcc.dg/uninit-pred-7_a.c index c2ba2a4..434d90a 100644 --- a/gcc/testsuite/gcc.dg/uninit-pred-7_a.c +++ b/gcc/testsuite/gcc.dg/uninit-pred-7_a.c @@ -23,7 +23,7 @@ int foo (int n, int l, int m, int r) blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */ if ( l ) - blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */ + blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail *-*-* } } */ return 0; } diff --git a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c index 8c2d28c..552ab8b 100644 --- a/gcc/testsuite/gcc.dg/uninit-pred-9_b.c +++ b/gcc/testsuite/gcc.dg/uninit-pred-9_b.c @@ -17,10 +17,10 @@ int foo (int n, int l, int m, int r) if (l > 100) if ( (n <= 9) && (m < 100) && (r < 19) ) - blah(v); /* { dg-bogus "uninitialized" "bogus warning" } */ + blah(v); /* { dg-bogus "uninitialized" "bogus warning" { xfail powerpc64*-*-* } } */ if ( (n <= 8) && (m < 99) && (r < 19) ) - blah(v); /* { dg-bogus "uninitialized" "pr101674" { xfail powerpc64*-*-* mmix-*-* cris-*-* } } */ + blah(v); /* { dg-bogus "uninitialized" "pr101674" { xfail mmix-*-* cris-*-* } } */ return 0; } diff --git a/gcc/tree-ssa-threadbackward.c b/gcc/tree-ssa-threadbackward.c index 456effc..9979bfd 100644 --- a/gcc/tree-ssa-threadbackward.c +++ b/gcc/tree-ssa-threadbackward.c @@ -955,7 +955,7 @@ const pass_data pass_data_thread_jumps = const pass_data pass_data_thread_jumps_full = { GIMPLE_PASS, - "thread-full", + "threadfull", OPTGROUP_NONE, TV_TREE_SSA_THREAD_JUMPS, ( PROP_cfg | PROP_ssa ), |