IPA function summary for Flexio_Pwm_Ip_IrqHandler/21 inlinable global time: 42.000000 self size: 46 global size: 46 min size: 30 self stack: 0 global stack: 0 size:28.000000, time:23.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op0 changed) calls: indirect call loop depth: 0 freq:0.25 size: 5 time: 17 indirect call loop depth: 0 freq:0.25 size: 5 time: 17 indirect call loop depth: 0 freq:0.50 size: 5 time: 17 Flattening functions: Overall time estimate: 42.000000 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in Flexio_Pwm_Ip_IrqHandler/21. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 42.000000 weighted by profile: 0.000000 Why inlining failed? IPA function summary for Flexio_Pwm_Ip_IrqHandler/21 inlinable global time: 42.000000 self size: 46 global size: 46 min size: 30 self stack: 0 global stack: 0 size:28.000000, time:23.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op0 changed) calls: indirect call loop depth: 0 freq:0.25 size: 5 time: 17 indirect call loop depth: 0 freq:0.25 size: 5 time: 17 indirect call loop depth: 0 freq:0.50 size: 5 time: 17 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) 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; }