IPA function summary for TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 inlinable
  global time:     15.000000
  self size:       7
  global size:     7
  min size:       6
  self stack:      12
  global stack:    12
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
  calls:
    ReportClockErrors/8 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant

IPA function summary for TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 inlinable
  global time:     79.580059
  self size:       32
  global size:     32
  min size:       0
  self stack:      12
  global stack:    12
    size:2.000000, time:2.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 8] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 8] changed)
    size:11.000000, time:22.574499,  executed if:(op0[ref offset: 8] != 0)
  array index:(op0[ref offset: 0] changed)
  calls:
    TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 function not considered for inlining
      loop depth: 0 freq:0.11 size: 2 time: 11callee size: 3 stack:12 predicate: (op0[ref offset: 8] != 0)
    ClockTimeoutExpired/7 function body not available
      loop depth: 1 freq:3.08 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
       op0 is compile time invariant
       op1 is compile time invariant
    ClockStartTimeout/6 function body not available
      loop depth: 0 freq:0.33 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
       op0 is compile time invariant
       op1 is compile time invariant
       op2 is compile time invariant
       op3 is compile time invariant

IPA function summary for ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 inlinable
  global time:     11.000000
  self size:       15
  global size:     15
  min size:       0
  self stack:      0
  global stack:    0
    size:2.000000, time:2.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 8] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 8] changed)
    size:4.000000, time:2.000000,  executed if:(op0[ref offset: 8] == 0)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 8] != 0)
  array index:(op0[ref offset: 0] changed)
  calls:

IPA function summary for Callback_DividerTriggerEmpty/1 inlinable
  global time:     2.000000
  self size:       3
  global size:     3
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:


Flattening functions:
Overall time estimate: 107.580059 weighted by profile: 0.000000

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9.
Enqueueing calls in TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3.
Enqueueing calls in ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2.
Enqueueing calls in Callback_DividerTriggerEmpty/1.

Considering TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 with 7 size
 to be inlined into TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 in unknown:0
 Estimated badness is -0.086479, frequency 0.11.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

Deciding on functions to be inlined into all callers and removing useless speculations:
Overall time estimate: 92.743409 weighted by profile: 0.000000

Why inlining failed?
function body not available                       :        3 calls, 3.523733 freq, 0 count
IPA function summary for TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 inlinable
  global time:     79.743409
  self size:       32
  global size:     34
  min size:       0
  self stack:      12
  global stack:    24
    size:2.000000, time:2.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 8] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 8] changed)
    size:11.500000, time:22.628949,  executed if:(op0[ref offset: 8] != 0)
  array index:(op0[ref offset: 0] changed)
  calls:
    TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 inlined
      loop depth: 0 freq:0.11 size: 2 time: 11callee size: 3 stack:12
      Stack frame offset 12, callee self size 12, callee size 12
      ReportClockErrors/8 function body not available
        loop depth: 0 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 8] != 0)
         op0 is compile time invariant
    ClockTimeoutExpired/7 function body not available
      loop depth: 1 freq:3.08 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
       op0 is compile time invariant
       op1 is compile time invariant
    ClockStartTimeout/6 function body not available
      loop depth: 0 freq:0.33 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
       op0 is compile time invariant
       op1 is compile time invariant
       op2 is compile time invariant
       op3 is compile time invariant

IPA function summary for ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 inlinable
  global time:     11.000000
  self size:       15
  global size:     15
  min size:       0
  self stack:      0
  global stack:    0
    size:2.000000, time:2.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 8] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 8] changed)
    size:4.000000, time:2.000000,  executed if:(op0[ref offset: 8] == 0)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 8] != 0)
  array index:(op0[ref offset: 0] changed)
  calls:

IPA function summary for Callback_DividerTriggerEmpty/1 inlinable
  global time:     2.000000
  self size:       3
  global size:     3
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:

Symbol table:

TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @06ed88c0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Function TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 is inline copy in TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3
  Availability: local
  Function flags: count:37904965 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (inlined) (37904965 (estimated locally),0.11 per call) 
  Calls: ReportClockErrors/8 (37904965 (estimated locally),0.11 per call) 
ReportClockErrors/8 (ReportClockErrors) @06ed2540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (37904965 (estimated locally),0.11 per call) 
  Calls: 
ClockTimeoutExpired/7 (ClockTimeoutExpired) @06ed2460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (1073741824 (estimated locally),3.08 per call) 
  Calls: 
ClockStartTimeout/6 (ClockStartTimeout) @06ed2380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (114863532 (estimated locally),0.33 per call) 
  Calls: 
cgm/5 (cgm) @06ed41b0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)
  Availability: not_available
  Varpool flags: read-only
clockFeatures/4 (clockFeatures) @06ed4168
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)
  Availability: not_available
  Varpool flags: read-only
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @06e5dee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: clockFeatures/4 (read)clockFeatures/4 (read)cgm/5 (read)
  Referring: dividerTriggerCallbacks/0 (addr)
  Availability: available
  Function flags: count:348071309 (estimated locally) body optimize_size
  Called by: 
  Calls: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (inlined) (37904965 (estimated locally),0.11 per call) ClockTimeoutExpired/7 (1073741824 (estimated locally),3.08 per call) ClockStartTimeout/6 (114863532 (estimated locally),0.33 per call) 
ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat) @06e5de00
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: clockFeatures/4 (read)clockFeatures/4 (read)cgm/5 (read)cgm/5 (read)
  Referring: dividerTriggerCallbacks/0 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
Callback_DividerTriggerEmpty/1 (Callback_DividerTriggerEmpty) @06e5db60
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: 
  Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
dividerTriggerCallbacks/0 (dividerTriggerCallbacks) @06e579d8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: Callback_DividerTriggerEmpty/1 (addr)Callback_DividerTriggerEmpty/1 (addr)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (addr)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (addr)
  Referring: 
  Availability: available
  Varpool flags: initialized read-only const-value-known

;; Function Callback_DividerTriggerEmpty (Callback_DividerTriggerEmpty, funcdef_no=0, decl_uid=5054, cgraph_uid=1, symbol_order=1)

Callback_DividerTriggerEmpty (const struct Clock_Ip_DividerTriggerConfigType * config)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=1, decl_uid=5056, cgraph_uid=2, symbol_order=2)

ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config)
{
  uint32 selectorIndex;
  uint32 instance;
  <unnamed type> _1;
  int _2;
  unsigned char _3;
  unsigned char _4;
  <unnamed type> _5;
  volatile struct cgmMux_Type * _6;
  volatile struct cgmMux_Type * _7;
  long unsigned int _8;
  long unsigned int _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = config_12(D)->name;
  _2 = (int) _1;
  _3 = clockFeatures[_2][0];
  instance_13 = (uint32) _3;
  # DEBUG instance => instance_13
  # DEBUG BEGIN_STMT
  _4 = clockFeatures[_2][2];
  selectorIndex_14 = (uint32) _4;
  # DEBUG selectorIndex => selectorIndex_14
  # DEBUG BEGIN_STMT
  _5 = config_12(D)->triggerType;
  if (_5 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _6 = cgm[instance_13][selectorIndex_14];
  _6->MUX_DIV_TRIG_CTRL ={v} 1;
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _7 = cgm[instance_13][selectorIndex_14];
  _8 ={v} _7->MUX_DIV_TRIG_CTRL;
  _9 = _8 & 4294967294;
  _7->MUX_DIV_TRIG_CTRL ={v} _9;

  <bb 5> [local count: 1073741824]:
  return;

}



;; Function TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=2, decl_uid=5058, cgraph_uid=3, symbol_order=3)


