Some fixes for profile test cases for autofdo
authorAndi Kleen <ak@linux.intel.com>
Thu, 14 Jul 2016 02:14:56 +0000 (02:14 +0000)
committerAndi Kleen <ak@gcc.gnu.org>
Thu, 14 Jul 2016 02:14:56 +0000 (02:14 +0000)
This fixes some basic issues with the profile test cases with autofdo.

- Disable checking for value transformations that autofdo does not
  support.
- Disable checking for fixed hit counts which autofdo does not support
- Enable dumping of afdo log file and check right log file.
- Increase run time of test cases to 1M iterations because autofdo needs
  a few samples to make sense of a program. The test case don't run
  noticeable slower with that.

There are still failures unfortunately, especially the indirect call
transformations do not trigger because autofdo thinks they are not hot.
This can be addressed later.

gcc/testsuite/:

2016-07-13  Andi Kleen  <ak@linux.intel.com>

* g++.dg/tree-prof/indir-call-prof.C: Basic fixes for autofdo.
* g++.dg/tree-prof/morefunc.C: Dito.
* g++.dg/tree-prof/pr35545.C: Dito.
* g++.dg/tree-prof/reorder.C: Dito.
* gcc.dg/tree-prof/20050826-2.c: Dito.
* gcc.dg/tree-prof/cmpsf-1.c: Dito.
* gcc.dg/tree-prof/cold_partition_label.c: Dito.
* gcc.dg/tree-prof/ic-misattribution-1.c: Dito.
* gcc.dg/tree-prof/indir-call-prof.c: Dito.
* gcc.dg/tree-prof/inliner-1.c: Dito.
* gcc.dg/tree-prof/merge_block.c: Dito.
* gcc.dg/tree-prof/stringop-1.c: Dito.
* gcc.dg/tree-prof/stringop-2.c: Dito.
* gcc.dg/tree-prof/switch-case-1.c: Dito.
* gcc.dg/tree-prof/switch-case-2.c: Dito.
* gcc.dg/tree-prof/time-profiler-1.c: Dito.
* gcc.dg/tree-prof/time-profiler-2.c: Dito.
* gcc.dg/tree-prof/update-loopch.c: Dito.
* gcc.dg/tree-prof/val-prof-1.c: Dito.
* gcc.dg/tree-prof/val-prof-2.c: Dito.
* gcc.dg/tree-prof/val-prof-3.c: Dito.
* gcc.dg/tree-prof/val-prof-4.c: Dito.
* gcc.dg/tree-prof/val-prof-5.c: Dito.
* gcc.dg/tree-prof/val-prof-6.c: Dito.
* gcc.dg/tree-prof/val-prof-7.c: Dito.

From-SVN: r238325

26 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/tree-prof/indir-call-prof.C
gcc/testsuite/g++.dg/tree-prof/morefunc.C
gcc/testsuite/g++.dg/tree-prof/pr35545.C
gcc/testsuite/g++.dg/tree-prof/reorder.C
gcc/testsuite/gcc.dg/tree-prof/20050826-2.c
gcc/testsuite/gcc.dg/tree-prof/cmpsf-1.c
gcc/testsuite/gcc.dg/tree-prof/cold_partition_label.c
gcc/testsuite/gcc.dg/tree-prof/ic-misattribution-1.c
gcc/testsuite/gcc.dg/tree-prof/indir-call-prof.c
gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
gcc/testsuite/gcc.dg/tree-prof/merge_block.c
gcc/testsuite/gcc.dg/tree-prof/stringop-1.c
gcc/testsuite/gcc.dg/tree-prof/stringop-2.c
gcc/testsuite/gcc.dg/tree-prof/switch-case-1.c
gcc/testsuite/gcc.dg/tree-prof/switch-case-2.c
gcc/testsuite/gcc.dg/tree-prof/time-profiler-1.c
gcc/testsuite/gcc.dg/tree-prof/time-profiler-2.c
gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-6.c
gcc/testsuite/gcc.dg/tree-prof/val-prof-7.c

