local analysis of TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 scanning: _2 = config_1(D)->name; Indirect ref read is not const scanning: ReportClockErrors (1, _2); scanning: return; Function is locally pure. local analysis of TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat scanning: _1 = config_14(D)->name; Indirect ref read is not const scanning: _2 = (int) _1; scanning: _3 = clockFeatures[_2][0]; scanning: instance_15 = (uint32) _3; scanning: _6 = clockFeatures[_2][2]; scanning: selectorIndex_16 = (uint32) _6; scanning: _7 = config_14(D)->triggerType; Indirect ref read is not const scanning: if (_7 != 0) scanning: _8 = cgm[instance_15][selectorIndex_16]; scanning: _8->MUX_DIV_TRIG ={v} 1; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 10000); scanning: _9 ={v} _8->MUX_DIV_UPD_STAT; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: DividerStatus_19 = _9 & 1; scanning: TimeoutTicks.0_10 = TimeoutTicks; scanning: TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10); scanning: if (DividerStatus_19 != 0) scanning: if (TimeoutOccurred_21 != 0) scanning: if (TimeoutOccurred_4 != 0) scanning: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D)); scanning: return; local analysis of ConfigureCgmXDivTrigCtrlTctlHhenUpdStat scanning: _1 = config_12(D)->name; Indirect ref read is not const scanning: _2 = (int) _1; scanning: _3 = clockFeatures[_2][0]; scanning: instance_13 = (uint32) _3; scanning: _4 = clockFeatures[_2][2]; scanning: selectorIndex_14 = (uint32) _4; scanning: _5 = config_12(D)->triggerType; Indirect ref read is not const scanning: if (_5 != 0) scanning: _6 = cgm[instance_13][selectorIndex_14]; scanning: _6->MUX_DIV_TRIG_CTRL ={v} 1; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: _7 = cgm[instance_13][selectorIndex_14]; scanning: _8 ={v} _7->MUX_DIV_TRIG_CTRL; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: _9 = _8 & 4294967294; scanning: _7->MUX_DIV_TRIG_CTRL ={v} _9; Volatile stmt is not const/pure Volatile indirect ref is not const/pure scanning: return; local analysis of Callback_DividerTriggerEmpty scanning: return; Function is locally const. callgraph: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @0605e8c0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial Aux: @05a15560 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) @06058540 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) @06058460 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) @06058380 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: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @0608fee0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15580 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) @0608fe00 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15480 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) @0608fb60 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a155a0 References: Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr) Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ordered call graph: reduced for nothrow TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @0605e8c0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial Aux: @05a15560 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) TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @0608fee0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15580 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) @0608fe00 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15480 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) @0608fb60 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a155a0 References: Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr) Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: MALLOC LATTICE Initial: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0: malloc_bottom TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat: malloc_bottom ConfigureCgmXDivTrigCtrlTctlHhenUpdStat: malloc_bottom Callback_DividerTriggerEmpty: malloc_bottom MALLOC LATTICE after propagation: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0: malloc_bottom TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat: malloc_bottom ConfigureCgmXDivTrigCtrlTctlHhenUpdStat: malloc_bottom Callback_DividerTriggerEmpty: malloc_bottom callgraph: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @0605e8c0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial Aux: @05a15480 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) @06058540 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) @06058460 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) @06058380 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: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @0608fee0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15580 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) @0608fe00 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a153c0 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) @0608fb60 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a153a0 References: Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr) Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ordered call graph: reduced TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @0608fee0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a15580 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) TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @0605e8c0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial Aux: @05a15480 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) ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat) @0608fe00 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a153c0 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) @0608fb60 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. Aux: @05a153a0 References: Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr) Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Function found not to call free: Callback_DividerTriggerEmpty Function found not to call free: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (const struct Clock_Ip_DividerTriggerConfigType * config) { uint32 instance; uint32 selectorIndex; boolean TimeoutOccurred; uint32 StartTime; uint32 ElapsedTime; uint32 TimeoutTicks; uint32 DividerStatus; _2; [local count: 1073741824]: [local count: 1073741824]: # DEBUG BEGIN_STMT _2 = config_1(D)->name; ReportClockErrors (1, _2); [local count: 1073741824]: StartTime ={v} {CLOBBER}; ElapsedTime ={v} {CLOBBER}; TimeoutTicks ={v} {CLOBBER}; return; } TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config) { uint32 DividerStatus; uint32 TimeoutTicks; uint32 ElapsedTime; uint32 StartTime; boolean TimeoutOccurred; uint32 selectorIndex; uint32 instance; _1; int _2; unsigned char _3; unsigned char _6; _7; volatile struct cgmMux_Type * _8; long unsigned int _9; long unsigned int TimeoutTicks.0_10; [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 ; [33.00%] else goto ; [67.00%] [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); [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 ; [94.50%] else goto ; [5.50%] [local count: 1014686025]: if (TimeoutOccurred_21 != 0) goto ; [5.50%] else goto ; [94.50%] [local count: 958878294]: goto ; [100.00%] [local count: 114863532]: # TimeoutOccurred_4 = PHI # DEBUG BEGIN_STMT if (TimeoutOccurred_4 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 37904965]: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D)); [local count: 348071309]: StartTime ={v} {CLOBBER}; ElapsedTime ={v} {CLOBBER}; TimeoutTicks ={v} {CLOBBER}; return; } ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config) { uint32 selectorIndex; uint32 instance; _1; int _2; unsigned char _3; unsigned char _4; _5; volatile struct cgmMux_Type * _6; volatile struct cgmMux_Type * _7; long unsigned int _8; long unsigned int _9; [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 ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _6 = cgm[instance_13][selectorIndex_14]; _6->MUX_DIV_TRIG_CTRL ={v} 1; goto ; [100.00%] [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; [local count: 1073741824]: return; } Callback_DividerTriggerEmpty (const struct Clock_Ip_DividerTriggerConfigType * config) { [local count: 1073741824]: # DEBUG BEGIN_STMT return; }