IPA constant propagation start: Determining dynamic type for call: _2 (_3, _4); Starting walk at: _2 (_3, _4); instance pointer: _3 Outer instance pointer: _3 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:_2 (_3, _4); Function call may change dynamic type:uxListRemove (_7); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Determining dynamic type for call: xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Starting walk at: xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); instance pointer: &xTimerListsWereSwitched Outer instance pointer: xTimerListsWereSwitched offset: 0 (bits) vtbl reference: Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:uxListRemove (_7); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Function call may change dynamic type:_2 (_3, _4); Determining dynamic type for call: prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Starting walk at: prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); instance pointer: pxTimer_44 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference: Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:uxListRemove (_7); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Function call may change dynamic type:_2 (_3, _4); Determining dynamic type for call: _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Starting walk at: _15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference: Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:uxListRemove (_7); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Function call may change dynamic type:_2 (_3, _4); Determining dynamic type for call: prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Starting walk at: prvReloadTimer (pxTimer_14, _19, xTimeNow_46); instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference: Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:uxListRemove (_7); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Function call may change dynamic type:_2 (_3, _4); Determining dynamic type for call: _22 (pxTimer_14); Starting walk at: _22 (pxTimer_14); instance pointer: pxTimer_14 Outer instance pointer: pxTimer_47 offset: 0 (bits) vtbl reference: Function call may change dynamic type:prvReloadTimer (pxTimer_14, _19, xTimeNow_46); Function call may change dynamic type:_15 = prvInsertTimerInActiveList (pxTimer_14, _13, xTimeNow_46, _11); Function call may change dynamic type:xTimeNow_50 = prvSampleTimeNow (&xTimerListsWereSwitched); Function call may change dynamic type:_35 = xQueueReceive (xTimerQueue.16_34, &xMessage, 0); Function call may change dynamic type:vPortFree (pxTimer_56); Function call may change dynamic type:_22 (pxTimer_14); Function call may change dynamic type:prvInsertTimerInActiveList (pxTimer_44, _30, xTimeNow_67, xTimeNow_67); Function call may change dynamic type:_2 (_3, _4); Function call may change dynamic type:uxListRemove (_7); Determining dynamic type for call: xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D)); Starting walk at: xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D)); instance pointer: pxTimer_8(D) Outer instance pointer: pxTimer_8(D) offset: 0 (bits) vtbl reference: Determining dynamic type for call: xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched); Starting walk at: xTimeNow_12 = prvSampleTimeNow (&xTimerListsWereSwitched); instance pointer: &xTimerListsWereSwitched Outer instance pointer: xTimerListsWereSwitched offset: 0 (bits) vtbl reference: Function call may change dynamic type:vTaskSuspendAll (); Determining dynamic type for call: xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty); Starting walk at: xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty); instance pointer: &xListWasEmpty Outer instance pointer: xListWasEmpty offset: 0 (bits) vtbl reference: Function call may change dynamic type:prvProcessReceivedCommands (); Function call may change dynamic type:prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1); Function call may change dynamic type:xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty); Determining dynamic type for call: prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D)); Starting walk at: prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D)); instance pointer: pxTimer_9 Outer instance pointer: pxTimer_9 offset: 0 (bits) vtbl reference: Function call may change dynamic type:uxListRemove (_3); Determining dynamic type for call: _6 (pxTimer_9); Starting walk at: _6 (pxTimer_9); instance pointer: pxTimer_9 Outer instance pointer: pxTimer_9 offset: 0 (bits) vtbl reference: Function call may change dynamic type:prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D)); Function call may change dynamic type:uxListRemove (_3); Determining dynamic type for call: _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); Starting walk at: _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); instance pointer: pxTimer_10(D) Outer instance pointer: pxTimer_10(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:_2 (pxTimer_10(D)); Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); Determining dynamic type for call: _2 (pxTimer_10(D)); Starting walk at: _2 (pxTimer_10(D)); instance pointer: pxTimer_10(D) Outer instance pointer: pxTimer_10(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); Function call may change dynamic type:_2 (pxTimer_10(D)); Function call may change dynamic type:_5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); instance pointer: pcTimerName_6(D) Outer instance pointer: pcTimerName_6(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44); Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); instance pointer: pvTimerID_9(D) Outer instance pointer: pvTimerID_9(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44); Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); instance pointer: pxCallbackFunction_10(D) Outer instance pointer: pxCallbackFunction_10(D) offset: 0 (bits) vtbl reference: Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44); Determining dynamic type for call: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); Starting walk at: prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); instance pointer: pxNewTimer_4 Outer instance pointer: pxNewTimer_4 offset: 0 (bits) vtbl reference: Function call may change dynamic type:pxNewTimer_4 = pvPortMalloc (44); IPA structures before propagation: Jump functions: Jump functions of caller prvInsertTimerInActiveList.part.0/57: Jump functions of caller xQueueGenericSendFromISR/56: Jump functions of caller xQueueGenericSend/55: Jump functions of caller xTaskGetSchedulerState/54: Jump functions of caller vListInitialiseItem/53: Jump functions of caller pvPortMalloc/52: Jump functions of caller vPortExitCritical/51: Jump functions of caller vQueueAddToRegistry/50: Jump functions of caller xQueueGenericCreate/49: Jump functions of caller vListInitialise/48: Jump functions of caller vPortEnterCritical/47: Jump functions of caller xQueueReceive/46: Jump functions of caller vPortFree/45: Jump functions of caller vListInsert/44: Jump functions of caller uxListRemove/43: Jump functions of caller xTaskGetTickCount/41: Jump functions of caller vQueueWaitForMessageRestricted/40: Jump functions of caller xTaskResumeAll/39: Jump functions of caller vTaskSuspendAll/38: Jump functions of caller xTaskCreate/37: Jump functions of caller vTimerSetTimerNumber/36: Jump functions of caller uxTimerGetTimerNumber/35: Jump functions of caller xTimerPendFunctionCall/34: Jump functions of caller xTimerPendFunctionCallFromISR/33: Jump functions of caller vTimerSetTimerID/32: Jump functions of caller pvTimerGetTimerID/31: Jump functions of caller xTimerIsTimerActive/30: Jump functions of caller prvCheckForValidListAndQueue/29: Jump functions of caller prvSwitchTimerLists/28: callsite prvSwitchTimerLists/28 -> prvProcessExpiredTimer/21 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: CONST: 4294967295 value: 0xffffffff, mask: 0x0 Unknown VR Jump functions of caller prvProcessReceivedCommands/27: callsite prvProcessReceivedCommands/27 -> prvInsertTimerInActiveList/26 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff VR ~[0, 0] param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 2: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 3: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR callsite prvProcessReceivedCommands/27 -> prvReloadTimer/20 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff VR ~[0, 0] param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 2: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR callsite prvProcessReceivedCommands/27 -> prvInsertTimerInActiveList/26 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff VR ~[0, 0] param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 2: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 3: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR callsite prvProcessReceivedCommands/27 -> prvSampleTimeNow/25 : param 0: UNKNOWN value: 0x0, mask: 0xfffffffc VR ~[0, 0] indirect simple callsite, calling param -1, offset 0, for stmt _22 (pxTimer_14); param 0: UNKNOWN value: 0x0, mask: 0xffffffff VR ~[0, 0] indirect simple callsite, calling param -1, offset 0, for stmt _2 (_3, _4); param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller prvInsertTimerInActiveList/26: callsite prvInsertTimerInActiveList/26 -> prvInsertTimerInActiveList.part.0/57 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller prvSampleTimeNow/25: callsite prvSampleTimeNow/25 -> prvSwitchTimerLists/28 : Jump functions of caller prvGetNextExpireTime/24: Jump functions of caller prvProcessTimerOrBlockTask/23: callsite prvProcessTimerOrBlockTask/23 -> prvProcessExpiredTimer/21 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR callsite prvProcessTimerOrBlockTask/23 -> prvSampleTimeNow/25 : param 0: UNKNOWN value: 0x0, mask: 0xfffffffc VR ~[0, 0] Jump functions of caller prvTimerTask/22: callsite prvTimerTask/22 -> prvProcessReceivedCommands/27 : callsite prvTimerTask/22 -> prvProcessTimerOrBlockTask/23 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff Unknown VR callsite prvTimerTask/22 -> prvGetNextExpireTime/24 : param 0: UNKNOWN value: 0x0, mask: 0xfffffffc VR ~[0, 0] Jump functions of caller prvProcessExpiredTimer/21: callsite prvProcessExpiredTimer/21 -> prvReloadTimer/20 : param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 1: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 2: PASS THROUGH: 1, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR indirect simple callsite, calling param -1, offset 0, for stmt _6 (pxTimer_9); param 0: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller prvReloadTimer/20: callsite prvReloadTimer/20 -> prvInsertTimerInActiveList/26 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 1: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR param 2: PASS THROUGH: 2, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 3: UNKNOWN value: 0x0, mask: 0xffffffff Unknown VR indirect aggregate callsite, calling param 0, offset 256, by reference, for stmt _2 (pxTimer_10(D)); param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller pcTimerGetName/19: Jump functions of caller xTimerGetExpiryTime/18: Jump functions of caller uxTimerGetReloadMode/17: Jump functions of caller vTimerSetReloadMode/16: Jump functions of caller xTimerGetPeriod/15: Jump functions of caller xTimerGetTimerDaemonTaskHandle/14: Jump functions of caller xTimerGenericCommand/13: Jump functions of caller prvInitialiseNewTimer/12: callsite prvInitialiseNewTimer/12 -> prvCheckForValidListAndQueue/29 : Jump functions of caller xTimerCreate/11: callsite xTimerCreate/11 -> prvInitialiseNewTimer/12 : param 0: PASS THROUGH: 0, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 1: PASS THROUGH: 1, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 2: PASS THROUGH: 2, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 3: PASS THROUGH: 3, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 4: PASS THROUGH: 4, op nop_expr value: 0x0, mask: 0xffffffff Unknown VR param 5: UNKNOWN Aggregate passed by reference: offset: 320, cst: 0 value: 0x0, mask: 0xffffffff Unknown VR Jump functions of caller xTimerCreateTimerTask/10: callsite xTimerCreateTimerTask/10 -> prvCheckForValidListAndQueue/29 : Propagating constants: Not considering vTimerSetTimerNumber for cloning; -fipa-cp-clone disabled. Not considering uxTimerGetTimerNumber for cloning; -fipa-cp-clone disabled. Not considering xTimerPendFunctionCall for cloning; -fipa-cp-clone disabled. Not considering xTimerPendFunctionCallFromISR for cloning; -fipa-cp-clone disabled. Not considering vTimerSetTimerID for cloning; -fipa-cp-clone disabled. Not considering pvTimerGetTimerID for cloning; -fipa-cp-clone disabled. Not considering xTimerIsTimerActive for cloning; -fipa-cp-clone disabled. Not considering prvTimerTask for cloning; -fipa-cp-clone disabled. Not considering pcTimerGetName for cloning; -fipa-cp-clone disabled. Not considering xTimerGetExpiryTime for cloning; -fipa-cp-clone disabled. Not considering uxTimerGetReloadMode for cloning; -fipa-cp-clone disabled. Not considering vTimerSetReloadMode for cloning; -fipa-cp-clone disabled. Not considering xTimerGetPeriod for cloning; -fipa-cp-clone disabled. Not considering xTimerGetTimerDaemonTaskHandle for cloning; -fipa-cp-clone disabled. Not considering xTimerGenericCommand for cloning; -fipa-cp-clone disabled. Not considering xTimerCreate for cloning; -fipa-cp-clone disabled. Not considering xTimerCreateTimerTask for cloning; -fipa-cp-clone disabled. overall_size: 561, max_new_size: 11001 - context independent values, size: 10, time_benefit: 1.000000 - context independent values, size: 22, time_benefit: 0.000000 Decided to specialize for all known contexts, code not going to grow. IPA lattices after all propagation: Lattices: Node: prvInsertTimerInActiveList.part.0/57: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: vTimerSetTimerNumber/36: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: uxTimerGetTimerNumber/35: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerPendFunctionCall/34: 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 param [3]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerPendFunctionCallFromISR/33: 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 param [3]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vTimerSetTimerID/32: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: pvTimerGetTimerID/31: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerIsTimerActive/30: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: prvCheckForValidListAndQueue/29: Node: prvSwitchTimerLists/28: Node: prvProcessReceivedCommands/27: Node: prvInsertTimerInActiveList/26: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [2]: VARIABLE 4294967295 [loc_time: 1, loc_size: 22, prop_time: 0, prop_size: 0] ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [3]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: prvSampleTimeNow/25: param [0]: VARIABLE ctxs: VARIABLE Bits: value = 0x0, mask = 0xfffffffc BaseType_t * const ~[0B, 0B] AGGS VARIABLE Node: prvGetNextExpireTime/24: param [0]: VARIABLE ctxs: VARIABLE Bits: value = 0x0, mask = 0xfffffffc BaseType_t * const ~[0B, 0B] AGGS VARIABLE Node: prvProcessTimerOrBlockTask/23: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: prvTimerTask/22: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: prvProcessExpiredTimer/21: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE 4294967295 [loc_time: 1, loc_size: 23, prop_time: 0, prop_size: 0] ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: prvReloadTimer/20: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [2]: VARIABLE 4294967295 [loc_time: 1, loc_size: 20, prop_time: 0, prop_size: 0] ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE Node: pcTimerGetName/19: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerGetExpiryTime/18: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: uxTimerGetReloadMode/17: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: vTimerSetReloadMode/16: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [1]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerGetPeriod/15: param [0]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerGetTimerDaemonTaskHandle/14: Node: xTimerGenericCommand/13: 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 param [3]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [4]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: prvInitialiseNewTimer/12: param [0]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [1]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [2]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [3]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [4]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING AGGS VARIABLE param [5]: VARIABLE ctxs: VARIABLE Bits unusable (BOTTOM) VARYING ref offset 320: 0 [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0] Node: xTimerCreate/11: 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 param [3]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM param [4]: BOTTOM ctxs: BOTTOM Bits unusable (BOTTOM) VARYING AGGS BOTTOM Node: xTimerCreateTimerTask/10: IPA decision stage: - Creating a specialized node of prvInitialiseNewTimer/12 for all known contexts. Propagated bits info for function prvSampleTimeNow/25: param 0: value = 0x0, mask = 0xfffffffc Propagated bits info for function prvGetNextExpireTime/24: param 0: value = 0x0, mask = 0xfffffffc IPA constant propagation end Reclaiming functions: prvInitialiseNewTimer/12 Reclaiming variables: Clearing address taken flags: Symbol table: prvInitialiseNewTimer.constprop.0/72 (prvInitialiseNewTimer.constprop) @05dfbd20 Type: function definition analyzed Visibility: References: Referring: Clone of prvInitialiseNewTimer/12 Availability: local Function flags: count:160260 (estimated locally) local optimize_size Called by: xTimerCreate/11 (574129754 (estimated locally),0.53 per call) Calls: prvCheckForValidListAndQueue/29 (52886 (estimated locally),0.33 per call) vListInitialiseItem/53 (52886 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (prvInsertTimerInActiveList.part.0) @05dfba80 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: pxOverflowTimerList/7 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvInsertTimerInActiveList/26 (177167400 (estimated locally),0.16 per call) Calls: vListInsert/44 (1073741824 (estimated locally),1.00 per call) xQueueGenericSendFromISR/56 (xQueueGenericSendFromISR) @05f06c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerPendFunctionCallFromISR/33 (1073741824 (estimated locally),1.00 per call) xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call) Calls: xQueueGenericSend/55 (xQueueGenericSend) @05f06b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerPendFunctionCall/34 (123389 (estimated locally),0.53 per call) xTimerGenericCommand/13 (57875 (estimated locally),0.16 per call) xTimerGenericCommand/13 (29814 (estimated locally),0.08 per call) Calls: xTaskGetSchedulerState/54 (xTaskGetSchedulerState) @05f06a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerGenericCommand/13 (87689 (estimated locally),0.25 per call) Calls: vListInitialiseItem/53 (vListInitialiseItem) @05f068c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call) Calls: pvPortMalloc/52 (pvPortMalloc) @05f06700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerCreate/11 (1073741824 (estimated locally),1.00 per call) Calls: vPortExitCritical/51 (vPortExitCritical) @05f06460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call) Calls: vQueueAddToRegistry/50 (vQueueAddToRegistry) @05f06380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (100070816 (estimated locally),0.09 per call) Calls: xQueueGenericCreate/49 (xQueueGenericCreate) @05f062a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) Calls: vListInitialise/48 (vListInitialise) @05f060e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) prvCheckForValidListAndQueue/29 (187153200 (estimated locally),0.17 per call) Calls: vPortEnterCritical/47 (vPortEnterCritical) @05f06000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTimerSetTimerID/32 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (123389 (estimated locally),0.53 per call) uxTimerGetReloadMode/17 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (1073741824 (estimated locally),1.00 per call) Calls: xQueueReceive/46 (xQueueReceive) @05ed9e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (187807075 (estimated locally),17.99 per call) Calls: vPortFree/45 (vPortFree) @05ed9d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (644244 (estimated locally),0.06 per call) Calls: vListInsert/44 (vListInsert) @05ed99a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInsertTimerInActiveList/26 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (1073741824 (estimated locally),1.00 per call) Calls: uxListRemove/43 (uxListRemove) @05ed9700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessReceivedCommands/27 (5219353 (estimated locally),0.50 per call) prvProcessExpiredTimer/21 (1073741824 (estimated locally),1.00 per call) Calls: xLastTime.6551/42 (xLastTime) @05ef6120 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write) Availability: available Varpool flags: initialized xTaskGetTickCount/41 (xTaskGetTickCount) @05ed9380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvSampleTimeNow/25 (1073741824 (estimated locally),1.00 per call) Calls: vQueueWaitForMessageRestricted/40 (vQueueWaitForMessageRestricted) @05ed91c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) Calls: xTaskResumeAll/39 (xTaskResumeAll) @05ed90e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (354334802 (estimated locally),0.33 per call) prvProcessTimerOrBlockTask/23 (600704864 (estimated locally),0.56 per call) prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) Calls: vTaskSuspendAll/38 (vTaskSuspendAll) @05ed9000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call) Calls: xTaskCreate/37 (xTaskCreate) @05ecdee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xTimerCreateTimerTask/10 (78363 (estimated locally),0.53 per call) Calls: vTimerSetTimerNumber/36 (vTimerSetTimerNumber) @05ecda80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxTimerGetTimerNumber/35 (uxTimerGetTimerNumber) @05ecd7e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTimerPendFunctionCall/34 (xTimerPendFunctionCall) @05ecd540 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSend/55 (123389 (estimated locally),0.53 per call) xTimerPendFunctionCallFromISR/33 (xTimerPendFunctionCallFromISR) @05ecd0e0 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (1073741824 (estimated locally),1.00 per call) vTimerSetTimerID/32 (vTimerSetTimerID) @05ec78c0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) pvTimerGetTimerID/31 (pvTimerGetTimerID) @05ec7ee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerIsTimerActive/30 (xTimerIsTimerActive) @05ec7b60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (prvCheckForValidListAndQueue) @05ec77e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTimerQueue/8 (read)xActiveTimerList1/4 (addr)xActiveTimerList2/5 (addr)pxCurrentTimerList/6 (write)xActiveTimerList1/4 (addr)pxOverflowTimerList/7 (write)xActiveTimerList2/5 (addr)xTimerQueue/8 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvInitialiseNewTimer.constprop/72 (52886 (estimated locally),0.33 per call) xTimerCreateTimerTask/10 (146556 (estimated locally),1.00 per call) Calls: vPortExitCritical/51 (1073741824 (estimated locally),1.00 per call) vQueueAddToRegistry/50 (100070816 (estimated locally),0.09 per call) xQueueGenericCreate/49 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vListInitialise/48 (187153200 (estimated locally),0.17 per call) vPortEnterCritical/47 (1073741824 (estimated locally),1.00 per call) prvSwitchTimerLists/28 (prvSwitchTimerLists) @05ec7460 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read)pxOverflowTimerList/7 (read)pxCurrentTimerList/6 (write)pxOverflowTimerList/7 (write) Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvSampleTimeNow/25 (354334802 (estimated locally),0.33 per call) Calls: prvProcessExpiredTimer/21 (955630223 (estimated locally),8.09 per call) prvProcessReceivedCommands/27 (prvProcessReceivedCommands) @05ec70e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTimerQueue/8 (read) Referring: Availability: local Function flags: count:10436763 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: xQueueReceive/46 (187807075 (estimated locally),17.99 per call) vPortFree/45 (644244 (estimated locally),0.06 per call) prvInsertTimerInActiveList/26 (1844881 (estimated locally),0.18 per call) prvReloadTimer/20 (322122 (estimated locally),0.03 per call) prvInsertTimerInActiveList/26 (1952255 (estimated locally),0.19 per call) prvSampleTimeNow/25 (9761273 (estimated locally),0.94 per call) uxListRemove/43 (5219353 (estimated locally),0.50 per call) Indirect call(976127 (estimated locally),0.09 per call) Indirect call(72765851 (estimated locally),6.97 per call) prvInsertTimerInActiveList/26 (prvInsertTimerInActiveList) @05ebb7e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (1844881 (estimated locally),0.18 per call) prvProcessReceivedCommands/27 (1952255 (estimated locally),0.19 per call) prvReloadTimer/20 (1073741824 (estimated locally),9.09 per call) Calls: vListInsert/44 (357019157 (estimated locally),0.33 per call) prvInsertTimerInActiveList.part.0/57 (177167400 (estimated locally),0.16 per call) prvSampleTimeNow/25 (prvSampleTimeNow) @05ebbd20 Type: function definition analyzed Visibility: prevailing_def_ironly References: xLastTime.6551/42 (read)xLastTime.6551/42 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (9761273 (estimated locally),0.94 per call) prvProcessTimerOrBlockTask/23 (1073741823 (estimated locally),1.00 per call) Calls: prvSwitchTimerLists/28 (354334802 (estimated locally),0.33 per call) xTaskGetTickCount/41 (1073741824 (estimated locally),1.00 per call) prvGetNextExpireTime/24 (prvGetNextExpireTime) @05ebba80 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: prvProcessTimerOrBlockTask/23 (prvProcessTimerOrBlockTask) @05ebb700 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxOverflowTimerList/7 (read)xTimerQueue/8 (read) Referring: Availability: local Function flags: count:1073741823 (estimated locally) body local optimize_size Called by: prvTimerTask/22 (1073741824 (estimated locally),10000.02 per call) Calls: xTaskResumeAll/39 (354334802 (estimated locally),0.33 per call) xTaskResumeAll/39 (600704864 (estimated locally),0.56 per call) vQueueWaitForMessageRestricted/40 (600704864 (estimated locally),0.56 per call) prvProcessExpiredTimer/21 (118702158 (estimated locally),0.11 per call) xTaskResumeAll/39 (118702158 (estimated locally),0.11 per call) prvSampleTimeNow/25 (1073741823 (estimated locally),1.00 per call) vTaskSuspendAll/38 (1073741823 (estimated locally),1.00 per call) prvTimerTask/22 (prvTimerTask) @05ebb2a0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. References: Referring: xTimerCreateTimerTask/10 (addr) Availability: available Function flags: count:107374 (estimated locally) body executed_once optimize_size Called by: Calls: prvProcessReceivedCommands/27 (1073741824 (estimated locally),10000.02 per call) prvProcessTimerOrBlockTask/23 (1073741824 (estimated locally),10000.02 per call) prvGetNextExpireTime/24 (1073741824 (estimated locally),10000.02 per call) prvProcessExpiredTimer/21 (prvProcessExpiredTimer) @05ebb000 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxCurrentTimerList/6 (read) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvProcessTimerOrBlockTask/23 (118702158 (estimated locally),0.11 per call) prvSwitchTimerLists/28 (955630223 (estimated locally),8.09 per call) Calls: prvReloadTimer/20 (354334802 (estimated locally),0.33 per call) uxListRemove/43 (1073741824 (estimated locally),1.00 per call) Indirect call(1073741824 (estimated locally),1.00 per call) prvReloadTimer/20 (prvReloadTimer) @05e60540 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:118111600 (estimated locally) body local optimize_size Called by: prvProcessReceivedCommands/27 (322122 (estimated locally),0.03 per call) prvProcessExpiredTimer/21 (354334802 (estimated locally),0.33 per call) Calls: prvInsertTimerInActiveList/26 (1073741824 (estimated locally),9.09 per call) Indirect call(955630223 (estimated locally),8.09 per call) of param:0 loaded from aggregate passed by reference at offset 256 (vptr maybe changed) pcTimerGetName/19 (pcTimerGetName) @05e60ee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetExpiryTime/18 (xTimerGetExpiryTime) @05e60b60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: uxTimerGetReloadMode/17 (uxTimerGetReloadMode) @05e607e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) vTimerSetReloadMode/16 (vTimerSetReloadMode) @05e60460 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/51 (123389 (estimated locally),0.53 per call) vPortEnterCritical/47 (123389 (estimated locally),0.53 per call) xTimerGetPeriod/15 (xTimerGetPeriod) @05e600e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGetTimerDaemonTaskHandle/14 (xTimerGetTimerDaemonTaskHandle) @05eb67e0 Type: function definition analyzed Visibility: externally_visible public References: xTimerTaskHandle/9 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTimerGenericCommand/13 (xTimerGenericCommand) @05eb61c0 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read)xTimerQueue/8 (read)xTimerQueue/8 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSendFromISR/56 (87689 (estimated locally),0.25 per call) xQueueGenericSend/55 (57875 (estimated locally),0.16 per call) xQueueGenericSend/55 (29814 (estimated locally),0.08 per call) xTaskGetSchedulerState/54 (87689 (estimated locally),0.25 per call) prvInitialiseNewTimer/12 (prvInitialiseNewTimer) @05eb6a80 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: xTimerCreate/11 (xTimerCreate) @05eb6700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvInitialiseNewTimer.constprop/72 (574129754 (estimated locally),0.53 per call) pvPortMalloc/52 (1073741824 (estimated locally),1.00 per call) xTimerCreateTimerTask/10 (xTimerCreateTimerTask) @05eb6460 Type: function definition analyzed Visibility: externally_visible public References: xTimerQueue/8 (read)prvTimerTask/22 (addr)xTimerTaskHandle/9 (addr) Referring: Availability: available Function flags: count:146556 (estimated locally) body optimize_size Called by: Calls: xTaskCreate/37 (78363 (estimated locally),0.53 per call) prvCheckForValidListAndQueue/29 (146556 (estimated locally),1.00 per call) xTimerTaskHandle/9 (xTimerTaskHandle) @05eb0678 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read) Availability: available Varpool flags: initialized xTimerQueue/8 (xTimerQueue) @05eb05e8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvProcessReceivedCommands/27 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCallFromISR/33 (read)prvCheckForValidListAndQueue/29 (write)xTimerCreateTimerTask/10 (read)prvCheckForValidListAndQueue/29 (read)prvProcessTimerOrBlockTask/23 (read)xTimerGenericCommand/13 (read)xTimerGenericCommand/13 (read)xTimerPendFunctionCall/34 (read) Availability: available Varpool flags: initialized pxOverflowTimerList/7 (pxOverflowTimerList) @05eb0558 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvInsertTimerInActiveList.part.0/57 (read)prvSwitchTimerLists/28 (write)prvProcessTimerOrBlockTask/23 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write) Availability: available Varpool flags: pxCurrentTimerList/6 (pxCurrentTimerList) @05eb04c8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvSwitchTimerLists/28 (write)prvProcessExpiredTimer/21 (read)prvInsertTimerInActiveList/26 (read)prvGetNextExpireTime/24 (read)prvSwitchTimerLists/28 (read)prvCheckForValidListAndQueue/29 (write) Availability: available Varpool flags: xActiveTimerList2/5 (xActiveTimerList2) @05eb0438 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr) Availability: available Varpool flags: xActiveTimerList1/4 (xActiveTimerList1) @05eb03a8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr) Availability: available Varpool flags: ;; Function prvCheckForValidListAndQueue (prvCheckForValidListAndQueue, funcdef_no=23, decl_uid=6421, cgraph_uid=24, symbol_order=29) Modification phase of node prvCheckForValidListAndQueue/29 prvCheckForValidListAndQueue () { struct QueueDefinition * xTimerQueue.17_1; struct QueueDefinition * _2; [local count: 1073741824]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT xTimerQueue.17_1 = xTimerQueue; if (xTimerQueue.17_1 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 187153200]: # DEBUG BEGIN_STMT vListInitialise (&xActiveTimerList1); # DEBUG BEGIN_STMT vListInitialise (&xActiveTimerList2); # DEBUG BEGIN_STMT pxCurrentTimerList = &xActiveTimerList1; # DEBUG BEGIN_STMT pxOverflowTimerList = &xActiveTimerList2; # DEBUG BEGIN_STMT _2 = xQueueGenericCreate (10, 16, 0); xTimerQueue = _2; # DEBUG BEGIN_STMT if (_2 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 100070816]: # DEBUG BEGIN_STMT vQueueAddToRegistry (_2, "TmrQ"); [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); return; } ;; Function prvInsertTimerInActiveList (prvInsertTimerInActiveList, funcdef_no=20, decl_uid=6430, cgraph_uid=21, symbol_order=26) Modification phase of node prvInsertTimerInActiveList/26 prvInsertTimerInActiveList (struct Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime) { BaseType_t xProcessTimerNow; long unsigned int _1; long unsigned int _2; struct List_t * pxCurrentTimerList.15_3; struct ListItem_t * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG xProcessTimerNow => 0 # DEBUG BEGIN_STMT pxTimer_8(D)->xTimerListItem.xItemValue = xNextExpiryTime_9(D); # DEBUG BEGIN_STMT pxTimer_8(D)->xTimerListItem.pvOwner = pxTimer_8(D); # DEBUG BEGIN_STMT if (xNextExpiryTime_9(D) <= xTimeNow_12(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _1 = xTimeNow_12(D) - xCommandTime_13(D); _2 = pxTimer_8(D)->xTimerPeriodInTicks; if (_1 >= _2) goto ; [67.00%] else goto ; [33.00%] [local count: 177167400]: # DEBUG D#1 => xNextExpiryTime_9(D) # DEBUG D#2 => xTimeNow_12(D) # DEBUG D#3 => xCommandTime_13(D) xProcessTimerNow_16 = prvInsertTimerInActiveList.part.0 (pxTimer_8(D)); goto ; [100.00%] [local count: 536870913]: # DEBUG BEGIN_STMT if (xTimeNow_12(D) < xCommandTime_13(D)) goto ; [67.00%] else goto ; [33.00%] [local count: 359703511]: if (xNextExpiryTime_9(D) >= xCommandTime_13(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 357019157]: # DEBUG BEGIN_STMT pxCurrentTimerList.15_3 = pxCurrentTimerList; _4 = &pxTimer_8(D)->xTimerListItem; vListInsert (pxCurrentTimerList.15_3, _4); [local count: 1073741824]: # xProcessTimerNow_5 = PHI # DEBUG xProcessTimerNow => xProcessTimerNow_5 # DEBUG BEGIN_STMT return xProcessTimerNow_5; } ;; Function prvReloadTimer (prvReloadTimer, funcdef_no=14, decl_uid=6434, cgraph_uid=15, symbol_order=20) Modification phase of node prvReloadTimer/20 prvReloadTimer (struct Timer_t * const pxTimer, TickType_t xExpiredTime, const TickType_t xTimeNow) { long unsigned int _1; void (*) (struct tmrTimerControl *) _2; long unsigned int _3; long unsigned int _4; long int _5; [local count: 118111600]: # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = pxTimer_10(D)->xTimerPeriodInTicks; xExpiredTime_13 = _1 + xExpiredTime_6; # DEBUG xExpiredTime => xExpiredTime_13 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = pxTimer_10(D)->pxCallbackFunction; _2 (pxTimer_10(D)); [local count: 1073741824]: # xExpiredTime_6 = PHI # DEBUG xExpiredTime => xExpiredTime_6 # DEBUG BEGIN_STMT _3 = pxTimer_10(D)->xTimerPeriodInTicks; _4 = _3 + xExpiredTime_6; _5 = prvInsertTimerInActiveList (pxTimer_10(D), _4, xTimeNow_11(D), xExpiredTime_6); if (_5 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: return; } ;; Function prvProcessExpiredTimer (prvProcessExpiredTimer, funcdef_no=15, decl_uid=6437, cgraph_uid=16, symbol_order=21) Modification phase of node prvProcessExpiredTimer/21 prvProcessExpiredTimer (const TickType_t xNextExpireTime, const TickType_t xTimeNow) { struct Timer_t * const pxTimer; struct List_t * pxCurrentTimerList.13_1; struct xLIST_ITEM * _2; struct ListItem_t * _3; unsigned char _4; unsigned char _5; void (*) (struct tmrTimerControl *) _6; unsigned char _16; [local count: 1073741824]: # DEBUG BEGIN_STMT pxCurrentTimerList.13_1 = pxCurrentTimerList; _2 = pxCurrentTimerList.13_1->xListEnd.pxNext; pxTimer_9 = _2->pvOwner; # DEBUG pxTimer => pxTimer_9 # DEBUG BEGIN_STMT _3 = &pxTimer_9->xTimerListItem; uxListRemove (_3); # DEBUG BEGIN_STMT _4 = pxTimer_9->ucStatus; _16 = _4 & 4; if (_16 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 354334802]: # DEBUG BEGIN_STMT prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D)); goto ; [100.00%] [local count: 719407023]: # DEBUG BEGIN_STMT _5 = _4 & 254; pxTimer_9->ucStatus = _5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _6 = pxTimer_9->pxCallbackFunction; _6 (pxTimer_9); return; } ;; Function prvSwitchTimerLists (prvSwitchTimerLists, funcdef_no=22, decl_uid=6439, cgraph_uid=23, symbol_order=28) Modification phase of node prvSwitchTimerLists/28 prvSwitchTimerLists () { TickType_t xNextExpireTime; struct xLIST_ITEM * _1; struct List_t * pxCurrentTimerList.11_2; long unsigned int _3; struct List_t * pxOverflowTimerList.12_4; struct List_t * pxCurrentTimerList.11_7; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = pxCurrentTimerList.11_2->xListEnd.pxNext; xNextExpireTime_10 = _1->xItemValue; # DEBUG xNextExpireTime => xNextExpireTime_10 # DEBUG BEGIN_STMT prvProcessExpiredTimer (xNextExpireTime_10, 4294967295); [local count: 1073741824]: # DEBUG BEGIN_STMT pxCurrentTimerList.11_2 = pxCurrentTimerList; _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems; if (_3 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # pxCurrentTimerList.11_7 = PHI # DEBUG BEGIN_STMT # DEBUG pxTemp => pxCurrentTimerList.11_7 # DEBUG BEGIN_STMT pxOverflowTimerList.12_4 = pxOverflowTimerList; pxCurrentTimerList = pxOverflowTimerList.12_4; # DEBUG BEGIN_STMT pxOverflowTimerList = pxCurrentTimerList.11_7; return; } ;; Function prvTimerTask (prvTimerTask, funcdef_no=16, decl_uid=6423, cgraph_uid=17, symbol_order=22) (executed once) Modification phase of node prvTimerTask/22 prvTimerTask (void * pvParameters) { BaseType_t xListWasEmpty; TickType_t xNextExpireTime; long int xListWasEmpty.1_1; [local count: 107374]: [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xNextExpireTime_5 = prvGetNextExpireTime (&xListWasEmpty); # DEBUG xNextExpireTime => xNextExpireTime_5 # DEBUG BEGIN_STMT xListWasEmpty.1_1 = xListWasEmpty; prvProcessTimerOrBlockTask (xNextExpireTime_5, xListWasEmpty.1_1); # DEBUG BEGIN_STMT prvProcessReceivedCommands (); # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] } ;; Function xTimerCreateTimerTask (xTimerCreateTimerTask, funcdef_no=4, decl_uid=6377, cgraph_uid=5, symbol_order=10) Modification phase of node xTimerCreateTimerTask/10 xTimerCreateTimerTask () { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct QueueDefinition * xTimerQueue.0_1; [local count: 146556]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT prvCheckForValidListAndQueue (); # DEBUG BEGIN_STMT xTimerQueue.0_1 = xTimerQueue; if (xTimerQueue.0_1 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 78363]: # DEBUG BEGIN_STMT xReturn_5 = xTaskCreate (prvTimerTask, "Tmr Svc", 180, 0B, 2, &xTimerTaskHandle); # DEBUG xReturn => xReturn_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xReturn_5 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 107374]: # DEBUG xReturn => NULL # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_7 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 39182]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_5; } ;; Function xTimerCreate (xTimerCreate, funcdef_no=5, decl_uid=6345, cgraph_uid=6, symbol_order=11) Modification phase of node xTimerCreate/11 xTimerCreate (const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, void (*TimerCallbackFunction_t) (struct tmrTimerControl *) pxCallbackFunction) { struct Timer_t * pxNewTimer; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxNewTimer_4 = pvPortMalloc (44); # DEBUG pxNewTimer => pxNewTimer_4 # DEBUG BEGIN_STMT if (pxNewTimer_4 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 574129754]: # DEBUG BEGIN_STMT pxNewTimer_4->ucStatus = 0; # DEBUG BEGIN_STMT prvInitialiseNewTimer (pcTimerName_6(D), xTimerPeriodInTicks_7(D), uxAutoReload_8(D), pvTimerID_9(D), pxCallbackFunction_10(D), pxNewTimer_4); [local count: 1073741824]: # DEBUG BEGIN_STMT return pxNewTimer_4; } ;; Function xTimerGenericCommand (xTimerGenericCommand, funcdef_no=7, decl_uid=6383, cgraph_uid=8, symbol_order=13) Modification phase of node xTimerGenericCommand/13 xTimerGenericCommand (struct tmrTimerControl * xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; struct DaemonTaskMessage_t xMessage; BaseType_t xReturn; struct QueueDefinition * xTimerQueue.20_1; long int _2; struct QueueDefinition * xTimerQueue.21_3; struct QueueDefinition * xTimerQueue.22_4; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_7(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_24 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimerQueue.20_1 = xTimerQueue; if (xTimerQueue.20_1 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 175378]: # DEBUG BEGIN_STMT xMessage.xMessageID = xCommandID_9(D); # DEBUG BEGIN_STMT xMessage.u.xTimerParameters.xMessageValue = xOptionalValue_11(D); # DEBUG BEGIN_STMT xMessage.u.xTimerParameters.pxTimer = xTimer_7(D); # DEBUG BEGIN_STMT if (xCommandID_9(D) <= 5) goto ; [50.00%] else goto ; [50.00%] [local count: 87689]: # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 == 2) goto ; [34.00%] else goto ; [66.00%] [local count: 29814]: # DEBUG BEGIN_STMT xTimerQueue.21_3 = xTimerQueue; xReturn_22 = xQueueGenericSend (xTimerQueue.21_3, &xMessage, xTicksToWait_20(D), 0); # DEBUG xReturn => xReturn_22 goto ; [100.00%] [local count: 57875]: # DEBUG BEGIN_STMT xTimerQueue.22_4 = xTimerQueue; xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0); # DEBUG xReturn => xReturn_19 goto ; [100.00%] [local count: 87689]: # DEBUG BEGIN_STMT xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0); # DEBUG xReturn => xReturn_16 [local count: 250539]: # xReturn_5 = PHI <0(5), xReturn_16(10), xReturn_19(9), xReturn_22(8)> # DEBUG xReturn => xReturn_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_5; } ;; Function xTimerGetTimerDaemonTaskHandle (xTimerGetTimerDaemonTaskHandle, funcdef_no=8, decl_uid=6354, cgraph_uid=9, symbol_order=14) Modification phase of node xTimerGetTimerDaemonTaskHandle/14 xTimerGetTimerDaemonTaskHandle () { uint32_t ulNewBASEPRI; struct tskTaskControlBlock * xTimerTaskHandle.24_1; [local count: 357913]: # DEBUG BEGIN_STMT xTimerTaskHandle.24_1 = xTimerTaskHandle; if (xTimerTaskHandle.24_1 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_3 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_3 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xTimerTaskHandle.24_1; } ;; Function xTimerGetPeriod (xTimerGetPeriod, funcdef_no=9, decl_uid=6373, cgraph_uid=10, symbol_order=15) Modification phase of node xTimerGetPeriod/15 xTimerGetPeriod (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; TickType_t _3; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerPeriodInTicks; return _3; } ;; Function vTimerSetReloadMode (vTimerSetReloadMode, funcdef_no=10, decl_uid=6369, cgraph_uid=11, symbol_order=16) Modification phase of node vTimerSetReloadMode/16 vTimerSetReloadMode (struct tmrTimerControl * xTimer, const UBaseType_t uxAutoReload) { uint32_t ulNewBASEPRI; unsigned char _1; unsigned char _2; unsigned char _3; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_6(D) # DEBUG BEGIN_STMT if (xTimer_6(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_13 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (uxAutoReload_9(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus; _2 = _1 | 4; MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _2; goto ; [100.00%] [local count: 61694]: # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_6(D)].ucStatus; _4 = _3 & 251; MEM[(struct Timer_t *)xTimer_6(D)].ucStatus = _4; [local count: 123389]: # DEBUG BEGIN_STMT vPortExitCritical (); return; } ;; Function uxTimerGetReloadMode (uxTimerGetReloadMode, funcdef_no=11, decl_uid=6371, cgraph_uid=12, symbol_order=17) Modification phase of node uxTimerGetReloadMode/17 uxTimerGetReloadMode (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; unsigned char _1; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_3(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus; _4 = _1 & 4; if (_4 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT # DEBUG uxReturn => 1 [local count: 123389]: # uxReturn_2 = PHI <0(5), 1(6)> # DEBUG uxReturn => uxReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return uxReturn_2; } ;; Function xTimerGetExpiryTime (xTimerGetExpiryTime, funcdef_no=12, decl_uid=6375, cgraph_uid=13, symbol_order=18) Modification phase of node xTimerGetExpiryTime/18 xTimerGetExpiryTime (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; TickType_t xReturn; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_3 = MEM[(struct Timer_t *)xTimer_1(D)].xTimerListItem.xItemValue; # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT return xReturn_3; } ;; Function pcTimerGetName (pcTimerGetName, funcdef_no=13, decl_uid=6366, cgraph_uid=14, symbol_order=19) Modification phase of node pcTimerGetName/19 pcTimerGetName (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; const char * _3; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_1(D)].pcTimerName; return _3; } ;; Function xTimerIsTimerActive (xTimerIsTimerActive, funcdef_no=24, decl_uid=6352, cgraph_uid=25, symbol_order=30) Modification phase of node xTimerIsTimerActive/30 xTimerIsTimerActive (struct tmrTimerControl * xTimer) { uint32_t ulNewBASEPRI; unsigned char _1; long int _2; unsigned char _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_3(D) # DEBUG BEGIN_STMT if (xTimer_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Timer_t *)xTimer_3(D)].ucStatus; _4 = _1 & 1; _2 = (long int) _4; # DEBUG xReturn => _2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return _2; } ;; Function pvTimerGetTimerID (pvTimerGetTimerID, funcdef_no=25, decl_uid=6347, cgraph_uid=26, symbol_order=31) Modification phase of node pvTimerGetTimerID/31 pvTimerGetTimerID (struct tmrTimerControl * const xTimer) { uint32_t ulNewBASEPRI; void * pvReturn; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_6 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT pvReturn_4 = MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID; # DEBUG pvReturn => pvReturn_4 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return pvReturn_4; } ;; Function vTimerSetTimerID (vTimerSetTimerID, funcdef_no=26, decl_uid=6350, cgraph_uid=27, symbol_order=32) Modification phase of node vTimerSetTimerID/32 vTimerSetTimerID (struct tmrTimerControl * xTimer, void * pvNewID) { uint32_t ulNewBASEPRI; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTimer => xTimer_1(D) # DEBUG BEGIN_STMT if (xTimer_1(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_7 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_7 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT MEM[(struct Timer_t *)xTimer_1(D)].pvTimerID = pvNewID_4(D); # DEBUG BEGIN_STMT vPortExitCritical (); return; } ;; Function xTimerPendFunctionCallFromISR (xTimerPendFunctionCallFromISR, funcdef_no=27, decl_uid=6359, cgraph_uid=28, symbol_order=33) Modification phase of node xTimerPendFunctionCallFromISR/33 xTimerPendFunctionCallFromISR (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, BaseType_t * pxHigherPriorityTaskWoken) { BaseType_t xReturn; struct DaemonTaskMessage_t xMessage; struct QueueDefinition * xTimerQueue.25_1; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage.xMessageID = -2; # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D); # DEBUG BEGIN_STMT xTimerQueue.25_1 = xTimerQueue; xReturn_12 = xQueueGenericSendFromISR (xTimerQueue.25_1, &xMessage, pxHigherPriorityTaskWoken_10(D), 0); # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_12; } ;; Function xTimerPendFunctionCall (xTimerPendFunctionCall, funcdef_no=28, decl_uid=6364, cgraph_uid=29, symbol_order=34) Modification phase of node xTimerPendFunctionCall/34 xTimerPendFunctionCall (void (*PendedFunction_t) (void *, uint32_t) xFunctionToPend, void * pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct DaemonTaskMessage_t xMessage; struct QueueDefinition * xTimerQueue.26_1; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTimerQueue.26_1 = xTimerQueue; if (xTimerQueue.26_1 == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_14 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage.xMessageID = -1; # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend_4(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1_6(D); # DEBUG BEGIN_STMT xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2_8(D); # DEBUG BEGIN_STMT xReturn_12 = xQueueGenericSend (xTimerQueue.26_1, &xMessage, xTicksToWait_10(D), 0); # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xMessage ={v} {CLOBBER}; return xReturn_12; } ;; Function uxTimerGetTimerNumber (uxTimerGetTimerNumber, funcdef_no=29, decl_uid=6388, cgraph_uid=30, symbol_order=35) Modification phase of node uxTimerGetTimerNumber/35 uxTimerGetTimerNumber (struct tmrTimerControl * xTimer) { UBaseType_t _3; [local count: 1073741824]: # DEBUG BEGIN_STMT _3 = MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber; return _3; } ;; Function vTimerSetTimerNumber (vTimerSetTimerNumber, funcdef_no=30, decl_uid=6386, cgraph_uid=31, symbol_order=36) Modification phase of node vTimerSetTimerNumber/36 vTimerSetTimerNumber (struct tmrTimerControl * xTimer, UBaseType_t uxTimerNumber) { [local count: 1073741824]: # DEBUG BEGIN_STMT MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D); return; }