index 60c7a9d442f831bbdd91e756fae4a870a64745c2..6119421f7b43c93fbc74a1e696d1383150c4624c 100644 (file)
@@ -1,3 +1,31 @@
+2016-07-13  Andi Kleen  <ak@linux.intel.com>
+
+       * g++.dg/tree-prof/indir-call-prof.C: Basic fixes for autofdo.
+       * g++.dg/tree-prof/morefunc.C: Dito.
+       * g++.dg/tree-prof/pr35545.C: Dito.
+       * g++.dg/tree-prof/reorder.C: Dito.
+       * gcc.dg/tree-prof/20050826-2.c: Dito.
+       * gcc.dg/tree-prof/cmpsf-1.c: Dito.
+       * gcc.dg/tree-prof/cold_partition_label.c: Dito.
+       * gcc.dg/tree-prof/ic-misattribution-1.c: Dito.
+       * gcc.dg/tree-prof/indir-call-prof.c: Dito.
+       * gcc.dg/tree-prof/inliner-1.c: Dito.
+       * gcc.dg/tree-prof/merge_block.c: Dito.
+       * gcc.dg/tree-prof/stringop-1.c: Dito.
+       * gcc.dg/tree-prof/stringop-2.c: Dito.
+       * gcc.dg/tree-prof/switch-case-1.c: Dito.
+       * gcc.dg/tree-prof/switch-case-2.c: Dito.
+       * gcc.dg/tree-prof/time-profiler-1.c: Dito.
+       * gcc.dg/tree-prof/time-profiler-2.c: Dito.
+       * gcc.dg/tree-prof/update-loopch.c: Dito.
+       * gcc.dg/tree-prof/val-prof-1.c: Dito.
+       * gcc.dg/tree-prof/val-prof-2.c: Dito.
+       * gcc.dg/tree-prof/val-prof-3.c: Dito.
+       * gcc.dg/tree-prof/val-prof-4.c: Dito.
+       * gcc.dg/tree-prof/val-prof-5.c: Dito.
+       * gcc.dg/tree-prof/val-prof-6.c: Dito.
+       * gcc.dg/tree-prof/val-prof-7.c: Dito.
+
 2016-07-13  Andi Kleen  <ak@linux.intel.com>
 
        * lib/profopt.exp (profopt-execute): Remove .imports files.
index a03edc273c7909f72f78cd87dd3b7a8327a232fe..3134c3c06437df56ef6d880791f926170d59e84c 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile -fdump-ipa-afdo" } */
 
 struct A {
   A () {}
@@ -24,14 +24,20 @@ main (void)
   
   A* p;
 
-  p = (A *)wrap ((void *)&a);
-  p->AA ();
+  int i;
 
-  p = (B *)wrap ((void *)&b);
-  p->AA ();
+  for (i = 0; i < 1000000; i++)
+    {
+      p = (A *)wrap ((void *)&a);
+      p->AA ();
+
+      p = (B *)wrap ((void *)&b);
+      p->AA ();
+    }
   
   return 0;
 }
 
-/* { dg-final-use { scan-ipa-dump "Indirect call -> direct call.* AA transformation on insn" "profile" } } */
-/* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized" } } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Indirect call -> direct call.* AA transformation on insn" "profile" } } */
+/* { dg-final-use-autofdo { scan-ipa-dump "Indirect call -> direct call.* AA transformation on insn" "afdo" } } */
+/* { dg-final-use-not-autofdo { scan-tree-dump-not "Invalid sum" "optimized" } } */
index b7ff5e90bd38e15a727e5156894e992e475e9a21..2e3fc1147583692f575e34c9a4120e51c8dbd94c 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -fno-devirtualize --param=profile-func-internal-id=0 -fdump-ipa-profile -Wno-attributes -Wno-coverage-mismatch" } */
+/* { dg-options "-O2 -fno-devirtualize --param=profile-func-internal-id=0 -fdump-ipa-profile -fdump-ipa-afdo -Wno-attributes -Wno-coverage-mismatch" } */
 #include "reorder_class1.h"
 #include "reorder_class2.h"
 
