IPA constant propagation start: Determining dynamic type for call: _12 (0, _13); Starting walk at: _12 (0, _13); instance pointer: _13 Outer instance pointer: _13 offset: 0 (bits) vtbl reference: Determining dynamic type for call: _23 (1, _24); Starting walk at: _23 (1, _24); instance pointer: _24 Outer instance pointer: _24 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_12 (0, _13); Determining dynamic type for call: _21 (2, _22); Starting walk at: _21 (2, _22); instance pointer: _22 Outer instance pointer: _22 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_12 (0, _13); IPA structures before propagation: Jump functions: Jump functions of caller Flexio_Pwm_Ip_IrqHandler/21: indirect simple callsite, calling param -1, offset 0, for stmt _23 (1, _24); param 0: CONST: 1 value: 0x1, mask: 0x0 Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR indirect simple callsite, calling param -1, offset 0, for stmt _21 (2, _22); param 0: CONST: 2 value: 0x2, mask: 0x0 Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR indirect simple callsite, calling param -1, offset 0, for stmt _12 (0, _13); param 0: CONST: 0 value: 0x0, mask: 0x0 Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR Propagating constants: Not considering Flexio_Pwm_Ip_IrqHandler for cloning; -fipa-cp-clone disabled. overall_size: 46, max_new_size: 11001 IPA lattices after all propagation: Lattices: Node: Flexio_Pwm_Ip_IrqHandler/21: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [2]: 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: pinIrqMask/25 (pinIrqMask) @06921438 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Flexio_Pwm_Ip_IrqHandler/21 (read) Availability: not_available Varpool flags: timerIrqMask/24 (timerIrqMask) @06921360 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Flexio_Pwm_Ip_IrqHandler/21 (read) Availability: not_available Varpool flags: Flexio_Pwm_Ip_aState/23 (Flexio_Pwm_Ip_aState) @069212d0 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Flexio_Pwm_Ip_IrqHandler/21 (read)Flexio_Pwm_Ip_IrqHandler/21 (read) Availability: not_available Varpool flags: Flexio_Pwm_Ip_aBasePtr/22 (Flexio_Pwm_Ip_aBasePtr) @06921288 Type: variable Body removed by symtab_remove_unreachable_nodes Visibility: external public References: Referring: Flexio_Pwm_Ip_IrqHandler/21 (read) Availability: not_available Varpool flags: read-only Flexio_Pwm_Ip_IrqHandler/21 (Flexio_Pwm_Ip_IrqHandler) @0691b2a0 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aBasePtr/22 (read)Flexio_Pwm_Ip_aState/23 (read)timerIrqMask/24 (read)pinIrqMask/25 (read)Flexio_Pwm_Ip_aState/23 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Indirect call(268435456 (estimated locally),0.25 per call) Indirect call(268435456 (estimated locally),0.25 per call) Indirect call(536870913 (estimated locally),0.50 per call) ;; Function Flexio_Pwm_Ip_IrqHandler (Flexio_Pwm_Ip_IrqHandler, funcdef_no=21, decl_uid=4048, cgraph_uid=22, symbol_order=21) Modification phase of node Flexio_Pwm_Ip_IrqHandler/21 Flexio_Pwm_Ip_IrqHandler (uint8 channelId, uint8 timerFlags, uint32 pinFlags) { struct Flexio_Pwm_Ip_HwAddrType * _1; int _2; const struct Flexio_Pwm_Ip_ChannelConfigType * _3; unsigned char _4; unsigned char timerIrqMask.0_5; unsigned char _6; unsigned int _7; unsigned char _8; int _9; unsigned int _10; unsigned int _11; void (*) (Flexio_Pwm_Ip_OccurredIRQType, void *) _12; void * _13; long unsigned int pinIrqMask.1_14; long unsigned int _15; const struct Flexio_Pwm_Ip_ChannelConfigType * _16; unsigned char _17; int _18; unsigned int _19; long unsigned int _20; void (*) (Flexio_Pwm_Ip_OccurredIRQType, void *) _21; void * _22; void (*) (Flexio_Pwm_Ip_OccurredIRQType, void *) _23; void * _24; long unsigned int _34; int _35; long unsigned int _36; _Bool _37; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = Flexio_Pwm_Ip_aBasePtr[0]; _2 = (int) channelId_28(D); _3 = Flexio_Pwm_Ip_aState[_2]; _4 = _3->pinId; # DEBUG base => _1 # DEBUG pin => _4 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_GetPinState # DEBUG BEGIN_STMT _34 ={v} MEM[(const struct Flexio_Pwm_Ip_HwAddrType *)_1].PIN; _35 = (int) _4; _36 = _34 >> _35; _37 = (_Bool) _36; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG pinState => _37 # DEBUG BEGIN_STMT timerIrqMask.0_5 ={v} timerIrqMask; _6 = timerIrqMask.0_5 & timerFlags_29(D); _7 = (unsigned int) _6; _8 = _3->timerId; _9 = (int) _8; _10 = _7 >> _9; _11 = _10 & 1; if (_11 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _12 = _3->callback.cbFunction; _13 = _3->callback.cbParameter; _12 (0, _13); [local count: 1073741824]: # DEBUG BEGIN_STMT pinIrqMask.1_14 ={v} pinIrqMask; _15 = pinIrqMask.1_14 & pinFlags_31(D); _16 = Flexio_Pwm_Ip_aState[_2]; _17 = _16->pinId; _18 = (int) _17; _19 = 1 << _18; _20 = _15 & _19; if (_20 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (_37 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _21 = _16->callback.cbFunction; _22 = _16->callback.cbParameter; _21 (2, _22); goto ; [100.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _23 = _16->callback.cbFunction; _24 = _16->callback.cbParameter; _23 (1, _24); [local count: 1073741824]: # DEBUG BEGIN_STMT return; }