
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) @06aa7d20
  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) @06aa7a80
  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) @06ba6c40
  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) @06ba6b60
  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) @06ba6a80
  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) @06ba68c0
  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) @06ba6700
  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) @06ba6460
  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) @06ba6380
  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) @06ba62a0
  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) @06ba60e0
  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) @06ba6000
  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) @06b83e00
  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) @06b83d20
  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) @06b839a0
  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) @06b83700
  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) @06b96120
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: prvSampleTimeNow/25 (read)prvSampleTimeNow/25 (write)
  Availability: available
  Varpool flags: initialized
xTaskGetTickCount/41 (xTaskGetTickCount) @06b83380
  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) @06b831c0
  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) @06b830e0
  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) @06b83000
  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) @06b76ee0
  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) @06b76a80
  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) @06b767e0
  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) @06b76540
  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) @06b760e0
  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) @06b728c0
  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) @06b72ee0
  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) @06b72b60
  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) @06b727e0
  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) @06b72460
  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) @06b720e0
  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) @06b667e0
  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) @06b66d20
  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) @06b66a80
  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) @06b66700
  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) @06b662a0
  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) @06b66000
  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) @06b0c540
  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) @06b0cee0
  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) @06b0cb60
  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) @06b0c7e0
  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) @06b0c460
  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) @06b0c0e0
  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) @06b617e0
  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) @06b611c0
  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) @06b61a80
  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) @06b61700
  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) @06b61460
  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) @06b5b678
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: xTimerCreateTimerTask/10 (addr)xTimerGetTimerDaemonTaskHandle/14 (read)
  Availability: available
  Varpool flags: initialized
xTimerQueue/8 (xTimerQueue) @06b5b5e8
  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) @06b5b558
  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) @06b5b4c8
  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) @06b5b438
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: prvCheckForValidListAndQueue/29 (addr)prvCheckForValidListAndQueue/29 (addr)
  Availability: available
  Varpool flags:
xActiveTimerList1/4 (xActiveTimerList1) @06b5b3a8
  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;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  xTimerQueue.17_1 = xTimerQueue;
  if (xTimerQueue.17_1 == 0B)
    goto <bb 3>; [17.43%]
  else
    goto <bb 5>; [82.57%]

  <bb 3> [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 <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 100070816]:
  # DEBUG BEGIN_STMT
  vQueueAddToRegistry (_2, "TmrQ");

  <bb 5> [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;

  <bb 2> [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 <bb 3>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _1 = xTimeNow_12(D) - xCommandTime_13(D);
  _2 = pxTimer_8(D)->xTimerPeriodInTicks;
  if (_1 >= _2)
    goto <bb 8>; [67.00%]
  else
    goto <bb 4>; [33.00%]

  <bb 4> [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 <bb 8>; [100.00%]

  <bb 5> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  if (xTimeNow_12(D) < xCommandTime_13(D))
    goto <bb 6>; [67.00%]
  else
    goto <bb 7>; [33.00%]

  <bb 6> [local count: 359703511]:
  if (xNextExpiryTime_9(D) >= xCommandTime_13(D))
    goto <bb 8>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 357019157]:
  # DEBUG BEGIN_STMT
  pxCurrentTimerList.15_3 = pxCurrentTimerList;
  _4 = &pxTimer_8(D)->xTimerListItem;
  vListInsert (pxCurrentTimerList.15_3, _4);

  <bb 8> [local count: 1073741824]:
  # xProcessTimerNow_5 = PHI <xProcessTimerNow_16(4), 1(6), 0(7), 1(3)>
  # 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 (*<T689>) (struct tmrTimerControl *) _2;
  long unsigned int _3;
  long unsigned int _4;
  long int _5;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 3> [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));

  <bb 4> [local count: 1073741824]:
  # xExpiredTime_6 = PHI <xExpiredTime_8(D)(2), xExpiredTime_13(3)>
  # 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 <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [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 (*<T689>) (struct tmrTimerControl *) _6;
  unsigned char _16;

  <bb 2> [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 <bb 3>; [33.00%]
  else
    goto <bb 4>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  prvReloadTimer (pxTimer_9, xNextExpireTime_12(D), xTimeNow_13(D));
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 719407023]:
  # DEBUG BEGIN_STMT
  _5 = _4 & 254;
  pxTimer_9->ucStatus = _5;

  <bb 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;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 3> [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);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  pxCurrentTimerList.11_2 = pxCurrentTimerList;
  _3 ={v} pxCurrentTimerList.11_2->uxNumberOfItems;
  if (_3 != 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # pxCurrentTimerList.11_7 = PHI <pxCurrentTimerList.11_2(4)>
  # 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;

  <bb 2> [local count: 107374]:

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  goto <bb 3>; [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;

  <bb 2> [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 <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [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 <bb 5>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 5> [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

  <bb 6> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 1073741824]:
  goto <bb 6>; [100.00%]

  <bb 7> [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;

  <bb 2> [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 <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [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);

  <bb 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;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xTimer_7(D) == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 12> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xTimerQueue.20_1 = xTimerQueue;
  if (xTimerQueue.20_1 != 0B)
    goto <bb 6>; [70.00%]
  else
    goto <bb 11>; [30.00%]

  <bb 6> [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 <bb 7>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 7> [local count: 87689]:
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 == 2)
    goto <bb 8>; [34.00%]
  else
    goto <bb 9>; [66.00%]

  <bb 8> [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 <bb 11>; [100.00%]

  <bb 9> [local count: 57875]:
  # DEBUG BEGIN_STMT
  xTimerQueue.22_4 = xTimerQueue;
  xReturn_19 = xQueueGenericSend (xTimerQueue.22_4, &xMessage, 0, 0);
  # DEBUG xReturn => xReturn_19
  goto <bb 11>; [100.00%]

  <bb 10> [local count: 87689]:
  # DEBUG BEGIN_STMT
  xReturn_16 = xQueueGenericSendFromISR (xTimerQueue.20_1, &xMessage, pxHigherPriorityTaskWoken_14(D), 0);
  # DEBUG xReturn => xReturn_16

  <bb 11> [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;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  xTimerTaskHandle.24_1 = xTimerTaskHandle;
  if (xTimerTaskHandle.24_1 == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_1(D)
  # DEBUG BEGIN_STMT
  if (xTimer_1(D) == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_6(D)
  # DEBUG BEGIN_STMT
  if (xTimer_6(D) == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 9> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 123389]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  if (uxAutoReload_9(D) != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 6> [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 <bb 8>; [100.00%]

  <bb 7> [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;

  <bb 8> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_3(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xTimer_3(D) == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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 <bb 7>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 6> [local count: 61694]:
  # DEBUG BEGIN_STMT
  # DEBUG uxReturn => 1

  <bb 7> [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;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_1(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xTimer_1(D) == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_1(D)
  # DEBUG BEGIN_STMT
  if (xTimer_1(D) == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_3(D)
  # DEBUG BEGIN_STMT
  if (xTimer_3(D) == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_1(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xTimer_1(D) == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG pxTimer => xTimer_1(D)
  # DEBUG BEGIN_STMT
  if (xTimer_1(D) == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [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;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xTimerQueue.26_1 = xTimerQueue;
  if (xTimerQueue.26_1 == 0B)
    goto <bb 3>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 3> [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

  <bb 4> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [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;

  <bb 2> [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)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  MEM[(struct Timer_t *)xTimer_2(D)].uxTimerNumber = uxTimerNumber_3(D);
  return;

}