@@ -28,7 +28,7 @@ static __attribute__((always_inline))
 void test2 (B *tc)
 {
   int i;
-  for (i = 0; i < 1000; i++)
+  for (i = 0; i < 1000000; i++)
      g += tc->foo();
 }
 
@@ -51,4 +51,5 @@ int main()
 
 }
 
-/* { dg-final-use { scan-ipa-dump-times "Indirect call -> direct call" 2 "profile" } } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Indirect call -> direct call" 2 "profile" } } */
+/* { dg-final-use-autofdo { scan-ipa-dump-times "Indirect call -> direct call" 2 "afdo" } } */
index 7d24e71686600a43374a236ed9113069f2e4257f..e1bd047c8324a65cf94c56bea920345c262a9778 100644 (file)
@@ -27,7 +27,7 @@ int main()
 
   A* ap = 0;
 
-  for (i = 0; i < 10000; i++)
+  for (i = 0; i < 1000000; i++)
   {
 
      if (i%7==0)
index f582b2d32a4f4e64c95dbe1a3d0473c19ead70e3..6b3bad1f54d9e73ced3e756feded82f85f3c0cf4 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -fno-devirtualize --param=profile-func-internal-id=0 -fdump-ipa-profile -Wno-coverage-mismatch -Wno-attributes" } */
+/* { dg-options "-O2 -fno-devirtualize --param=profile-func-internal-id=0 -fdump-ipa-profile -fdump-ipa-afdo -Wno-coverage-mismatch -Wno-attributes" } */
 
 #ifdef _PROFILE_USE
 #include "reorder_class1.h"
@@ -13,7 +13,7 @@ static __attribute__((always_inline))
 void test1 (A *tc)
 {
   int i;
-  for (i = 0; i < 1000; i++)
+  for (i = 0; i < 1000000; i++)
      g += tc->foo(); 
    if (g<100) g++;
 }
@@ -22,7 +22,7 @@ static __attribute__((always_inline))
 void test2 (B *tc)
 {
   int i;
-  for (i = 0; i < 1000; i++)
+  for (i = 0; i < 1000000; i++)
      g += tc->foo();
 }
 
@@ -44,4 +44,5 @@ int main()
   test_b(bp);
 }
 
-/* { dg-final-use { scan-ipa-dump-times "Indirect call -> direct call" 2 "profile" } } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Indirect call -> direct call" 2 "profile" } } */
+/* { dg-final-use-autofdo { scan-ipa-dump-times "Indirect call -> direct call" 2 "afdo" } } */
index bdaef3d5bf576bf8aea4a26d13d8984c1acb89a9..f0febbdffa28d0f75ddc550d5a615e621f28ac94 100644 (file)
@@ -72,4 +72,4 @@ main (void)
   return 0;
 }
 
-/* { dg-final-use { scan-tree-dump-not "Invalid sum" "dom2"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump-not "Invalid sum" "dom2"} } */
index 49102df3e61a8d2d3531d2716b9eedd4f9b568d5..16adb92e1ca13e8e7a2145500d1f984712ac6e23 100644 (file)
@@ -181,4 +181,4 @@ main (void)
   exit (0);
 }
 
-/* { dg-final-use { scan-tree-dump-not "Invalid sum" "dom2"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump-not "Invalid sum" "dom2"} } */
index 910ac046bccbf98c2660977708f17894d5cfc6e2..6214e3629f254c0963528ec8aedf02e09c88b34a 100644 (file)
@@ -29,9 +29,11 @@ foo (int path)
 int
 main (int argc, char *argv[])
 {
+  int i;
   buf_hot =  "hello";
   buf_cold = "world";
-  foo (argc);
+  for (i = 0; i < 1000000; i++)
+    foo (argc);
   return 0;
 }
 
