IPA constant propagation start: Determining dynamic type for call: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D)); Starting walk at: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D)); instance pointer: config_14(D) Outer instance pointer: config_14(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10); Function call may change dynamic type:ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 10000); Function call may change dynamic type:TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10); IPA structures before propagation: Jump functions: Jump functions of caller TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9: Jump functions of caller ReportClockErrors/8: Jump functions of caller ClockTimeoutExpired/7: Jump functions of caller ClockStartTimeout/6: Jump functions of caller TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3: callsite TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 -> TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2: Jump functions of caller Callback_DividerTriggerEmpty/1: Propagating constants: Not considering TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat for cloning; -fipa-cp-clone disabled. Not considering ConfigureCgmXDivTrigCtrlTctlHhenUpdStat for cloning; -fipa-cp-clone disabled. Not considering Callback_DividerTriggerEmpty for cloning; -fipa-cp-clone disabled. overall_size: 57, max_new_size: 11001 - context independent values, size: 3, time_benefit: 1.000000 IPA lattices after all propagation: Lattices: Node: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: Callback_DividerTriggerEmpty/1: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM IPA decision stage: IPA constant propagation end Reclaiming functions: Reclaiming variables: Clearing address taken flags: Symbol table: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @06fb88c0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (37904965 (estimated locally),0.11 per call) Calls: ReportClockErrors/8 (1073741824 (estimated locally),1.00 per call) ReportClockErrors/8 (ReportClockErrors) @06fb2540 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (1073741824 (estimated locally),1.00 per call) Calls: ClockTimeoutExpired/7 (ClockTimeoutExpired) @06fb2460 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) @06fb2380 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) @06fb41b0 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) @06fb4168 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) @06f49ee0 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 (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) @06f49e00 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) @06f49b60 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) @06f439d8 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) Modification phase of node Callback_DividerTriggerEmpty/1 Callback_DividerTriggerEmpty (const struct Clock_Ip_DividerTriggerConfigType * config) { [local count: 1073741824]: # DEBUG BEGIN_STMT return; } ;; Function ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=1, decl_uid=5056, cgraph_uid=2, symbol_order=2) Modification phase of node ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 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; } ;; Function TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=2, decl_uid=5058, cgraph_uid=3, symbol_order=3) Modification phase of node TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 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; }