(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
ssa-dom-thread-2c.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-vrp1-stats -fdump-tree-dom2-stats" } */
       3  
       4  void foo();
       5  void bla();
       6  void bar();
       7  
       8  /* This is a TODO -- it is correct to thread both entry and latch edge through
       9     the header, but we do not handle this case yet.  */
      10  
      11  void dont_thread_1 (void)
      12  {
      13    int i = 0;
      14    int first = 1;
      15  
      16    do
      17      {
      18        bla ();
      19        bla ();
      20        bla ();
      21        if (first)
      22  	foo ();
      23        else
      24  	bar ();
      25  
      26        first = 0;
      27        bla ();
      28      } while (i++ < 100);
      29  }
      30  
      31  /* In this case we can thread if and only if we thread through the
      32     header and around the latch.  If one is done without the other, then
      33     we create an irreducible CFG. */
      34  /* { dg-final { scan-tree-dump-not "Jumps threaded" "vrp1"} } */
      35  /* { dg-final { scan-tree-dump-not "Jumps threaded" "dom2"} } */