index e36ba2691487f2fe9445be6cae0f2de25ffc39a8..3979b17b1568420e565c8fee4044c51dc1020624 100644 (file)
@@ -15,4 +15,4 @@ caller(void (*func) (void))
   func ();
 }
 
-/* { dg-final-use { scan-ipa-dump "hist->count 1 hist->all 1" "profile" } } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "hist->count 1 hist->all 1" "profile" } } */
index bed40a594c337ce615cc9d11ebb7d50b1fba3796..53063c3e7fa619d1f3e02f8dafba8970dd53d2a9 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile" } */
+/* { dg-options "-O2 -fdump-tree-optimized -fdump-ipa-profile -fdump-ipa-afdo" } */
 
 static int a1 (void)
 {
@@ -28,7 +28,7 @@ main (void)
   int (*p) (void);
   int  i;
 
-  for (i = 0; i < 10; i ++)
+  for (i = 0; i < 10000000; i ++)
     {
        setp (&p, i);
        p ();
@@ -37,5 +37,6 @@ main (void)
   return 0;
 }
 
-/* { dg-final-use { scan-ipa-dump "Indirect call -> direct call.* a1 transformation on insn" "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Indirect call -> direct call.* a1 transformation on insn" "profile"} } */
+/* { dg-final-use-autofdo { scan-ipa-dump "Indirect call -> direct call.* a1 transformation on insn" "afdo"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index f0cdf879c83aacd894b44630714ccc599fe2a751..8d1481bfeb7882b7125865fdf143ae8b5c3ba081 100644 (file)
@@ -25,7 +25,7 @@ int
 main ()
 {
   int i;
-  for (i = 0; i < 100; i++)
+  for (i = 0; i < 1000000; i++)
     {
       if (a)
         cold_function ();
index da4ec5a867653ee0fa77d310ccf13d31f57f7485..5da5ddff6a0073251cc43e0da91d382b1fdb162b 100644 (file)
@@ -14,7 +14,7 @@ main ()
 {
   int i;
   /* The loop will be optimized away after ipa-inline.  */
-  for (i = 0; i < 1000; i++)
+  for (i = 0; i < 1000000; i++)
     t ();
   return 0;
 }
index e1e06348aeab9479fff83f7fcc2ca90e8ddf883d..6f8908a3431803cecb5e7380f9874c23c14c6fa3 100644 (file)
@@ -14,8 +14,9 @@ main()
     }
    return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Single value 4 stringop" "profile"} } */
+/* autofdo doesn't support value profiling for now: */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Single value 4 stringop" "profile"} } */
 /* Really this ought to simplify into assignment, but we are not there yet.  */
 /* a[0] = b[0] is what we fold the resulting memcpy into.  */
-/* { dg-final-use { scan-tree-dump " = MEM.*&b" "optimized"} } */
-/* { dg-final-use { scan-tree-dump "MEM.*&a\\\] = " "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump " = MEM.*&b" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "MEM.*&a\\\] = " "optimized"} } */
index 66f8d292e19c357ab0a60360bd01d32dca9547d2..330b159b7fceff9836999353e31545d67ba7f6e3 100644 (file)
@@ -19,6 +19,7 @@ main()
     }
    return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Single value 4 stringop" "profile"} } */
+/* autofdo doesn't support value profiling for now: */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Single value 4 stringop" "profile"} } */
 /* The versioned memset of size 4 should be optimized to an assignment.  */
-/* { dg-final-use { scan-tree-dump "MEM\\\[\\(void .\\)&a\\\] = 168430090" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "MEM\\\[\\(void .\\)&a\\\] = 168430090" "optimized"} } */
index 89e76cc59d58067849c0b1207d238883a07d5589..6a9af083a9a22dfa356b06636cba9cfeff8a4b2c 100644 (file)
@@ -35,5 +35,6 @@ int main ()
    foo ((i * i) % 5);
  return 0;
 }