Symbols to be put in SSA form
{ D.5094 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 14
Number of blocks to update: 13 ( 93%)


Removing basic block 7
Removing basic block 9
Removing basic block 10
Removing basic block 11
Merging blocks 12 and 13
No longer having address taken: StartTime
No longer having address taken: ElapsedTime
No longer having address taken: TimeoutTicks

Symbols to be put in SSA form
{ D.5117 D.5118 D.5119 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 9
Number of blocks to update: 8 ( 89%)


;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8
;;
;; Loop 1
;;  header 4, latch 5
;;  depth 1, outer 0
;;  nodes: 4 5
;; 2 succs { 3 8 }
;; 3 succs { 4 }
;; 4 succs { 5 6 }
;; 5 succs { 4 6 }
;; 6 succs { 7 8 }
;; 7 succs { 8 }
;; 8 succs { 1 }
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config)
{
  uint32 DividerStatus;
  uint32 TimeoutTicks;
  uint32 ElapsedTime;
  uint32 StartTime;
  boolean TimeoutOccurred;
  uint32 selectorIndex;
  uint32 instance;
  <unnamed type> _1;
  int _2;
  unsigned char _3;
  unsigned char _6;
  <unnamed type> _7;
  volatile struct cgmMux_Type * _8;
  long unsigned int _9;
  long unsigned int TimeoutTicks.0_10;
  <unnamed type> _25;

  <bb 2> [local count: 348071309]:
  # DEBUG BEGIN_STMT
  _1 = config_14(D)->name;
  _2 = (int) _1;
  _3 = clockFeatures[_2][0];
  instance_15 = (uint32) _3;
  # DEBUG instance => instance_15
  # DEBUG BEGIN_STMT
  _6 = clockFeatures[_2][2];
  selectorIndex_16 = (uint32) _6;
  # DEBUG selectorIndex => selectorIndex_16
  # DEBUG BEGIN_STMT
  # DEBUG TimeoutOccurred => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = config_14(D)->triggerType;
  if (_7 != 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 3> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  _8 = cgm[instance_15][selectorIndex_16];
  _8->MUX_DIV_TRIG ={v} 1;
  # DEBUG BEGIN_STMT
  ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 10000);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 ={v} _8->MUX_DIV_UPD_STAT;
  DividerStatus_19 = _9 & 1;
  # DEBUG DividerStatus => DividerStatus_19
  # DEBUG BEGIN_STMT
  TimeoutTicks.0_10 = TimeoutTicks;
  TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10);
  # DEBUG TimeoutOccurred => TimeoutOccurred_21
  # DEBUG BEGIN_STMT
  if (DividerStatus_19 != 0)
    goto <bb 5>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 5> [local count: 1014686025]:
  if (TimeoutOccurred_21 != 0)
    goto <bb 6>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 6> [local count: 114863532]:
  # TimeoutOccurred_4 = PHI <TimeoutOccurred_21(4), TimeoutOccurred_21(5)>
  # DEBUG BEGIN_STMT
  if (TimeoutOccurred_4 != 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 7> [local count: 37904965]:
  # DEBUG config => config_14(D)
  # DEBUG INLINE_ENTRY TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat
  # DEBUG BEGIN_STMT
  _25 = config_14(D)->name;
  ReportClockErrors (1, _25);
  # DEBUG D#1 => {CLOBBER}
  # DEBUG StartTime => D#1
  # DEBUG D#2 => {CLOBBER}
  # DEBUG ElapsedTime => D#2
  # DEBUG D#3 => {CLOBBER}
  # DEBUG TimeoutTicks => D#3

  <bb 8> [local count: 348071309]:
  # DEBUG config => NULL
  # DEBUG instance => NULL
  # DEBUG selectorIndex => NULL
  # DEBUG TimeoutOccurred => NULL
  # DEBUG StartTime => NULL
  # DEBUG ElapsedTime => NULL
  # DEBUG TimeoutTicks => NULL
  # DEBUG DividerStatus => NULL
  StartTime ={v} {CLOBBER};
  ElapsedTime ={v} {CLOBBER};
  TimeoutTicks ={v} {CLOBBER};
  return;

}


