Analyzing function body size: g
Overall function body time: 6-2 size: 7-3
With function call overhead time: 6-14 size: 7-6
Analyzing function body size: f
Overall function body time: 131-3 size: 21-4
With function call overhead time: 131-20 size: 21-12

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Deciding on inlining.  Starting with size 28.

Flattening functions:

Deciding on smaller functions:

Deciding on functions called once:

Inlined 0 calls, eliminated 0 functions, size 28 turned to 28 size.

g (int i)
{
  unsigned int D.2029;
  unsigned int csui.0;
  int D.2012;

<bb 2>:
  D.2029_7 = (unsigned int) i_2(D);
  csui.0_8 = D.2029_7 + 4294967295;
  if (csui.0_8 <= 4)
    goto <bb 10> (<L9>);
  else
    goto <bb 9> (<L8>);

<L8>:
  D.2012_5 = 0;
  goto <bb 8> (<L10>);

<L9>:
  D.2012_6 = CSWTCH.1[csui.0_8];

  # D.2012_1 = PHI <D.2012_6(10), D.2012_5(9)>
<L10>:
<L7>:
  return D.2012_1;

}


f (int start, int end, int * a, int * b, int c, struct s * sp)
{
  int i;
  int count;
  int (*<T264>) (const char *, void *, int *) D.2022;
  void * D.2021;
  struct s * D.2020;
  int D.2019;
  int D.2018;
  int * D.2017;
  int * D.2016;
  long unsigned int D.2015;
  long unsigned int D.2014;

<bb 2>:
  goto <bb 4>;

<bb 3>:
  D.2014_7 = (long unsigned int) i_2;
  D.2015_8 = D.2014_7 * 4;
  D.2016_10 = a_9(D) + D.2015_8;
  D.2014_11 = (long unsigned int) i_2;
  D.2015_12 = D.2014_11 * 4;
  D.2017_14 = b_13(D) + D.2015_12;
  D.2018_15 = *D.2017_14;
  D.2019_17 = D.2018_15 + c_16(D);
  *D.2016_10 = D.2019_17;
  count_18 = count_1 + 1;
  i_19 = i_2 + 1;

<bb 4>:
  # count_1 = PHI <0(2), count_18(3)>
  # i_2 = PHI <start_4(D)(2), i_19(3)>
  if (i_2 <= end_6(D))
    goto <bb 3>;
  else
    goto <bb 5>;

<bb 5>:
  D.2020_21 = sp_20(D)->s;
  D.2021_22 = D.2020_21->vp;
  D.2022_23 = (int (*<T264>) (const char *, void *, int *)) D.2021_22;
  D.2022_23 ("Hello World!\n", exit, &M_var);
  return count_1;

}



Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:callgraph:

exit/2(-1) @# availability:not_available address_taken
  called by: 
  calls: 
  References: 
  Refering this function:  fn:f/0 (addr)
g/1(1) @# (asm: g) availability:available analyzed 6 time, 14 benefit 7 size, 6 benefit needed reachable body externally_visible finalized inlinable
  called by: 
  calls: 
  References:  var:CSWTCH.1 (read)
  Refering this function: 
f/0(0) @# (asm: f) availability:available analyzed 131 time, 20 benefit 21 size, 12 benefit needed reachable body externally_visible finalized inlinable
  called by: 
  calls: 
  References:  fn:exit/2 (addr) var:M_var (addr)
  Refering this function: 
  has 1 outgoing edges for indirect calls.

;; Function f (f)

f (int start, int end, int * a, int * b, int c, struct s * sp)
{
  int i;
  int count;
  int (*<T264>) (const char *, void *, int *) D.2022;
  void * D.2021;
  struct s * D.2020;
  int D.2019;
  int D.2018;
  int * D.2017;
  int * D.2016;
  long unsigned int D.2015;
  long unsigned int D.2014;

  # BLOCK 2 freq:900
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  goto <bb 4>;
  # SUCC: 4 [100.0%]  (fallthru,exec)

  # BLOCK 3 freq:9100
  # PRED: 4 [91.0%]  (true,exec)
  D.2014_7 = (long unsigned int) i_2;
  D.2015_8 = D.2014_7 * 4;
  D.2016_10 = a_9(D) + D.2015_8;
  D.2014_11 = (long unsigned int) i_2;
  D.2015_12 = D.2014_11 * 4;
  D.2017_14 = b_13(D) + D.2015_12;
  D.2018_15 = *D.2017_14;
  D.2019_17 = D.2018_15 + c_16(D);
  *D.2016_10 = D.2019_17;
  count_18 = count_1 + 1;
  i_19 = i_2 + 1;
  # SUCC: 4 [100.0%]  (fallthru,dfs_back,exec)

  # BLOCK 4 freq:10000
  # PRED: 2 [100.0%]  (fallthru,exec) 3 [100.0%]  (fallthru,dfs_back,exec)
  # count_1 = PHI <0(2), count_18(3)>
  # i_2 = PHI <start_4(D)(2), i_19(3)>
  if (i_2 <= end_6(D))
    goto <bb 3>;
  else
    goto <bb 5>;
  # SUCC: 3 [91.0%]  (true,exec) 5 [9.0%]  (false,exec)

  # BLOCK 5 freq:900
  # PRED: 4 [9.0%]  (false,exec)
  D.2020_21 = sp_20(D)->s;
  D.2021_22 = D.2020_21->vp;
  D.2022_23 = (int (*<T264>) (const char *, void *, int *)) D.2021_22;
  D.2022_23 ("Hello World!\n", exit, &M_var);
  return count_1;
  # SUCC: EXIT [100.0%] 

}



;; Function g (g)

g (int i)
{
  unsigned int D.2029;
  unsigned int csui.0;
  int D.2012;

  # BLOCK 2 freq:10000
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  D.2029_7 = (unsigned int) i_2(D);
  csui.0_8 = D.2029_7 + 4294967295;
  if (csui.0_8 <= 4)
    goto <bb 10> (<L9>);
  else
    goto <bb 9> (<L8>);
  # SUCC: 9 [39.0%]  (false) 10 [61.0%]  (true)

  # BLOCK 9 freq:3900
  # PRED: 2 [39.0%]  (false)
<L8>:
  D.2012_5 = 0;
  goto <bb 8> (<L10>);
  # SUCC: 8 [100.0%]  (fallthru)

  # BLOCK 10 freq:6100
  # PRED: 2 [61.0%]  (true)
<L9>:
  D.2012_6 = CSWTCH.1[csui.0_8];
  # SUCC: 8 [100.0%]  (fallthru)

  # BLOCK 8 freq:10000
  # PRED: 10 [100.0%]  (fallthru) 9 [100.0%]  (fallthru)
  # D.2012_1 = PHI <D.2012_6(10), D.2012_5(9)>
<L10>:
<L7>:
  return D.2012_1;
  # SUCC: EXIT [100.0%] 

}