-/* { dg-final-use { scan-rtl-dump-times ";; basic block\[^\\n\]*count 4000" 2 "expand"} } */
-/* { dg-final-use { scan-rtl-dump-times ";; basic block\[^\\n\]*count 2000" 1 "expand"} } */
+/* autofdo cannot do that precise execution numbers */
+/* { dg-final-use-not-autofdo { scan-rtl-dump-times ";; basic block\[^\\n\]*count 4000" 2 "expand"} } */
+/* { dg-final-use-not-autofdo { scan-rtl-dump-times ";; basic block\[^\\n\]*count 2000" 1 "expand"} } */
index 71612821174d23168ad7294eb24ce4852b6777ae..cfedc9c6b765594a9b63454acdbb88a37a8c127f 100644 (file)
@@ -35,5 +35,6 @@ int main ()
    foo ((i * i) % 5);
  return 0;
 }
-/* { dg-final-use { scan-rtl-dump-times ";; basic block\[^\\n\]*count 4000" 2 "expand"} } */
-/* { dg-final-use { scan-rtl-dump-times ";; basic block\[^\\n\]*count 2000" 1 "expand"} } */
+/* autofdo cannot do that precise execution numbers: */
+/* { dg-final-use-not-autofdo { scan-rtl-dump-times ";; basic block\[^\\n\]*count 4000" 2 "expand"} } */
+/* { dg-final-use-not-autofdo { scan-rtl-dump-times ";; basic block\[^\\n\]*count 2000" 1 "expand"} } */
index ee8a9d805cf91b5f8f322539267da684d10b9780..455f923f3f40533fb37b9d11d03b1966f2d50782 100644 (file)
@@ -16,6 +16,6 @@ int main ()
 {
   return foo ();
 }
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 0" 1 "profile"} } */
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 1" 1 "profile"} } */
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 2" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 0" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 2" 1 "profile"} } */
index 29c0d191afe0bd76f750ee49d915075a09e29186..e6eaeb9981016f0a417d317e5a956b7cd6df396c 100644 (file)
@@ -43,7 +43,7 @@ int main ()
 
   return r;
 }
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 0" 2 "profile"} } */
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 1" 1 "profile"} } */
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 2" 1 "profile"} } */
-/* { dg-final-use { scan-ipa-dump-times "Read tp_first_run: 3" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 0" 2 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 1" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 2" 1 "profile"} } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump-times "Read tp_first_run: 3" 1 "profile"} } */
index 4dd51af6aeb8c955d40e209f0425149fe36cb653..242fa524ee689a33754370a40c19d82fd64f13ea 100644 (file)
@@ -14,8 +14,9 @@ main ()
 /* Loop header copying will peel away the initial conditional, so the loop body
    is once reached directly from entry point of function, rest via loopback
    edge.  */
-/* { dg-final-use { scan-ipa-dump "loop depth 1, count 33334" "profile"} } */
-/* { dg-final-use { scan-tree-dump "loop depth 1, count 33333" "optimized"} } */
-/* { dg-final-use { scan-tree-dump-not "loop depth 1, count 33332" "optimized"} } */
-/* { dg-final-use { scan-tree-dump "Removing basic block" "optimized"} } */
+/* autofdo cannot do that precise counts */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "loop depth 1, count 33334" "profile"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "loop depth 1, count 33333" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump-not "loop depth 1, count 33332" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "Removing basic block" "optimized"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index 97dd311f4df0a5d4205c1c609ba9f81aecc5eac8..35e0f908f24402d079eabb42b5d3ec3ca03ecf48 100644 (file)
@@ -16,6 +16,7 @@ main ()
     }
   return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Div.mod by constant n_\[0-9\]*=257 transformation on insn" "profile"} } */
