(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
inline-2.c
       1  /* Verify that logic combining probabilities works as expected.  */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O3 -c -fdump-ipa-inline -fno-early-inlining"  } */
       4  
       5  struct bah {int a,b,d;};
       6  void test3 (int, int, int, int, int);
       7  
       8  __attribute__ ((noinline))
       9  void test(int a,int b,int c,int d,int e)
      10  {
      11    test3(a,b,c,d,e);
      12  }
      13  inline
      14  static void bar (int parm1, int parm2)
      15  {
      16    int i;
      17    for (i = 0; i<10; i++)
      18      {
      19        test (0,0,parm1,parm2,i);
      20      }
      21  }
      22  void foo (int invariant)
      23  {
      24    int i;
      25    for (i = 0; i<10; i++)
      26      {
      27        bar (i, invariant);
      28      }
      29  }
      30  /* After inlining bar into foo, op2 is invariant within inner loop.  */
      31  /* { dg-final { scan-ipa-dump "op2 change 9.990000. of time"  "inline"  } } */
      32  /* After inlining bar into foo, op3 is invariant within both loops.  */
      33  /* { dg-final { scan-ipa-dump "op3 change 1.000000. of time"  "inline"  } } */