IPA constant propagation start: Determining dynamic type for call: _4 (_5); Starting walk at: _4 (_5); instance pointer: _5 Outer instance pointer: _5 offset: 0 (bits) vtbl reference: Function call may change dynamic type:Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D)); Determining dynamic type for call: _4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D)); Starting walk at: _4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D)); instance pointer: _2 Outer instance pointer: _2 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D)); Determining dynamic type for call: _16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D)); Starting walk at: _16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D)); instance pointer: _2 Outer instance pointer: _2 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D)); Function call may change dynamic type:_3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D)); IPA structures before propagation: Jump functions: Jump functions of caller Emios_Pwm_Ip_GetMasterBusChannel/45: Jump functions of caller Emios_Pwm_Ip_IrqHandler/42: callsite Emios_Pwm_Ip_IrqHandler/42 -> Emios_Pwm_Ip_IrqDaocHandler/41 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xff Unknown VR param 1: PASS THROUGH: 1, op nop_expr value: 0x0, mask: 0xff Unknown VR indirect simple callsite, calling param -1, offset 0, for stmt _4 (_5); param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller Emios_Pwm_Ip_IrqDaocHandler/41: callsite Emios_Pwm_Ip_IrqDaocHandler/41 -> Emios_Pwm_Ip_GetPwmMode/27 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: PASS THROUGH: 1, op nop_expr value: 0x0, mask: 0xff Unknown VR callsite Emios_Pwm_Ip_IrqDaocHandler/41 -> Emios_Pwm_Ip_GetPwmMode/27 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: PASS THROUGH: 1, op nop_expr value: 0x0, mask: 0xff Unknown VR Jump functions of caller Emios_Pwm_Ip_GetPwmMode/27: Propagating constants: Not considering Emios_Pwm_Ip_IrqHandler for cloning; -fipa-cp-clone disabled. overall_size: 119, max_new_size: 11001 IPA lattices after all propagation: Lattices: Node: Emios_Pwm_Ip_IrqHandler/42: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: Emios_Pwm_Ip_IrqDaocHandler/41: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: Emios_Pwm_Ip_GetPwmMode/27: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE IPA decision stage: IPA constant propagation end Reclaiming functions: Reclaiming variables: Clearing address taken flags: Symbol table: Emios_Pwm_Ip_aDaocDuty/47 (Emios_Pwm_Ip_aDaocDuty) @06bf00d8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read) Availability: not_available Varpool flags: Emios_Pwm_Ip_aPeriod/46 (Emios_Pwm_Ip_aPeriod) @06bf0090 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read) Availability: not_available Varpool flags: Emios_Pwm_Ip_GetMasterBusChannel/45 (Emios_Pwm_Ip_GetMasterBusChannel) @06be7540 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call) Calls: Emios_Pwm_Ip_aNotificationPtr/44 (Emios_Pwm_Ip_aNotificationPtr) @06be44c8 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Emios_Pwm_Ip_IrqHandler/42 (read) Availability: not_available Varpool flags: Emios_Pwm_Ip_aBasePtr/43 (Emios_Pwm_Ip_aBasePtr) @06be43f0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqHandler/42 (read) Availability: not_available Varpool flags: read-only Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06bddc40 Type: function definition analyzed Visibility: externally_visible public References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call) Indirect call(751619278 (estimated locally),0.70 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06bdd2a0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: Emios_Pwm_Ip_IrqHandler/42 (1073741824 (estimated locally),1.00 per call) Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06bcd380 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call) Calls: ;; Function Emios_Pwm_Ip_GetPwmMode (Emios_Pwm_Ip_GetPwmMode, funcdef_no=27, decl_uid=4592, cgraph_uid=28, symbol_order=27) Modification phase of node Emios_Pwm_Ip_GetPwmMode/27 Emios_Pwm_Ip_GetPwmMode (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel) { Emios_Pwm_Ip_PwmModeType mode; int _1; long unsigned int _2; long unsigned int _3; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = (int) channel_5(D); _2 ={v} base_7(D)->CH.UC[_1].C; _3 = _2 & 127; switch (_3) [7.69%], case 1: [7.69%], case 6: [7.69%], case 7: [7.69%], case 38: [7.69%], case 88: [7.69%], case 90: [7.69%], case 92: [7.69%], case 93: [7.69%], case 94: [7.69%], case 95: [7.69%], case 96: [7.69%], case 98: [7.69%]> [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 6 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 7 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 38 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 88 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 90 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 92 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 94 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 93 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 95 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 96 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 98 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 82570746]: : # DEBUG BEGIN_STMT # DEBUG mode => 255 # DEBUG BEGIN_STMT [local count: 1073419702]: # mode_4 = PHI <1(2), 6(3), 7(4), 38(5), 88(6), 90(7), 92(8), 94(9), 93(10), 95(11), 96(12), 98(13), 255(14)> : # DEBUG mode => mode_4 # DEBUG BEGIN_STMT return mode_4; } ;; Function Emios_Pwm_Ip_IrqHandler (Emios_Pwm_Ip_IrqHandler, funcdef_no=42, decl_uid=4676, cgraph_uid=43, symbol_order=42) Modification phase of node Emios_Pwm_Ip_IrqHandler/42 Emios_Pwm_Ip_IrqHandler (uint8 instance, uint8 channel) { int _1; struct Emios_Pwm_Ip_HwAddrType * _2; const struct Emios_Pwm_Ip_NotificationType * _3; void (*) (void *) _4; void * _5; int _12; long unsigned int _13; long unsigned int _14; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (int) instance_7(D); _2 = Emios_Pwm_Ip_aBasePtr[_1]; # DEBUG base => _2 # DEBUG channel => channel_9(D) # DEBUG INLINE_ENTRY Emios_Pwm_Ip_ClearFlagEvent # DEBUG BEGIN_STMT _12 = (int) channel_9(D); _13 ={v} _2->CH.UC[_12].S; _14 = _13 | 1; _2->CH.UC[_12].S ={v} _14; # DEBUG base => NULL # DEBUG channel => NULL # DEBUG BEGIN_STMT Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D)); # DEBUG BEGIN_STMT _3 = Emios_Pwm_Ip_aNotificationPtr[_1][_12]; if (_3 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT _4 = _3->cbFunction; _5 = _3->cbParameter; _4 (_5); [local count: 1073741824]: return; }