-/* { dg-final-use { scan-tree-dump "if \\(n_\[0-9\]* != 257\\)" "optimized"} } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Div.mod by constant n_\[0-9\]*=257 transformation on insn" "profile"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "if \\(n_\[0-9\]* != 257\\)" "optimized"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index 2e85a86f513aadbe28eab460d787626bb048a36f..ad78043ddd6dd3c8b9c40bd3c19db2d52491726e 100644 (file)
@@ -24,8 +24,9 @@ main ()
     }
   return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Mod power of 2 transformation on insn" "profile" } } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Mod power of 2 transformation on insn" "profile" } } */
 /* This is part of code checking that n is power of 2, so we are sure that the transformation
    didn't get optimized out.  */
-/* { dg-final-use { scan-tree-dump "n_\[0-9\]* \\+ (4294967295|0x0*ffffffff)" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "n_\[0-9\]* \\+ (4294967295|0x0*ffffffff)" "optimized"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index 9a600c334eef04a8b1f7877e88b16635fd2d8bf4..366ada1fa227ac8794205503e9d4c8cb738ccc81 100644 (file)
@@ -24,8 +24,9 @@ main ()
     }
   return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Mod subtract transformation on insn" "profile" } } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Mod subtract transformation on insn" "profile" } } */
 /* This is part of code checking that n is greater than the divisor so we are sure that it
    didn't get optimized out.  */
-/* { dg-final-use { scan-tree-dump "if \\(_\[0-9\]* \\< n_\[0-9\]*" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "if \\(_\[0-9\]* \\< n_\[0-9\]*" "optimized"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index 5d151580f1f503ea3d60d2669360348b8d864563..374428e720efffbf2a673b11910bbff1984d8e80 100644 (file)
@@ -24,8 +24,9 @@ main ()
     }
   return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Mod subtract transformation on insn" "profile" } } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Mod subtract transformation on insn" "profile" } } */
 /* This is part of code checking that n is greater than the divisor so we are sure that it
    didn't get optimized out.  */
-/* { dg-final-use { scan-tree-dump "if \\(n_\[0-9\]* \\>" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "if \\(n_\[0-9\]* \\>" "optimized"} } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index 7e88ac47dc6dc32febf4c0aa5022a3cda2ee6440..caf97ce4f878e87a2cc1f5dc76adff9c1ca19fc6 100644 (file)
@@ -12,5 +12,6 @@ main()
                        a[i]/=b;
        return 0;
 }
-/* { dg-final-use { scan-ipa-dump "Div.mod by constant b.*=997 transformation on insn" "profile" } } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Div.mod by constant b.*=997 transformation on insn" "profile" } } */
 /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
index fd24ee33bda5e0b98ce597d944c96a9282282e40..597efa6ad70bc3545b5dc165c9aa98427fda2926 100644 (file)
@@ -15,5 +15,6 @@ main()
     t(i);
   return 0;
 }
-/* { dg-final-use { scan-tree-dump "Average value sum:499500" "optimized"} } */
-/* { dg-final-use { scan-tree-dump "IOR value" "optimized"} } */
+/* autofdo does not do value profiling so far */
+/* { dg-final-use-not-autofdo { scan-tree-dump "Average value sum:499500" "optimized"} } */
+/* { dg-final-use-not-autofdo { scan-tree-dump "IOR value" "optimized"} } */
index 3d85714d14beb2dd8d0fce96aa8fadaa8e1a448e..9765b997effaad1825644f5e5f73895a79ca9cfc 100644 (file)
@@ -22,4 +22,4 @@ int main() {
   return 0;
 }
 
-/* { dg-final-use { scan-ipa-dump "Single value 8 stringop transformation on bzero" "profile" } } */
+/* { dg-final-use-not-autofdo { scan-ipa-dump "Single value 8 stringop transformation on bzero" "profile" } } */