IPA function summary for vQueueUnregisterQueue.part.0/114 inlinable
  global time:     5.000000
  self size:       7
  global size:     7
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:5.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
  calls:

IPA function summary for xQueueGenericReset.part.0/65 inlinable
  global time:     50.697050
  self size:       36
  global size:     36
  min size:       4
  self stack:      0
  global stack:    0
    size:9.500000, time:9.500000
    size:7.500000, time:6.500000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op1 changed)
    size:0.500000, time:0.335000,  executed if:(op1 == 0) && (not inlined)
    size:7.500000, time:2.448850,  executed if:(op1 == 0)
  calls:
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.22 size: 3 time: 12 predicate: (op1 == 0)
    vListInitialise/44 function body not available
      loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0)
    vListInitialise/44 function body not available
      loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for vQueueWaitForMessageRestricted/41 inlinable
  global time:     46.970000
  self size:       22
  global size:     22
  min size:       16
  self stack:      0
  global stack:    0
    size:8.500000, time:7.840000
    size:5.500000, time:3.840000,  executed if:(not inlined)
  calls:
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 0 freq:1.00 size: 2 time: 11callee size:17 stack: 0
    vTaskPlaceOnEventListRestricted/62 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for vQueueUnregisterQueue/40 inlinable
  global time:     15.299224
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:8.000000, time:8.899221,  executed if:(op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
  calls:
    vQueueUnregisterQueue.part.0/114 function not considered for inlining
      loop depth: 0 freq:0.30 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 == 0B)

IPA function summary for pcQueueGetName/39 inlinable
  global time:     13.729842
  self size:       17
  global size:     17
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:7.000000, time:8.829841,  executed if:(op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for vQueueAddToRegistry/38 inlinable
  global time:     16.518196
  self size:       27
  global size:     27
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:15.000000, time:10.218196,  executed if:(op1 != 0B) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for xQueueIsQueueFullFromISR/37 inlinable
  global time:     7.700000
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed || op0[ref offset: 480] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for prvIsQueueFull/36 inlinable
  global time:     26.000000
  self size:       9
  global size:     9
  min size:       4
  self stack:      0
  global stack:    0
    size:3.000000, time:3.000000
    size:4.000000, time:3.000000,  executed if:(not inlined)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for xQueueIsQueueEmptyFromISR/35 inlinable
  global time:     7.000000
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for prvIsQueueEmpty/34 inlinable
  global time:     25.000000
  self size:       8
  global size:     8
  min size:       4
  self stack:      0
  global stack:    0
    size:2.500000, time:2.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvUnlockQueue/33 inlinable
  global time:     441.930953
  self size:       35
  global size:     35
  min size:       24
  self stack:      0
  global stack:    0
    size:17.000000, time:133.648980
    size:6.000000, time:12.833839,  executed if:(not inlined)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskMissedYield/56 function body not available
      loop depth: 1 freq:2.75 size: 1 time: 10
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 1 freq:8.35 size: 3 time: 12
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskMissedYield/56 function body not available
      loop depth: 1 freq:2.75 size: 1 time: 10
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 1 freq:8.35 size: 3 time: 12
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvCopyDataFromQueue/32 inlinable
  global time:     15.500000
  self size:       19
  global size:     19
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 512] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 512] changed)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
    size:1.000000, time:0.500000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
    size:1.500000, time:0.625000,  executed if:(op0[ref offset: 512] != 0) && (not inlined)
    size:1.500000, time:0.625000,  executed if:(op0[ref offset: 512] != 0)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed || op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0)
  calls:
    memcpy/55 function body not available
      loop depth: 0 freq:0.50 size: 4 time: 13 predicate: (op0[ref offset: 512] != 0)

IPA function summary for prvCopyDataToQueue/31 inlinable
  global time:     23.807600
  self size:       54
  global size:     54
  min size:       0
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 448] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 448] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 512] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 512] changed)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op2 changed) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:3.000000, time:0.625000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:8.000000, time:1.750000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0)
    size:2.000000, time:0.500000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op2 changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:2.000000, time:0.170000,  executed if:(op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 448] changed) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:1.000000, time:0.042500,  executed if:(op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 448] changed) && (op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0)
    size:3.000000, time:0.625000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:6.000000, time:1.375000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] == 0) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (not inlined)
    size:2.500000, time:1.250000,  executed if:(op0[ref offset: 512] == 0),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  calls:
    memcpy/55 function body not available
      loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 != 0) && (op0[ref offset: 512] != 0)
    memcpy/55 function body not available
      loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 == 0) && (op0[ref offset: 512] != 0)
    xTaskPriorityDisinherit/54 function body not available
      loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)

IPA function summary for prvGetDisinheritPriorityAfterTimeout/30 inlinable
  global time:     6.500000
  self size:       9
  global size:     9
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 288] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 288] changed)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 288] != 0) && (not inlined),  nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 288] != 0),  nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 288] != 0)
  calls:

IPA function summary for ucQueueGetQueueType/29 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 608] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 608] changed)
  calls:

IPA function summary for vQueueSetQueueNumber/28 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.500000, time:0.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:

IPA function summary for uxQueueGetQueueNumber/27 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 576] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 576] changed)
  calls:

IPA function summary for vQueueDelete/26 inlinable
  global time:     17.159302
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.069400,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortFree/61 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
    vQueueUnregisterQueue/40 function not considered for inlining
      loop depth: 0 freq:0.53 size: 2 time: 11callee size: 7 stack: 0 predicate: (op0 != 0B)

IPA function summary for uxQueueMessagesWaitingFromISR/25 inlinable
  global time:     5.600001
  self size:       11
  global size:     11
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for uxQueueSpacesAvailable/24 inlinable
  global time:     17.694002
  self size:       15
  global size:     15
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.604100,  executed if:(op0 != 0B) && (not inlined)
    size:2.000000, time:1.069400,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for uxQueueMessagesWaiting/23 inlinable
  global time:     16.624602
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.500000, time:1.336750,  executed if:(op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xQueuePeekFromISR/22 inlinable
  global time:     15.060094
  self size:       44
  global size:     44
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.400001,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.524998,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.524998,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:0.500000, time:0.297501,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.487503,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:10.500000, time:1.930130,  executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.500000, time:0.555672,  executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.993250,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.499996,  executed if:(op0 == 0B)
  calls:
    prvCopyDataFromQueue/32 function not considered for inlining
      loop depth: 0 freq:0.06 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.20 size: 1 time: 10 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueReceiveFromISR/21 inlinable
  global time:     22.476026
  self size:       59
  global size:     59
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:26.500000, time:6.511267,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:3.500000, time:1.509311,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.019888,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.003480,  executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.003480,  executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 function not considered for inlining
      loop depth: 0 freq:0.18 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.54 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueuePeek/20 inlinable
  global time:     543.926399
  self size:       108
  global size:     108
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:44.000000, time:80.224698,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:8.961298,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 function not considered for inlining
      loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueSemaphoreTake/19 inlinable
  global time:     246.801177
  self size:       136
  global size:     136
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350001,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.750007,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
    size:60.000000, time:37.465467,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
    size:7.000000, time:4.111823,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:2.345004,  executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskPriorityDisinheritAfterTimeout/60 function body not available
      loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvGetDisinheritPriorityAfterTimeout/30 function not considered for inlining
      loop depth: 0 freq:0.01 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.90 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:0.90 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.30 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:0.30 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.61 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:0.61 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:0.61 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskPriorityInherit/59 function body not available
      loop depth: 1 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:1.81 size: 4 time: 13 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:0.60 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    pvTaskIncrementMutexHeldCount/58 function body not available
      loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:1.95 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.23 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueReceive/18 inlinable
  global time:     543.926399
  self size:       108
  global size:     108
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:44.500000, time:80.307677,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.500000, time:8.878318,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 function not considered for inlining
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 function not considered for inlining
      loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGiveFromISR/17 inlinable
  global time:     16.111704
  self size:       66
  global size:     66
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
    size:0.500000, time:0.175000,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.875000,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.081427,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.407136,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:0.569996,  executed if:(op0[ref offset: 64] != 0B) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:27.000000, time:3.297567,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.000000, time:0.818808,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.013241,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op1 changed) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.002318,  executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.002318,  executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.749999,  executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
    size:5.000000, time:1.500002,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.24 size: 1 time: 10 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGenericSendFromISR/16 inlinable
  global time:     23.679489
  self size:       72
  global size:     72
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.525002,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.525002,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:2.000000, time:1.189999,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.152082,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.760408,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.003736,  executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:26.000000, time:5.469914,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.000000, time:1.389252,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.528296,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.000000, time:0.024676,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.004318,  executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.004318,  executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataToQueue/31 function not considered for inlining
      loop depth: 0 freq:0.22 size: 4 time: 13callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.39 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGenericSend/15 inlinable
  global time:     359.104528
  self size:       121
  global size:     121
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.525002,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.525002,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:2.000000, time:1.189999,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.152082,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.760408,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.003736,  executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:25.500000, time:11.189120,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.500000, time:3.468903,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:5.449000,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:21.000000, time:42.665100,  executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.000000, time:3.452794,  executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskResumeAll/53 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 0 freq:0.07 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.25 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 79.810000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.25 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 function not considered for inlining
      loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 79.810000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.25 size: 3 time: 12 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueFull/36 function not considered for inlining
      loop depth: 1 freq:2.51 size: 3 time: 12callee size: 4 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 39.900000% of time
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:2.58 size: 4 time: 13 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:0.85 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.15 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataToQueue/31 function not considered for inlining
      loop depth: 0 freq:0.15 size: 5 time: 14callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:2.80 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.39 size: 2 time: 11 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueCreateCountingSemaphore/14 inlinable
  global time:     10.260529
  self size:       20
  global size:     20
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:4.174988
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.000000,  executed if:(op0 != 0),  nonconst if:(op0 changed || op1 changed) && (op0 != 0)
    size:3.000000, time:0.445502,  executed if:(op0 != 0)
    size:1.000000, time:0.330005,  executed if:(op0 != 0) && (not inlined)
  calls:
    xQueueGenericCreate/6 function not considered for inlining
      loop depth: 0 freq:0.17 size: 5 time: 14callee size:14 stack: 0 predicate: (op0 != 0)
       op1 is compile time invariant
       op2 is compile time invariant

IPA function summary for xQueueTakeMutexRecursive/13 inlinable
  global time:     18.345502
  self size:       27
  global size:     27
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:8.000000, time:2.424704,  executed if:(op0 != 0B)
    size:3.000000, time:1.461148,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xQueueSemaphoreTake/19 function not considered for inlining
      loop depth: 0 freq:0.29 size: 4 time: 13callee size:68 stack: 8 predicate: (op0 != 0B)
    xTaskGetCurrentTaskHandle/47 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)

IPA function summary for xQueueGiveMutexRecursive/12 inlinable
  global time:     14.424882
  self size:       25
  global size:     25
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:6.000000, time:1.711046,  executed if:(op0 != 0B)
    size:2.000000, time:1.229812,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xQueueGenericSend/15 function not considered for inlining
      loop depth: 0 freq:0.05 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B)
       op1 is compile time invariant
       op2 is compile time invariant
       op3 is compile time invariant
    xTaskGetCurrentTaskHandle/47 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)

IPA function summary for xQueueGetMutexHolderFromISR/11 inlinable
  global time:     7.358400
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B)
    size:0.500000, time:0.179200,  executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.179200,  executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for xQueueGetMutexHolder/10 inlinable
  global time:     17.967768
  self size:       16
  global size:     16
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.473633,  executed if:(op0 != 0B) && (not inlined)
    size:3.000000, time:1.473633,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xQueueCreateMutex/9 inlinable
  global time:     27.000000
  self size:       10
  global size:     10
  min size:       14
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    prvInitialiseMutex/8 function not considered for inlining
      loop depth: 0 freq:1.00 size: 2 time: 11callee size: 6 stack: 0
    xQueueGenericCreate/6 function not considered for inlining
      loop depth: 0 freq:1.00 size: 5 time: 14callee size:14 stack: 0
       op0 is compile time invariant
       op1 is compile time invariant

IPA function summary for prvInitialiseMutex/8 inlinable
  global time:     13.089900
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.500000, time:0.802050,  executed if:(op0 != 0B) && (not inlined)
    size:1.500000, time:0.802050,  executed if:(op0 != 0B)
  calls:
    xQueueGenericSend/15 function not considered for inlining
      loop depth: 0 freq:0.53 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B)
       op1 is compile time invariant
       op2 is compile time invariant
       op3 is compile time invariant

IPA function summary for prvInitialiseNewQueue/7 inlinable
  global time:     20.000000
  self size:       13
  global size:     13
  min size:       6
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:4.500000, time:3.500000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op1 changed)
    size:0.500000, time:0.250000,  executed if:(op1 != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op1 != 0)
    size:0.500000, time:0.250000,  executed if:(op1 == 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op1 == 0)
  calls:
    xQueueGenericReset/5 function not considered for inlining
      loop depth: 0 freq:1.00 size: 3 time: 12callee size:12 stack: 0
       op1 is compile time invariant

IPA function summary for xQueueGenericCreate/6 inlinable
  global time:     10.445736
  self size:       28
  global size:     28
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:4.587495
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:6.000000, time:1.832486,  executed if:(op0 != 0),  nonconst if:(op0 changed || op1 changed) && (op0 != 0)
    size:3.000000, time:0.209111,  executed if:(op0 != 0)
    size:1.000000, time:0.165002,  executed if:(op0 != 0) && (not inlined)
  calls:
    prvInitialiseNewQueue/7 function not considered for inlining
      loop depth: 0 freq:0.04 size: 6 time: 15callee size: 6 stack: 0 predicate: (op0 != 0)
    pvPortMalloc/46 function body not available
      loop depth: 0 freq:0.08 size: 3 time: 12 predicate: (op0 != 0)

IPA function summary for xQueueGenericReset/5 inlinable
  global time:     11.305065
  self size:       25
  global size:     25
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350002,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.750008,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
    size:0.500000, time:0.175001,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.175001,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
    size:2.000000, time:0.700003,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed || op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
    size:5.000000, time:2.922505,  executed if:(op0 != 0B)
    size:1.000000, time:0.231005,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500011,  executed if:(op0 == 0B)
  calls:
    xQueueGenericReset.part.0/65 function not considered for inlining
      loop depth: 0 freq:0.12 size: 4 time: 13callee size:18 stack: 0 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)


Flattening functions:
Overall time estimate: 2689.014374 weighted by profile: 0.000000

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in vQueueUnregisterQueue.part.0/114.
Enqueueing calls in xQueueGenericReset.part.0/65.
Enqueueing calls in vQueueWaitForMessageRestricted/41.
Enqueueing calls in vQueueUnregisterQueue/40.
Enqueueing calls in pcQueueGetName/39.
Enqueueing calls in vQueueAddToRegistry/38.
Enqueueing calls in xQueueIsQueueFullFromISR/37.
Enqueueing calls in prvIsQueueFull/36.
Enqueueing calls in xQueueIsQueueEmptyFromISR/35.
Enqueueing calls in prvIsQueueEmpty/34.
Enqueueing calls in prvUnlockQueue/33.
Enqueueing calls in prvCopyDataFromQueue/32.
Enqueueing calls in prvCopyDataToQueue/31.
Enqueueing calls in prvGetDisinheritPriorityAfterTimeout/30.
Enqueueing calls in ucQueueGetQueueType/29.
Enqueueing calls in vQueueSetQueueNumber/28.
Enqueueing calls in uxQueueGetQueueNumber/27.
Enqueueing calls in vQueueDelete/26.
Enqueueing calls in uxQueueMessagesWaitingFromISR/25.
Enqueueing calls in uxQueueSpacesAvailable/24.
Enqueueing calls in uxQueueMessagesWaiting/23.
Enqueueing calls in xQueuePeekFromISR/22.
Enqueueing calls in xQueueReceiveFromISR/21.
Enqueueing calls in xQueuePeek/20.
Enqueueing calls in xQueueSemaphoreTake/19.
Enqueueing calls in xQueueReceive/18.
Enqueueing calls in xQueueGiveFromISR/17.
Enqueueing calls in xQueueGenericSendFromISR/16.
Enqueueing calls in xQueueGenericSend/15.
Enqueueing calls in xQueueCreateCountingSemaphore/14.
Enqueueing calls in xQueueTakeMutexRecursive/13.
Enqueueing calls in xQueueGiveMutexRecursive/12.
Enqueueing calls in xQueueGetMutexHolderFromISR/11.
Enqueueing calls in xQueueGetMutexHolder/10.
Enqueueing calls in xQueueCreateMutex/9.
Enqueueing calls in prvInitialiseMutex/8.
Enqueueing calls in prvInitialiseNewQueue/7.
Enqueueing calls in xQueueGenericCreate/6.
Enqueueing calls in xQueueGenericReset/5.

Considering prvIsQueueFull/36 with 9 size
 to be inlined into xQueueGenericSend/15 in ../FreeRTOS/Source/queue.c:974
 Estimated badness is -0.611183, frequency 2.51.

Considering prvInitialiseMutex/8 with 13 size
 to be inlined into xQueueCreateMutex/9 in ../FreeRTOS/Source/queue.c:547
 Estimated badness is -0.463934, frequency 1.00.

Considering vQueueUnregisterQueue.part.0/114 with 7 size
 to be inlined into vQueueUnregisterQueue/40 in unknown:0
 Estimated badness is -0.166667, frequency 0.30.

Considering prvInitialiseNewQueue/7 with 13 size
 to be inlined into xQueueGenericCreate/6 in ../FreeRTOS/Source/queue.c:443
 Estimated badness is -0.055871, frequency 0.04.

Considering xQueueGenericReset.part.0/65 with 36 size
 to be inlined into xQueueGenericReset/5 in unknown:0
 Estimated badness is -0.007792, frequency 0.12.

Considering prvGetDisinheritPriorityAfterTimeout/30 with 9 size
 to be inlined into xQueueSemaphoreTake/19 in ../FreeRTOS/Source/queue.c:1693
 Estimated badness is -0.002336, frequency 0.01.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

Deciding on functions to be inlined into all callers and removing useless speculations:
Overall time estimate: 2596.598217 weighted by profile: 0.000000

Why inlining failed?
function body not available                       :      108 calls, 145.321652 freq, 0 count
--param max-inline-insns-auto limit reached       :        6 calls, 1.289531 freq, 0 count
call is unlikely and code size would grow         :       26 calls, 26.304340 freq, 0 count
IPA function summary for vQueueWaitForMessageRestricted/41 inlinable
  global time:     46.970000
  self size:       22
  global size:     22
  min size:       16
  self stack:      0
  global stack:    0
    size:8.500000, time:7.840000
    size:5.500000, time:3.840000,  executed if:(not inlined)
  calls:
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 0 freq:1.00 size: 2 time: 11callee size:17 stack: 0
    vTaskPlaceOnEventListRestricted/62 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for vQueueUnregisterQueue/40 inlinable
  global time:     13.799222
  self size:       14
  global size:     18
  min size:       0
  self stack:      0
  global stack:    0
  estimated growth:9
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:8.000000, time:8.899221,  executed if:(op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    vQueueUnregisterQueue.part.0/114 inlined
      loop depth: 0 freq:0.30 size: 1 time: 10callee size: 3 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0

IPA function summary for pcQueueGetName/39 inlinable
  global time:     13.729842
  self size:       17
  global size:     17
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:7.000000, time:8.829841,  executed if:(op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for vQueueAddToRegistry/38 inlinable
  global time:     16.518196
  self size:       27
  global size:     27
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:15.000000, time:10.218196,  executed if:(op1 != 0B) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for xQueueIsQueueFullFromISR/37 inlinable
  global time:     7.700000
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed || op0[ref offset: 480] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for xQueueIsQueueEmptyFromISR/35 inlinable
  global time:     7.000000
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for prvIsQueueEmpty/34 inlinable
  global time:     25.000000
  self size:       8
  global size:     8
  min size:       3
  self stack:      0
  global stack:    0
  estimated growth:4
    size:2.500000, time:2.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvUnlockQueue/33 inlinable
  global time:     441.930953
  self size:       35
  global size:     35
  min size:       17
  self stack:      0
  global stack:    0
  estimated growth:316
    size:17.000000, time:133.648980
    size:6.000000, time:12.833839,  executed if:(not inlined)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskMissedYield/56 function body not available
      loop depth: 1 freq:2.75 size: 1 time: 10
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 1 freq:8.35 size: 3 time: 12
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskMissedYield/56 function body not available
      loop depth: 1 freq:2.75 size: 1 time: 10
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 1 freq:8.35 size: 3 time: 12
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for prvCopyDataFromQueue/32 inlinable
  global time:     15.500000
  self size:       19
  global size:     19
  min size:       0
  self stack:      0
  global stack:    0
  estimated growth:21
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 512] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 512] changed)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
    size:1.000000, time:0.500000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0)
    size:1.500000, time:0.625000,  executed if:(op0[ref offset: 512] != 0) && (not inlined)
    size:1.500000, time:0.625000,  executed if:(op0[ref offset: 512] != 0)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed || op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0)
  calls:
    memcpy/55 function body not available
      loop depth: 0 freq:0.50 size: 4 time: 13 predicate: (op0[ref offset: 512] != 0)

IPA function summary for prvCopyDataToQueue/31 inlinable
  global time:     23.807600
  self size:       54
  global size:     54
  min size:       2
  self stack:      0
  global stack:    0
  estimated growth:19
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 448] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 448] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 512] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 512] changed)
    size:2.000000, time:1.000000,  executed if:(op0[ref offset: 512] != 0),  nonconst if:(op2 changed) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:3.000000, time:0.625000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:8.000000, time:1.750000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0)
    size:2.000000, time:0.500000,  executed if:(op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op2 changed) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:2.000000, time:0.170000,  executed if:(op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 448] changed) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:1.000000, time:0.042500,  executed if:(op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 448] changed) && (op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.125000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined),  nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:0.500000, time:0.125000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0),  nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0)
    size:3.000000, time:0.625000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined)
    size:6.000000, time:1.375000,  executed if:(op2 == 0) && (op0[ref offset: 512] != 0)
    size:0.500000, time:0.250000,  executed if:(op0[ref offset: 512] == 0) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (not inlined)
    size:2.500000, time:1.250000,  executed if:(op0[ref offset: 512] == 0),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined)
    size:0.500000, time:0.043575,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)
  calls:
    memcpy/55 function body not available
      loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 != 0) && (op0[ref offset: 512] != 0)
    memcpy/55 function body not available
      loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 == 0) && (op0[ref offset: 512] != 0)
    xTaskPriorityDisinherit/54 function body not available
      loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0)

IPA function summary for ucQueueGetQueueType/29 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 608] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 608] changed)
  calls:

IPA function summary for vQueueSetQueueNumber/28 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.500000, time:0.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:

IPA function summary for uxQueueGetQueueNumber/27 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 576] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 576] changed)
  calls:

IPA function summary for vQueueDelete/26 inlinable
  global time:     17.159302
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.069400,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortFree/61 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
    vQueueUnregisterQueue/40 call is unlikely and code size would grow
      loop depth: 0 freq:0.53 size: 2 time: 11callee size: 9 stack: 0 predicate: (op0 != 0B)

IPA function summary for uxQueueMessagesWaitingFromISR/25 inlinable
  global time:     5.600001
  self size:       11
  global size:     11
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for uxQueueSpacesAvailable/24 inlinable
  global time:     17.694002
  self size:       15
  global size:     15
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.604100,  executed if:(op0 != 0B) && (not inlined)
    size:2.000000, time:1.069400,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for uxQueueMessagesWaiting/23 inlinable
  global time:     16.624602
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:1.500000, time:1.336750,  executed if:(op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xQueuePeekFromISR/22 inlinable
  global time:     15.060094
  self size:       44
  global size:     44
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.400001,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.524998,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.524998,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:0.500000, time:0.297501,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.487503,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:10.500000, time:1.930130,  executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.500000, time:0.555672,  executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.993250,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.499996,  executed if:(op0 == 0B)
  calls:
    prvCopyDataFromQueue/32 call is unlikely and code size would grow
      loop depth: 0 freq:0.06 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.20 size: 1 time: 10 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueReceiveFromISR/21 inlinable
  global time:     22.476026
  self size:       59
  global size:     59
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:26.500000, time:6.511267,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:3.500000, time:1.509311,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.019888,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.003480,  executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.003480,  executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 call is unlikely and code size would grow
      loop depth: 0 freq:0.18 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.54 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueuePeek/20 inlinable
  global time:     543.926399
  self size:       108
  global size:     108
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:44.000000, time:80.224698,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:8.961298,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 call is unlikely and code size would grow
      loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueSemaphoreTake/19 inlinable
  global time:     246.711017
  self size:       136
  global size:     138
  min size:       0
  self stack:      8
  global stack:    8
  estimated growth:123
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350001,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.750007,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
    size:65.000000, time:37.506449,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B)
    size:7.000000, time:4.111823,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:2.345004,  executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskPriorityDisinheritAfterTimeout/60 function body not available
      loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvGetDisinheritPriorityAfterTimeout/30 inlined
      loop depth: 0 freq:0.01 size: 3 time: 12callee size: 4 stack: 0
      Stack frame offset 8, callee self size 0, callee size 0
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.90 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:0.90 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.30 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:0.30 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:0.61 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:0.61 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:0.61 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskPriorityInherit/59 function body not available
      loop depth: 1 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:1.81 size: 4 time: 13 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:0.60 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    pvTaskIncrementMutexHeldCount/58 function body not available
      loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:1.95 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.23 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueReceive/18 inlinable
  global time:     543.926399
  self size:       108
  global size:     108
  min size:       0
  self stack:      8
  global stack:    8
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.162855,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.814276,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.814276,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:44.500000, time:80.307677,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.500000, time:8.878318,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 95.040000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueEmpty/34 call is unlikely and code size would grow
      loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 47.520000% of time
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataFromQueue/32 call is unlikely and code size would grow
      loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGiveFromISR/17 inlinable
  global time:     16.111704
  self size:       66
  global size:     66
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B)
    size:0.500000, time:0.175000,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.875000,  executed if:(op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.081427,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.407136,  executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:0.569996,  executed if:(op0[ref offset: 64] != 0B) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:27.000000, time:3.297567,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.000000, time:0.818808,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.013241,  executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op1 changed) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.002318,  executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.002318,  executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.749999,  executed if:(op0[ref offset: 512] != 0) && (op0 != 0B)
    size:5.000000, time:1.500002,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.24 size: 1 time: 10 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGenericSendFromISR/16 inlinable
  global time:     23.679489
  self size:       72
  global size:     72
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.525002,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.525002,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:2.000000, time:1.189999,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.152082,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.760408,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.003736,  executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:26.000000, time:5.469914,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:4.000000, time:1.389252,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.528296,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.000000, time:0.024676,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.004318,  executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.004318,  executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataToQueue/31 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.22 size: 4 time: 13callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortValidateInterruptPriority/57 function body not available
      loop depth: 0 freq:0.39 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueGenericSend/15 inlinable
  global time:     386.668900
  self size:       121
  global size:     123
  min size:       0
  self stack:      8
  global stack:    8
  estimated growth:190
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.399999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:0.500000, time:0.105000,  executed if:(op1 == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.525002,  executed if:(op1 == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B)
    size:5.000000, time:0.525002,  executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B)
    size:2.000000, time:1.189999,  executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:0.500000, time:0.152082,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.500000, time:0.760408,  executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:5.000000, time:1.003736,  executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:25.500000, time:11.189120,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.500000, time:3.468903,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:5.449000,  executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:24.000000, time:50.182656,  executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    size:2.000000, time:3.452794,  executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:
    xTaskResumeAll/53 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 0 freq:0.07 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.25 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 79.810000% of time
    xTaskResumeAll/53 function body not available
      loop depth: 1 freq:1.25 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvUnlockQueue/33 call is unlikely and code size would grow
      loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 change 79.810000% of time
    vTaskPlaceOnEventList/52 function body not available
      loop depth: 1 freq:1.25 size: 3 time: 12 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvIsQueueFull/36 inlined
      loop depth: 1 freq:2.51 size: 3 time: 12callee size: 4 stack: 0
      Stack frame offset 8, callee self size 0, callee size 0
      vPortExitCritical/45 function body not available
        loop depth: 1 freq:2.51 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
      vPortEnterCritical/42 function body not available
        loop depth: 1 freq:2.51 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskCheckForTimeOut/51 function body not available
      loop depth: 1 freq:2.58 size: 4 time: 13 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
       op1 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskSuspendAll/50 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vTaskInternalSetTimeOutState/49 function body not available
      loop depth: 1 freq:0.85 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
       op0 is compile time invariant
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.15 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskRemoveFromEventList/43 function body not available
      loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    prvCopyDataToQueue/31 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.15 size: 5 time: 14callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 1 freq:2.80 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)
    xTaskGetSchedulerState/48 function body not available
      loop depth: 0 freq:0.39 size: 2 time: 11 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B)

IPA function summary for xQueueCreateCountingSemaphore/14 inlinable
  global time:     10.260529
  self size:       20
  global size:     20
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:4.174988
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.000000,  executed if:(op0 != 0),  nonconst if:(op0 changed || op1 changed) && (op0 != 0)
    size:3.000000, time:0.445502,  executed if:(op0 != 0)
    size:1.000000, time:0.330005,  executed if:(op0 != 0) && (not inlined)
  calls:
    xQueueGenericCreate/6 call is unlikely and code size would grow
      loop depth: 0 freq:0.17 size: 5 time: 14callee size:15 stack: 0 predicate: (op0 != 0)
       op1 is compile time invariant
       op2 is compile time invariant

IPA function summary for xQueueTakeMutexRecursive/13 inlinable
  global time:     18.345502
  self size:       27
  global size:     27
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:8.000000, time:2.424704,  executed if:(op0 != 0B)
    size:3.000000, time:1.461148,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xQueueSemaphoreTake/19 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.29 size: 4 time: 13callee size:69 stack: 8 predicate: (op0 != 0B)
    xTaskGetCurrentTaskHandle/47 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)

IPA function summary for xQueueGiveMutexRecursive/12 inlinable
  global time:     14.424882
  self size:       25
  global size:     25
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:6.000000, time:1.711046,  executed if:(op0 != 0B)
    size:2.000000, time:1.229812,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xQueueGenericSend/15 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.05 size: 5 time: 14callee size:61 stack: 8 predicate: (op0 != 0B)
       op1 is compile time invariant
       op2 is compile time invariant
       op3 is compile time invariant
    xTaskGetCurrentTaskHandle/47 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)

IPA function summary for xQueueGetMutexHolderFromISR/11 inlinable
  global time:     7.358400
  self size:       14
  global size:     14
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.749999,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B)
    size:0.500000, time:0.179200,  executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.179200,  executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B)
    size:1.000000, time:1.399999,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:1.500001,  executed if:(op0 == 0B)
  calls:

IPA function summary for xQueueGetMutexHolder/10 inlinable
  global time:     17.967768
  self size:       16
  global size:     16
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:2.000000, time:1.473633,  executed if:(op0 != 0B) && (not inlined)
    size:3.000000, time:1.473633,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/45 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)
    vPortEnterCritical/42 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xQueueCreateMutex/9 inlinable
  global time:     26.287850
  self size:       10
  global size:     17
  min size:       34
  self stack:      0
  global stack:    0
    size:3.500000, time:2.802050
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    prvInitialiseMutex/8 inlined
      loop depth: 0 freq:1.00 size: 2 time: 11callee size: 6 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      xQueueGenericSend/15 --param max-inline-insns-auto limit reached
        loop depth: 0 freq:0.53 size: 5 time: 14callee size:61 stack: 8
         op1 is compile time invariant
         op2 is compile time invariant
         op3 is compile time invariant
    xQueueGenericCreate/6 call is unlikely and code size would grow
      loop depth: 0 freq:1.00 size: 5 time: 14callee size:15 stack: 0
       op0 is compile time invariant
       op1 is compile time invariant

IPA function summary for xQueueGenericCreate/6 inlinable
  global time:     10.489844
  self size:       28
  global size:     30
  min size:       5
  self stack:      0
  global stack:    0
  estimated growth:32
    size:5.000000, time:4.587495
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:6.000000, time:1.832486,  executed if:(op0 != 0),  nonconst if:(op0 changed || op1 changed) && (op0 != 0)
    size:4.500000, time:0.275274,  executed if:(op0 != 0)
    size:1.000000, time:0.165002,  executed if:(op0 != 0) && (not inlined)
    size:2.000000, time:0.088217,  executed if:(op0 != 0),  nonconst if:(op1 changed) && (op0 != 0)
    size:0.500000, time:0.011027,  executed if:(op1 != 0) && (op0 != 0)
    size:0.500000, time:0.011027,  executed if:(op1 == 0) && (op0 != 0)
  calls:
    prvInitialiseNewQueue/7 inlined
      loop depth: 0 freq:0.04 size: 6 time: 15callee size: 6 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      xQueueGenericReset/5 --param max-inline-insns-auto limit reached
        loop depth: 0 freq:0.04 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0)
         op1 is compile time invariant
    pvPortMalloc/46 function body not available
      loop depth: 0 freq:0.08 size: 3 time: 12 predicate: (op0 != 0)

IPA function summary for xQueueGenericReset/5 inlinable
  global time:     14.869690
  self size:       25
  global size:     49
  min size:       0
  self stack:      0
  global stack:    0
  estimated growth:18
    size:0.000000, time:0.000000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.350002,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined)
    size:2.500000, time:1.750008,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B)
    size:0.500000, time:0.175001,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.175001,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
    size:2.000000, time:0.700003,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B),  nonconst if:(op0[ref offset: 480] changed || op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
    size:5.000000, time:2.922505,  executed if:(op0 != 0B)
    size:1.000000, time:0.231005,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.500011,  executed if:(op0 == 0B)
    size:9.500000, time:1.097272,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B)
    size:2.000000, time:0.231005,  executed if:(op0[ref offset: 480] != 0) && (op0 != 0B),  nonconst if:(op1 changed) && (op0[ref offset: 480] != 0) && (op0 != 0B)
    size:7.500000, time:0.282848,  executed if:(op1 == 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
  calls:
    xQueueGenericReset.part.0/65 inlined
      loop depth: 0 freq:0.12 size: 4 time: 13callee size:18 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      vPortEnterCritical/42 function body not available
        loop depth: 0 freq:0.12 size: 1 time: 10 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)
      xTaskRemoveFromEventList/43 function body not available
        loop depth: 0 freq:0.03 size: 3 time: 12 predicate: (op1 == 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
      vListInitialise/44 function body not available
        loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
      vListInitialise/44 function body not available
        loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0[ref offset: 480] != 0) && (op0 != 0B)
      vPortExitCritical/45 function body not available
        loop depth: 0 freq:0.12 size: 1 time: 10 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B)

Symbol table:

vQueueUnregisterQueue.part.0/114 (vQueueUnregisterQueue.part.0) @06a4bb60
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Function vQueueUnregisterQueue.part.0/114 is inline copy in vQueueUnregisterQueue/40
  Availability: local
  Function flags: count:107374 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: vQueueUnregisterQueue/40 (inlined) (107374 (estimated locally),0.30 per call) 
  Calls: 
xQueueGenericReset.part.0/65 (xQueueGenericReset.part.0) @06a4b2a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Function xQueueGenericReset.part.0/65 is inline copy in xQueueGenericReset/5
  Availability: local
  Function flags: count:21218 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: xQueueGenericReset/5 (inlined) (21218 (estimated locally),0.12 per call) 
  Calls: vPortEnterCritical/42 (21218 (estimated locally),0.12 per call) xTaskRemoveFromEventList/43 (4691 (estimated locally),0.03 per call) vListInitialise/44 (7002 (estimated locally),0.04 per call) vListInitialise/44 (7002 (estimated locally),0.04 per call) vPortExitCritical/45 (21218 (estimated locally),0.12 per call) 
vTaskPlaceOnEventListRestricted/62 (vTaskPlaceOnEventListRestricted) @06bee620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vQueueWaitForMessageRestricted/41 (354334802 (estimated locally),0.33 per call) 
  Calls: 
vPortFree/61 (vPortFree) @06bcfee0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call) 
  Calls: 
vTaskPriorityDisinheritAfterTimeout/60 (vTaskPriorityDisinheritAfterTimeout) @06bcf380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) 
  Calls: 
xTaskPriorityInherit/59 (xTaskPriorityInherit) @06bcf2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) 
  Calls: 
pvTaskIncrementMutexHeldCount/58 (pvTaskIncrementMutexHeldCount) @06bcf1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueSemaphoreTake/19 (2848 (estimated locally),0.01 per call) 
  Calls: 
vPortValidateInterruptPriority/57 (vPortValidateInterruptPriority) @06ba3620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeekFromISR/22 (52886 (estimated locally),0.20 per call) xQueueReceiveFromISR/21 (192251 (estimated locally),0.54 per call) xQueueGiveFromISR/17 (72401 (estimated locally),0.24 per call) xQueueGenericSendFromISR/16 (141108 (estimated locally),0.39 per call) 
  Calls: 
vTaskMissedYield/56 (vTaskMissedYield) @06ba32a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: prvUnlockQueue/33 (316429830 (estimated locally),2.75 per call) prvUnlockQueue/33 (316429836 (estimated locally),2.75 per call) 
  Calls: 
memcpy/55 (memcpy) @06ba3000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: prvCopyDataFromQueue/32 (536870913 (estimated locally),0.50 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) 
  Calls: 
xTaskPriorityDisinherit/54 (xTaskPriorityDisinherit) @06b4d8c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: prvCopyDataToQueue/31 (93576600 (estimated locally),0.09 per call) 
  Calls: 
xTaskResumeAll/53 (xTaskResumeAll) @06b4de00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) 
  Calls: 
vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @06b4dd20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) 
  Calls: 
xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @06b4dc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) 
  Calls: 
vTaskSuspendAll/50 (vTaskSuspendAll) @06b4db60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) 
  Calls: 
vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @06b4da80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (497076 (estimated locally),1.39 per call) xQueueSemaphoreTake/19 (136739 (estimated locally),0.60 per call) xQueueReceive/18 (497076 (estimated locally),1.39 per call) xQueueGenericSend/15 (304339 (estimated locally),0.85 per call) 
  Calls: 
xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @06b4d9a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueuePeek/20 (192251 (estimated locally),0.54 per call) xQueueSemaphoreTake/19 (52886 (estimated locally),0.23 per call) xQueueReceive/18 (192251 (estimated locally),0.54 per call) xQueueGenericSend/15 (141108 (estimated locally),0.39 per call) 
  Calls: 
xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @06b4d460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueTakeMutexRecursive/13 (123389 (estimated locally),0.53 per call) xQueueGiveMutexRecursive/12 (123389 (estimated locally),0.53 per call) 
  Calls: 
pvPortMalloc/46 (pvPortMalloc) @06b3e000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueGenericCreate/6 (9655 (estimated locally),0.08 per call) 
  Calls: 
vPortExitCritical/45 (vPortExitCritical) @06b3ed20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (57225 (estimated locally),0.16 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (3186 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (16340 (estimated locally),0.07 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (57225 (estimated locally),0.16 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (26079 (estimated locally),0.07 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call) prvUnlockQueue/33 (114863529 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call) 
  Calls: 
vListInitialise/44 (vListInitialise) @06b3ec40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueGenericReset.part.0/65 (7002 (estimated locally),0.04 per call) xQueueGenericReset.part.0/65 (7002 (estimated locally),0.04 per call) 
  Calls: 
xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @06b3eb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xQueueReceiveFromISR/21 (7118 (estimated locally),0.02 per call) xQueuePeek/20 (19602 (estimated locally),0.05 per call) xQueueSemaphoreTake/19 (5392 (estimated locally),0.02 per call) xQueueReceive/18 (19602 (estimated locally),0.05 per call) xQueueGiveFromISR/17 (4062 (estimated locally),0.01 per call) xQueueGenericSendFromISR/16 (8831 (estimated locally),0.02 per call) xQueueGenericSend/15 (17949 (estimated locally),0.05 per call) xQueueGenericReset.part.0/65 (4691 (estimated locally),0.03 per call) prvUnlockQueue/33 (958878272 (estimated locally),8.35 per call) prvUnlockQueue/33 (958878293 (estimated locally),8.35 per call) 
  Calls: 
vPortEnterCritical/42 (vPortEnterCritical) @06b3ea80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1622915 (estimated locally),4.53 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (446442 (estimated locally),1.95 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1622915 (estimated locally),4.53 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (1002708 (estimated locally),2.80 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863534 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call) 
  Calls: 
vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @06b3e540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: prvUnlockQueue/33 (1073741824 (estimated locally),1.00 per call) vTaskPlaceOnEventListRestricted/62 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) 
vQueueUnregisterQueue/40 (vQueueUnregisterQueue) @06b3e2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xQueueRegistry/4 (read)xQueueRegistry/4 (write)xQueueRegistry/4 (write)
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call) 
  Calls: vQueueUnregisterQueue.part.0/114 (inlined) (107374 (estimated locally),0.30 per call) 
pcQueueGetName/39 (pcQueueGetName) @06b38e00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xQueueRegistry/4 (read)xQueueRegistry/4 (read)
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
vQueueAddToRegistry/38 (vQueueAddToRegistry) @06b38460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: xQueueRegistry/4 (read)xQueueRegistry/4 (addr)xQueueRegistry/4 (read)xQueueRegistry/4 (addr)
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @06b38d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
prvIsQueueFull/36 (prvIsQueueFull) @06b389a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function prvIsQueueFull/36 is inline copy in xQueueGenericSend/15
  Availability: local
  Function flags: count:896877 (estimated locally) body local optimize_size
  Called by: xQueueGenericSend/15 (inlined) (896877 (estimated locally),2.51 per call) 
  Calls: vPortExitCritical/45 (896877 (estimated locally),2.51 per call) vPortEnterCritical/42 (896877 (estimated locally),2.51 per call) 
xQueueIsQueueEmptyFromISR/35 (xQueueIsQueueEmptyFromISR) @06b38700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
prvIsQueueEmpty/34 (prvIsQueueEmpty) @06b38380
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) 
  Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) 
prvUnlockQueue/33 (prvUnlockQueue) @06b380e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:114863534 (estimated locally) body local optimize_size
  Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) 
  Calls: vPortExitCritical/45 (114863529 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429830 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878272 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863532 (estimated locally),1.00 per call) vPortExitCritical/45 (114863532 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429836 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878293 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863534 (estimated locally),1.00 per call) 
prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @06b2f8c0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: xQueuePeekFromISR/22 (17452 (estimated locally),0.06 per call) xQueueReceiveFromISR/21 (63443 (estimated locally),0.18 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) 
  Calls: memcpy/55 (536870913 (estimated locally),0.50 per call) 
prvCopyDataToQueue/31 (prvCopyDataToQueue) @06b2f380
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741823 (estimated locally) body local optimize_size
  Called by: xQueueGenericSendFromISR/16 (78710 (estimated locally),0.22 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) 
  Calls: memcpy/55 (268435456 (estimated locally),0.25 per call) memcpy/55 (268435456 (estimated locally),0.25 per call) xTaskPriorityDisinherit/54 (93576600 (estimated locally),0.09 per call) 
prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @06b2fe00
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function prvGetDisinheritPriorityAfterTimeout/30 is inline copy in xQueueSemaphoreTake/19
  Availability: local
  Function flags: count:2502 (estimated locally) body local optimize_size
  Called by: xQueueSemaphoreTake/19 (inlined) (2502 (estimated locally),0.01 per call) 
  Calls: 
ucQueueGetQueueType/29 (ucQueueGetQueueType) @06b2fa80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
vQueueSetQueueNumber/28 (vQueueSetQueueNumber) @06b2f7e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
uxQueueGetQueueNumber/27 (uxQueueGetQueueNumber) @06b2f540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
vQueueDelete/26 (vQueueDelete) @06b2f2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:230763 (estimated locally) body optimize_size
  Called by: 
  Calls: vPortFree/61 (123389 (estimated locally),0.53 per call) vQueueUnregisterQueue/40 (123389 (estimated locally),0.53 per call) 
uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @06b26d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @06b260e0
  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/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) 
uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @06b26c40
  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/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) 
xQueuePeekFromISR/22 (xQueuePeekFromISR) @06b268c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:269344 (estimated locally) body optimize_size
  Called by: 
  Calls: prvCopyDataFromQueue/32 (17452 (estimated locally),0.06 per call) vPortValidateInterruptPriority/57 (52886 (estimated locally),0.20 per call) 
xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @06b26460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskRemoveFromEventList/43 (7118 (estimated locally),0.02 per call) prvCopyDataFromQueue/32 (63443 (estimated locally),0.18 per call) vPortValidateInterruptPriority/57 (192251 (estimated locally),0.54 per call) 
xQueuePeek/20 (xQueuePeek) @06b26000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call) 
xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @06b12c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:228942 (estimated locally) body optimize_size
  Called by: xQueueTakeMutexRecursive/13 (65976 (estimated locally),0.29 per call) 
  Calls: vPortExitCritical/45 (2502 (estimated locally),0.01 per call) vTaskPriorityDisinheritAfterTimeout/60 (2502 (estimated locally),0.01 per call) prvGetDisinheritPriorityAfterTimeout/30 (inlined) (2502 (estimated locally),0.01 per call) vPortEnterCritical/42 (2502 (estimated locally),0.01 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (207180 (estimated locally),0.90 per call) prvUnlockQueue/33 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (68369 (estimated locally),0.30 per call) prvUnlockQueue/33 (68369 (estimated locally),0.30 per call) xTaskResumeAll/53 (138811 (estimated locally),0.61 per call) prvUnlockQueue/33 (138811 (estimated locally),0.61 per call) vTaskPlaceOnEventList/52 (138811 (estimated locally),0.61 per call) vPortExitCritical/45 (24195 (estimated locally),0.11 per call) xTaskPriorityInherit/59 (24195 (estimated locally),0.11 per call) vPortEnterCritical/42 (24195 (estimated locally),0.11 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskCheckForTimeOut/51 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vPortEnterCritical/42 (414360 (estimated locally),1.81 per call) vTaskSuspendAll/50 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vTaskInternalSetTimeOutState/49 (136739 (estimated locally),0.60 per call) vPortExitCritical/45 (3186 (estimated locally),0.01 per call) vPortExitCritical/45 (16340 (estimated locally),0.07 per call) xTaskRemoveFromEventList/43 (5392 (estimated locally),0.02 per call) pvTaskIncrementMutexHeldCount/58 (2848 (estimated locally),0.01 per call) vPortEnterCritical/42 (446442 (estimated locally),1.95 per call) xTaskGetSchedulerState/48 (52886 (estimated locally),0.23 per call) 
xQueueReceive/18 (xQueueReceive) @06b12540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call) 
xQueueGiveFromISR/17 (xQueueGiveFromISR) @06ab9d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:306783 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskRemoveFromEventList/43 (4062 (estimated locally),0.01 per call) vPortValidateInterruptPriority/57 (72401 (estimated locally),0.24 per call) 
xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @06ab9c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskRemoveFromEventList/43 (8831 (estimated locally),0.02 per call) prvCopyDataToQueue/31 (78710 (estimated locally),0.22 per call) vPortValidateInterruptPriority/57 (141108 (estimated locally),0.39 per call) 
xQueueGenericSend/15 (xQueueGenericSend) @06ab97e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: xQueueGiveMutexRecursive/12 (12216 (estimated locally),0.05 per call) prvInitialiseMutex/8 (574129754 (estimated locally),0.53 per call) 
  Calls: xTaskResumeAll/53 (25362 (estimated locally),0.07 per call) prvUnlockQueue/33 (25362 (estimated locally),0.07 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) vTaskPlaceOnEventList/52 (448439 (estimated locally),1.25 per call) prvIsQueueFull/36 (inlined) (896877 (estimated locally),2.51 per call) xTaskCheckForTimeOut/51 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vPortEnterCritical/42 (922239 (estimated locally),2.58 per call) vTaskSuspendAll/50 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vTaskInternalSetTimeOutState/49 (304339 (estimated locally),0.85 per call) vPortExitCritical/45 (26079 (estimated locally),0.07 per call) vPortExitCritical/45 (54391 (estimated locally),0.15 per call) xTaskRemoveFromEventList/43 (17949 (estimated locally),0.05 per call) prvCopyDataToQueue/31 (54391 (estimated locally),0.15 per call) vPortEnterCritical/42 (1002708 (estimated locally),2.80 per call) xTaskGetSchedulerState/48 (141108 (estimated locally),0.39 per call) 
xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @06ab90e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:128592 (estimated locally) body optimize_size
  Called by: 
  Calls: xQueueGenericCreate/6 (21218 (estimated locally),0.17 per call) 
xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @06ab29a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:230763 (estimated locally) body optimize_size
  Called by: 
  Calls: xQueueSemaphoreTake/19 (65976 (estimated locally),0.29 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call) 
xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @06ab20e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:230763 (estimated locally) body optimize_size
  Called by: 
  Calls: xQueueGenericSend/15 (12216 (estimated locally),0.05 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call) 
xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @06ab2c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:357913 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @06ab28c0
  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/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) 
xQueueCreateMutex/9 (xQueueCreateMutex) @06ab2540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: prvInitialiseMutex/8 (inlined) (1073741824 (estimated locally),1.00 per call) xQueueGenericCreate/6 (1073741824 (estimated locally),1.00 per call) 
prvInitialiseMutex/8 (prvInitialiseMutex) @06ab22a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function prvInitialiseMutex/8 is inline copy in xQueueCreateMutex/9
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: xQueueCreateMutex/9 (inlined) (1073741824 (estimated locally),1.00 per call) 
  Calls: xQueueGenericSend/15 (574129754 (estimated locally),0.53 per call) 
prvInitialiseNewQueue/7 (prvInitialiseNewQueue) @06ab2000
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function prvInitialiseNewQueue/7 is inline copy in xQueueGenericCreate/6
  Availability: local
  Function flags: count:5162 (estimated locally) body local optimize_size
  Called by: xQueueGenericCreate/6 (inlined) (5162 (estimated locally),0.04 per call) 
  Calls: xQueueGenericReset/5 (5162 (estimated locally),0.04 per call) 
xQueueGenericCreate/6 (xQueueGenericCreate) @06ac77e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:117029 (estimated locally) body optimize_size
  Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call) xQueueCreateCountingSemaphore/14 (21218 (estimated locally),0.17 per call) 
  Calls: prvInitialiseNewQueue/7 (inlined) (5162 (estimated locally),0.04 per call) pvPortMalloc/46 (9655 (estimated locally),0.08 per call) 
xQueueGenericReset/5 (xQueueGenericReset) @06ac7c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:183702 (estimated locally) body optimize_size
  Called by: prvInitialiseNewQueue/7 (5162 (estimated locally),0.04 per call) 
  Calls: xQueueGenericReset.part.0/65 (inlined) (21218 (estimated locally),0.12 per call) 
xQueueRegistry/4 (xQueueRegistry) @06ac2630
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: pcQueueGetName/39 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)vQueueAddToRegistry/38 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write)
  Availability: available
  Varpool flags:

;; Function prvIsQueueEmpty (prvIsQueueEmpty, funcdef_no=33, decl_uid=6454, cgraph_uid=34, symbol_order=34)

prvIsQueueEmpty (const struct Queue_t * pxQueue)
{
  BaseType_t xReturn;
  long unsigned int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _1 ={v} pxQueue_5(D)->uxMessagesWaiting;
  if (_1 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0

  <bb 4> [local count: 1073741824]:
  # xReturn_2 = PHI <1(2), 0(3)>
  # DEBUG xReturn => xReturn_2
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  return xReturn_2;

}



;; Function prvCopyDataToQueue (prvCopyDataToQueue, funcdef_no=30, decl_uid=6460, cgraph_uid=31, symbol_order=31)

prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition)
{
  UBaseType_t uxMessagesWaiting;
  BaseType_t xReturn;
  long unsigned int _1;
  int8_t * _2;
  struct tskTaskControlBlock * _3;
  int8_t * _4;
  int8_t * _5;
  long unsigned int _6;
  int8_t * _7;
  int8_t * _8;
  int8_t * _9;
  int8_t * _10;
  int8_t * _11;
  long unsigned int _12;
  sizetype _13;
  int8_t * _14;
  int8_t * _15;
  int8_t * _16;
  int8_t * _17;
  long unsigned int _18;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_25 ={v} pxQueue_24(D)->uxMessagesWaiting;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_25
  # DEBUG BEGIN_STMT
  _1 = pxQueue_24(D)->uxItemSize;
  if (_1 == 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 3> [local count: 536870911]:
  # DEBUG BEGIN_STMT
  _2 = pxQueue_24(D)->pcHead;
  if (_2 == 0B)
    goto <bb 4>; [17.43%]
  else
    goto <bb 13>; [82.57%]

  <bb 4> [local count: 93576600]:
  # DEBUG BEGIN_STMT
  _3 = pxQueue_24(D)->u.xSemaphore.xMutexHolder;
  xReturn_36 = xTaskPriorityDisinherit (_3);
  # DEBUG xReturn => xReturn_36
  # DEBUG BEGIN_STMT
  pxQueue_24(D)->u.xSemaphore.xMutexHolder = 0B;
  goto <bb 13>; [100.00%]

  <bb 5> [local count: 536870911]:
  # DEBUG BEGIN_STMT
  if (xPosition_26(D) == 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 6> [local count: 268435456]:
  # DEBUG BEGIN_STMT
  _4 = pxQueue_24(D)->pcWriteTo;
  memcpy (_4, pvItemToQueue_27(D), _1);
  # DEBUG BEGIN_STMT
  _5 = pxQueue_24(D)->pcWriteTo;
  _6 = pxQueue_24(D)->uxItemSize;
  _7 = _5 + _6;
  pxQueue_24(D)->pcWriteTo = _7;
  # DEBUG BEGIN_STMT
  _8 = pxQueue_24(D)->u.xQueue.pcTail;
  if (_7 >= _8)
    goto <bb 7>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 7> [local count: 134217728]:
  # DEBUG BEGIN_STMT
  _9 = pxQueue_24(D)->pcHead;
  pxQueue_24(D)->pcWriteTo = _9;
  goto <bb 13>; [100.00%]

  <bb 8> [local count: 268435456]:
  # DEBUG BEGIN_STMT
  _10 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  memcpy (_10, pvItemToQueue_27(D), _1);
  # DEBUG BEGIN_STMT
  _11 = pxQueue_24(D)->u.xQueue.pcReadFrom;
  _12 = pxQueue_24(D)->uxItemSize;
  _13 = -_12;
  _14 = _11 + _13;
  pxQueue_24(D)->u.xQueue.pcReadFrom = _14;
  # DEBUG BEGIN_STMT
  _15 = pxQueue_24(D)->pcHead;
  if (_14 < _15)
    goto <bb 9>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 9> [local count: 134217728]:
  # DEBUG BEGIN_STMT
  _16 = pxQueue_24(D)->u.xQueue.pcTail;
  _17 = _16 + _13;
  pxQueue_24(D)->u.xQueue.pcReadFrom = _17;

  <bb 10> [local count: 268435456]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xPosition_26(D) == 2)
    goto <bb 11>; [34.00%]
  else
    goto <bb 13>; [66.00%]

  <bb 11> [local count: 91268055]:
  # DEBUG BEGIN_STMT
  if (uxMessagesWaiting_25 != 0)
    goto <bb 12>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 12> [local count: 45634027]:
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_31 = uxMessagesWaiting_25 + 4294967295;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_31

  <bb 13> [local count: 1073741824]:
  # xReturn_19 = PHI <xReturn_36(4), 0(7), 0(10), 0(12), 0(3), 0(6), 0(11)>
  # uxMessagesWaiting_20 = PHI <uxMessagesWaiting_25(4), uxMessagesWaiting_25(7), uxMessagesWaiting_25(10), uxMessagesWaiting_31(12), uxMessagesWaiting_25(3), uxMessagesWaiting_25(6), uxMessagesWaiting_25(11)>
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_20
  # DEBUG xReturn => xReturn_19
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _18 = uxMessagesWaiting_20 + 1;
  pxQueue_24(D)->uxMessagesWaiting ={v} _18;
  # DEBUG BEGIN_STMT
  return xReturn_19;

}



;; Function prvCopyDataFromQueue (prvCopyDataFromQueue, funcdef_no=31, decl_uid=6463, cgraph_uid=32, symbol_order=32)

prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer)
{
  long unsigned int _1;
  int8_t * _2;
  int8_t * _3;
  int8_t * _4;
  int8_t * _5;
  int8_t * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = pxQueue_10(D)->uxItemSize;
  if (_1 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _2 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  _3 = _2 + _1;
  pxQueue_10(D)->u.xQueue.pcReadFrom = _3;
  # DEBUG BEGIN_STMT
  _4 = pxQueue_10(D)->u.xQueue.pcTail;
  if (_3 >= _4)
    goto <bb 4>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 4> [local count: 268435456]:
  # DEBUG BEGIN_STMT
  _5 = pxQueue_10(D)->pcHead;
  pxQueue_10(D)->u.xQueue.pcReadFrom = _5;

  <bb 5> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = pxQueue_10(D)->u.xQueue.pcReadFrom;
  memcpy (pvBuffer_13(D), _6, _1);

  <bb 6> [local count: 1073741824]:
  return;

}



;; Function prvUnlockQueue (prvUnlockQueue, funcdef_no=32, decl_uid=6452, cgraph_uid=33, symbol_order=33)

prvUnlockQueue (struct Queue_t * const pxQueue)
{
  int8_t cRxLock;
  int8_t cTxLock;
  long unsigned int _1;
  struct List_t * _2;
  long int _3;
  unsigned char cTxLock.6_4;
  unsigned char _5;
  long unsigned int _6;
  struct List_t * _7;
  long int _8;
  unsigned char cRxLock.7_9;
  unsigned char _10;

  <bb 2> [local count: 114863534]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  cTxLock_20 ={v} pxQueue_19(D)->cTxLock;
  # DEBUG cTxLock => cTxLock_20
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems;
  if (_1 != 0)
    goto <bb 4>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 4> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  _2 = &pxQueue_19(D)->xTasksWaitingToReceive;
  _3 = xTaskRemoveFromEventList (_2);
  if (_3 != 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 6>; [67.00%]

  <bb 5> [local count: 316429836]:
  # DEBUG BEGIN_STMT
  vTaskMissedYield ();

  <bb 6> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cTxLock.6_4 = (unsigned char) cTxLock_11;
  _5 = cTxLock.6_4 + 255;
  cTxLock_23 = (int8_t) _5;
  # DEBUG cTxLock => cTxLock_23

  <bb 7> [local count: 1073741824]:
  # cTxLock_11 = PHI <cTxLock_20(2), cTxLock_23(6)>
  # DEBUG cTxLock => cTxLock_11
  # DEBUG BEGIN_STMT
  if (cTxLock_11 > 0)
    goto <bb 3>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  pxQueue_19(D)->cTxLock ={v} -1;
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  cRxLock_27 ={v} pxQueue_19(D)->cRxLock;
  # DEBUG cRxLock => cRxLock_27
  # DEBUG BEGIN_STMT
  goto <bb 13>; [100.00%]

  <bb 9> [local count: 1014686003]:
  # DEBUG BEGIN_STMT
  _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems;
  if (_6 != 0)
    goto <bb 10>; [94.50%]
  else
    goto <bb 14>; [5.50%]

  <bb 10> [local count: 958878272]:
  # DEBUG BEGIN_STMT
  _7 = &pxQueue_19(D)->xTasksWaitingToSend;
  _8 = xTaskRemoveFromEventList (_7);
  if (_8 != 0)
    goto <bb 11>; [33.00%]
  else
    goto <bb 12>; [67.00%]

  <bb 11> [local count: 316429830]:
  # DEBUG BEGIN_STMT
  vTaskMissedYield ();

  <bb 12> [local count: 958878272]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cRxLock.7_9 = (unsigned char) cRxLock_12;
  _10 = cRxLock.7_9 + 255;
  cRxLock_30 = (int8_t) _10;
  # DEBUG cRxLock => cRxLock_30

  <bb 13> [local count: 1073741803]:
  # cRxLock_12 = PHI <cRxLock_27(8), cRxLock_30(12)>
  # DEBUG cRxLock => cRxLock_12
  # DEBUG BEGIN_STMT
  if (cRxLock_12 > 0)
    goto <bb 9>; [94.50%]
  else
    goto <bb 14>; [5.50%]

  <bb 14> [local count: 114863529]:
  # DEBUG BEGIN_STMT
  pxQueue_19(D)->cRxLock ={v} -1;
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  return;

}



;; Function xQueueGenericReset (xQueueGenericReset, funcdef_no=4, decl_uid=6412, cgraph_uid=5, symbol_order=5)


Symbols to be put in SSA form
{ D.7281 D.7461 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 20
Number of blocks to update: 19 ( 95%)


Merging blocks 4 and 10
Removing basic block 7
Merging blocks 9 and 11
Removing basic block 13
Merging blocks 19 and 12
;; 3 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
;;
;; Loop 2
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 1
;;  header 14, latch 14
;;  depth 1, outer 0
;;  nodes: 14
;; 2 succs { 3 5 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 6 13 }
;; 6 succs { 7 13 }
;; 7 succs { 8 11 }
;; 8 succs { 9 12 }
;; 9 succs { 10 12 }
;; 10 succs { 12 }
;; 11 succs { 12 }
;; 12 succs { 1 }
;; 13 succs { 14 }
;; 14 succs { 14 }
xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue)
{
  BaseType_t D.7461;
  BaseType_t D.7333;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  long unsigned int _1;
  __complex__ long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  int8_t * _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  int8_t * _18;
  long unsigned int _19;
  long unsigned int _20;
  int8_t * _21;
  long unsigned int _22;
  struct List_t * _23;
  long int _24;
  struct List_t * _25;
  struct List_t * _26;

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

  <bb 3> [local count: 55111]:
  # 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_9 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_9

  <bb 4> [local count: 551107865]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 128592]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  if (_1 != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 6> [local count: 64296]:
  _3 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  _2 = .MUL_OVERFLOW (_3, _1);
  _4 = IMAGPART_EXPR <_2>;
  if (_4 == 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 13>; [67.00%]

  <bb 7> [local count: 21218]:
  # DEBUG xQueue => xQueue_5(D)
  # DEBUG xNewQueue => xNewQueue_7(D)
  # DEBUG INLINE_ENTRY xQueueGenericReset
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _14 = MEM[(struct Queue_t *)xQueue_5(D)].pcHead;
  _15 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength;
  _16 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize;
  _17 = _15 * _16;
  _18 = _14 + _17;
  MEM[(struct Queue_t *)xQueue_5(D)].u.xQueue.pcTail = _18;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_5(D)].uxMessagesWaiting ={v} 0;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_5(D)].pcWriteTo = _14;
  # DEBUG BEGIN_STMT
  _19 = _15 + 4294967295;
  _20 = _16 * _19;
  _21 = _14 + _20;
  MEM[(struct Queue_t *)xQueue_5(D)].u.xQueue.pcReadFrom = _21;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_5(D)].cRxLock ={v} -1;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_5(D)].cTxLock ={v} -1;
  # DEBUG BEGIN_STMT
  if (xNewQueue_7(D) == 0)
    goto <bb 8>; [67.00%]
  else
    goto <bb 11>; [33.00%]

  <bb 8> [local count: 14216]:
  # DEBUG BEGIN_STMT
  _22 ={v} MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend.uxNumberOfItems;
  if (_22 != 0)
    goto <bb 9>; [33.00%]
  else
    goto <bb 12>; [67.00%]

  <bb 9> [local count: 4691]:
  # DEBUG BEGIN_STMT
  _23 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend;
  _24 = xTaskRemoveFromEventList (_23);
  if (_24 != 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 12>; [50.00%]

  <bb 10> [local count: 2346]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT
  goto <bb 12>; [100.00%]

  <bb 11> [local count: 7002]:
  # DEBUG BEGIN_STMT
  _25 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToSend;
  vListInitialise (_25);
  # DEBUG BEGIN_STMT
  _26 = &MEM[(struct Queue_t *)xQueue_5(D)].xTasksWaitingToReceive;
  vListInitialise (_26);

  <bb 12> [local count: 21218]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG xReturn => 1
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _42 = 1;
  # DEBUG xQueue => NULL
  # DEBUG xNewQueue => NULL
  # DEBUG xReturn => NULL
  # DEBUG pxQueue => NULL
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulNewBASEPRI => NULL
  _13 = _42;
  return _13;

  <bb 13> [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_10 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_10

  <bb 14> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

}



;; Function xQueueGenericCreate (xQueueGenericCreate, funcdef_no=5, decl_uid=6392, cgraph_uid=6, symbol_order=6)


Symbols to be put in SSA form
{ D.7283 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 16
Number of blocks to update: 15 ( 94%)


Merging blocks 6 and 12
Merging blocks 8 and 10
Removing basic block 11
;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12
;;
;; Loop 1
;;  header 11, latch 11
;;  depth 1, outer 0
;;  nodes: 11
;; 2 succs { 3 10 }
;; 3 succs { 4 10 }
;; 4 succs { 5 10 }
;; 5 succs { 6 12 }
;; 6 succs { 7 8 }
;; 7 succs { 9 }
;; 8 succs { 9 }
;; 9 succs { 12 }
;; 10 succs { 11 }
;; 11 succs { 11 }
;; 12 succs { 1 }
xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType)
{
  uint32_t ulNewBASEPRI;
  uint8_t * pucQueueStorage;
  struct Queue_t * pxNewQueue;
  __complex__ long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  unsigned int _4;

  <bb 2> [local count: 117029]:
  # DEBUG BEGIN_STMT
  # DEBUG pxNewQueue => 0B
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (uxQueueLength_6(D) != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 3> [local count: 58514]:
  _1 = .MUL_OVERFLOW (uxItemSize_7(D), uxQueueLength_6(D));
  _2 = IMAGPART_EXPR <_1>;
  if (_2 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 4> [local count: 29257]:
  _3 = uxQueueLength_6(D) * uxItemSize_7(D);
  if (_3 <= 4294967215)
    goto <bb 5>; [33.00%]
  else
    goto <bb 10>; [67.00%]

  <bb 5> [local count: 9655]:
  # DEBUG BEGIN_STMT
  # DEBUG xQueueSizeInBytes => _3
  # DEBUG BEGIN_STMT
  _4 = _3 + 80;
  pxNewQueue_10 = pvPortMalloc (_4);
  # DEBUG pxNewQueue => pxNewQueue_10
  # DEBUG BEGIN_STMT
  if (pxNewQueue_10 != 0B)
    goto <bb 6>; [53.47%]
  else
    goto <bb 12>; [46.53%]

  <bb 6> [local count: 5162]:
  # DEBUG BEGIN_STMT
  # DEBUG pucQueueStorage => pxNewQueue_10
  # DEBUG BEGIN_STMT
  pucQueueStorage_11 = pxNewQueue_10 + 80;
  # DEBUG pucQueueStorage => pucQueueStorage_11
  # DEBUG BEGIN_STMT
  # DEBUG uxQueueLength => uxQueueLength_6(D)
  # DEBUG uxItemSize => uxItemSize_7(D)
  # DEBUG pucQueueStorage => pucQueueStorage_11
  # DEBUG ucQueueType => ucQueueType_12(D)
  # DEBUG pxNewQueue => pxNewQueue_10
  # DEBUG INLINE_ENTRY prvInitialiseNewQueue
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (uxItemSize_7(D) == 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 7> [local count: 2581]:
  # DEBUG BEGIN_STMT
  pxNewQueue_10->pcHead = pxNewQueue_10;
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 2581]:
  # DEBUG BEGIN_STMT
  pxNewQueue_10->pcHead = pucQueueStorage_11;

  <bb 9> [local count: 5162]:
  # DEBUG BEGIN_STMT
  pxNewQueue_10->uxLength = uxQueueLength_6(D);
  # DEBUG BEGIN_STMT
  pxNewQueue_10->uxItemSize = uxItemSize_7(D);
  # DEBUG BEGIN_STMT
  xQueueGenericReset (pxNewQueue_10, 1);
  # DEBUG BEGIN_STMT
  pxNewQueue_10->ucQueueType = ucQueueType_12(D);
  # DEBUG BEGIN_STMT
  goto <bb 12>; [100.00%]

  <bb 10> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # 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 11> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 11>; [100.00%]

  <bb 12> [local count: 9655]:
  # DEBUG uxQueueLength => NULL
  # DEBUG uxItemSize => NULL
  # DEBUG pucQueueStorage => NULL
  # DEBUG ucQueueType => NULL
  # DEBUG pxNewQueue => NULL
  # DEBUG pxNewQueue => pxNewQueue_10
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return pxNewQueue_10;

}



;; Function xQueueGetMutexHolder (xQueueGetMutexHolder, funcdef_no=9, decl_uid=6374, cgraph_uid=10, symbol_order=10)

xQueueGetMutexHolder (struct QueueDefinition * xSemaphore)
{
  uint32_t ulNewBASEPRI;
  struct tskTaskControlBlock * pxReturn;
  int8_t * _1;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxSemaphore => xSemaphore_3(D)
  # DEBUG BEGIN_STMT
  if (xSemaphore_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 Queue_t *)xSemaphore_3(D)].pcHead;
  if (_1 == 0B)
    goto <bb 6>; [51.20%]
  else
    goto <bb 7>; [48.80%]

  <bb 6> [local count: 63175]:
  # DEBUG BEGIN_STMT
  pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  # DEBUG pxReturn => pxReturn_6

  <bb 7> [local count: 123389]:
  # pxReturn_2 = PHI <pxReturn_6(6), 0B(5)>
  # DEBUG pxReturn => pxReturn_2
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  return pxReturn_2;

}



;; Function xQueueGetMutexHolderFromISR (xQueueGetMutexHolderFromISR, funcdef_no=10, decl_uid=6376, cgraph_uid=11, symbol_order=11)

xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore)
{
  uint32_t ulNewBASEPRI;
  struct tskTaskControlBlock * pxReturn;
  int8_t * _1;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xSemaphore_3(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_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 8> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead;
  if (_1 == 0B)
    goto <bb 6>; [51.20%]
  else
    goto <bb 7>; [48.80%]

  <bb 6> [local count: 128276]:
  # DEBUG BEGIN_STMT
  pxReturn_5 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder;
  # DEBUG pxReturn => pxReturn_5

  <bb 7> [local count: 250539]:
  # pxReturn_2 = PHI <pxReturn_5(6), 0B(5)>
  # DEBUG pxReturn => pxReturn_2
  # DEBUG BEGIN_STMT
  return pxReturn_2;

}



;; Function xQueueCreateCountingSemaphore (xQueueCreateCountingSemaphore, funcdef_no=13, decl_uid=6365, cgraph_uid=14, symbol_order=14)

xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount)
{
  uint32_t ulNewBASEPRI;
  struct QueueDefinition * xHandle;

  <bb 2> [local count: 128592]:
  # DEBUG BEGIN_STMT
  # DEBUG xHandle => 0B
  # DEBUG BEGIN_STMT
  if (uxMaxCount_2(D) != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 3> [local count: 64296]:
  if (uxMaxCount_2(D) >= uxInitialCount_3(D))
    goto <bb 4>; [33.00%]
  else
    goto <bb 6>; [67.00%]

  <bb 4> [local count: 21218]:
  # DEBUG BEGIN_STMT
  xHandle_6 = xQueueGenericCreate (uxMaxCount_2(D), 0, 2);
  # DEBUG xHandle => xHandle_6
  # DEBUG BEGIN_STMT
  if (xHandle_6 != 0B)
    goto <bb 5>; [70.00%]
  else
    goto <bb 8>; [30.00%]

  <bb 5> [local count: 14852]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xHandle_6].uxMessagesWaiting ={v} uxInitialCount_3(D);
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 6> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # 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 7> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

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

  <bb 8> [local count: 21218]:
  # DEBUG xHandle => xHandle_6
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return xHandle_6;

}



;; Function xQueueGenericSend (xQueueGenericSend, funcdef_no=14, decl_uid=6306, cgraph_uid=15, symbol_order=15)


Symbols to be put in SSA form
{ D.7287 D.7489 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 50
Number of blocks to update: 49 ( 98%)


Merging blocks 4 and 42
Merging blocks 8 and 45
Merging blocks 12 and 44
Merging blocks 17 and 43
Removing basic block 36
Merging blocks 49 and 46
;; 6 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
;;
;; Loop 5
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 1
;;  header 19, latch 18
;;  depth 1, outer 0
;;  nodes: 19 18 40 41 39 38 36 37 35 33 34 31 32 29 30 27 20
;;
;; Loop 2
;;  header 17, latch 17
;;  depth 1, outer 0
;;  nodes: 17
;;
;; Loop 3
;;  header 12, latch 12
;;  depth 1, outer 0
;;  nodes: 12
;;
;; Loop 4
;;  header 8, latch 8
;;  depth 1, outer 0
;;  nodes: 8
;; 2 succs { 3 5 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 9 6 }
;; 6 succs { 9 7 }
;; 7 succs { 8 }
;; 8 succs { 8 }
;; 9 succs { 13 10 }
;; 10 succs { 13 11 }
;; 11 succs { 12 }
;; 12 succs { 12 }
;; 13 succs { 14 15 }
;; 14 succs { 19 }
;; 15 succs { 14 16 }
;; 16 succs { 17 }
;; 17 succs { 17 }
;; 18 succs { 19 }
;; 19 succs { 21 20 }
;; 20 succs { 21 27 }
;; 21 succs { 22 24 }
;; 22 succs { 23 26 }
;; 23 succs { 26 }
;; 24 succs { 25 26 }
;; 25 succs { 26 }
;; 26 succs { 43 }
;; 27 succs { 28 29 }
;; 28 succs { 43 }
;; 29 succs { 30 31 }
;; 30 succs { 31 }
;; 31 succs { 32 33 }
;; 32 succs { 33 }
;; 33 succs { 34 35 }
;; 34 succs { 35 }
;; 35 succs { 36 42 }
;; 36 succs { 38 37 }
;; 37 succs { 38 }
;; 38 succs { 39 41 }
;; 39 succs { 40 18 }
;; 40 succs { 18 }
;; 41 succs { 18 }
;; 42 succs { 43 }
;; 43 succs { 1 }
xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition)
{
  BaseType_t xReturn;
  BaseType_t D.7489;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  struct TimeOut_t xTimeOut;
  BaseType_t xYieldRequired;
  BaseType_t xEntryTimeSet;
  long unsigned int _1;
  long unsigned int _2;
  long int _3;
  long unsigned int xTicksToWait.3_4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  struct List_t * _8;
  long int _9;
  long unsigned int xTicksToWait.4_10;
  signed char _11;
  signed char _12;
  long int _13;
  long int _14;
  struct List_t * _15;
  long unsigned int xTicksToWait.5_16;
  long int _17;
  BaseType_t _21;
  long unsigned int _75;
  long unsigned int _76;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_29(D)
  # DEBUG BEGIN_STMT
  if (xQueue_29(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_67 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_67

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvItemToQueue_30(D) != 0B)
    goto <bb 9>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 6> [local count: 75162]:
  _1 = MEM[(struct Queue_t *)xQueue_29(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 37581]:
  # 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_68 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_68

  <bb 8> [local count: 375809639]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 212958]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xCopyPosition_32(D) != 2)
    goto <bb 13>; [48.88%]
  else
    goto <bb 10>; [51.12%]

  <bb 10> [local count: 108864]:
  _2 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  if (_2 == 1)
    goto <bb 13>; [34.00%]
  else
    goto <bb 11>; [66.00%]

  <bb 11> [local count: 71850]:
  # 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_69 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_69

  <bb 12> [local count: 718505940]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 12>; [100.00%]

  <bb 13> [local count: 141108]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = xTaskGetSchedulerState ();
  if (_3 != 0)
    goto <bb 14>; [50.00%]
  else
    goto <bb 15>; [50.00%]

  <bb 14> [local count: 105831]:
  # xEntryTimeSet_36 = PHI <0(13), 0(15)>
  goto <bb 19>; [100.00%]

  <bb 15> [local count: 70554]:
  xTicksToWait.3_4 = xTicksToWait;
  if (xTicksToWait.3_4 == 0)
    goto <bb 14>; [50.00%]
  else
    goto <bb 16>; [50.00%]

  <bb 16> [local count: 35277]:
  # 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_70 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_70

  <bb 17> [local count: 352770504]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 17>; [100.00%]

  <bb 18> [local count: 896877]:
  # xEntryTimeSet_18 = PHI <xEntryTimeSet_20(40), xEntryTimeSet_20(41), xEntryTimeSet_20(39)>

  <bb 19> [local count: 1002708]:
  # xEntryTimeSet_19 = PHI <xEntryTimeSet_36(14), xEntryTimeSet_18(18)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_19
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _5 ={v} MEM[(struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  _6 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength;
  if (_5 < _6)
    goto <bb 21>; [2.75%]
  else
    goto <bb 20>; [97.25%]

  <bb 20> [local count: 975134]:
  if (xCopyPosition_32(D) == 2)
    goto <bb 21>; [2.75%]
  else
    goto <bb 27>; [97.25%]

  <bb 21> [local count: 54391]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xYieldRequired_57 = prvCopyDataToQueue (xQueue_29(D), pvItemToQueue_30(D), xCopyPosition_32(D));
  # DEBUG xYieldRequired => xYieldRequired_57
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive.uxNumberOfItems;
  if (_7 != 0)
    goto <bb 22>; [33.00%]
  else
    goto <bb 24>; [67.00%]

  <bb 22> [local count: 17949]:
  # DEBUG BEGIN_STMT
  _8 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive;
  _9 = xTaskRemoveFromEventList (_8);
  if (_9 != 0)
    goto <bb 23>; [50.00%]
  else
    goto <bb 26>; [50.00%]

  <bb 23> [local count: 8974]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT
  goto <bb 26>; [100.00%]

  <bb 24> [local count: 36442]:
  # DEBUG BEGIN_STMT
  if (xYieldRequired_57 != 0)
    goto <bb 25>; [50.00%]
  else
    goto <bb 26>; [50.00%]

  <bb 25> [local count: 18221]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT

  <bb 26> [local count: 54391]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  goto <bb 43>; [100.00%]

  <bb 27> [local count: 948318]:
  # DEBUG BEGIN_STMT
  xTicksToWait.4_10 = xTicksToWait;
  if (xTicksToWait.4_10 == 0)
    goto <bb 28>; [2.75%]
  else
    goto <bb 29>; [97.25%]

  <bb 28> [local count: 26079]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 43>; [100.00%]

  <bb 29> [local count: 922239]:
  # DEBUG BEGIN_STMT
  if (xEntryTimeSet_19 == 0)
    goto <bb 30>; [33.00%]
  else
    goto <bb 31>; [67.00%]

  <bb 30> [local count: 304339]:
  # DEBUG BEGIN_STMT
  vTaskInternalSetTimeOutState (&xTimeOut);
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 1

  <bb 31> [local count: 922239]:
  # xEntryTimeSet_20 = PHI <xEntryTimeSet_19(29), 1(30)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_20
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _11 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cRxLock;
  if (_11 == -1)
    goto <bb 32>; [34.00%]
  else
    goto <bb 33>; [66.00%]

  <bb 32> [local count: 313561]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_29(D)].cRxLock ={v} 0;

  <bb 33> [local count: 922239]:
  # DEBUG BEGIN_STMT
  _12 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cTxLock;
  if (_12 == -1)
    goto <bb 34>; [34.00%]
  else
    goto <bb 35>; [66.00%]

  <bb 34> [local count: 313561]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_29(D)].cTxLock ={v} 0;

  <bb 35> [local count: 922239]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  if (_13 == 0)
    goto <bb 36>; [97.25%]
  else
    goto <bb 42>; [2.75%]

  <bb 36> [local count: 896877]:
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_29(D)
  # DEBUG INLINE_ENTRY prvIsQueueFull
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _75 ={v} MEM[(const struct Queue_t *)xQueue_29(D)].uxMessagesWaiting;
  _76 = MEM[(const struct Queue_t *)xQueue_29(D)].uxLength;
  if (_75 == _76)
    goto <bb 38>; [34.00%]
  else
    goto <bb 37>; [66.00%]

  <bb 37> [local count: 591939]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0

  <bb 38> [local count: 896877]:
  # xReturn_77 = PHI <1(36), 0(37)>
  # DEBUG xReturn => xReturn_77
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _80 = xReturn_77;
  # DEBUG pxQueue => NULL
  # DEBUG xReturn => NULL
  _14 = _80;
  if (_14 != 0)
    goto <bb 39>; [50.00%]
  else
    goto <bb 41>; [50.00%]

  <bb 39> [local count: 448439]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _15 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToSend;
  xTicksToWait.5_16 = xTicksToWait;
  vTaskPlaceOnEventList (_15, xTicksToWait.5_16);
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_29(D));
  # DEBUG BEGIN_STMT
  _17 = xTaskResumeAll ();
  if (_17 == 0)
    goto <bb 40>; [50.00%]
  else
    goto <bb 18>; [50.00%]

  <bb 40> [local count: 224219]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  goto <bb 18>; [100.00%]

  <bb 41> [local count: 448439]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_29(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  goto <bb 18>; [100.00%]

  <bb 42> [local count: 25362]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_29(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 43> [local count: 105831]:
  # _21 = PHI <1(26), 0(28), 0(42)>
  xTimeOut ={v} {CLOBBER};
  return _21;

}



;; Function xQueueCreateMutex (xQueueCreateMutex, funcdef_no=8, decl_uid=6359, cgraph_uid=9, symbol_order=9)


Symbols to be put in SSA form
{ D.7289 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 7
Number of blocks to update: 6 ( 86%)


Merging blocks 2 and 4
Merging blocks 6 and 3
;; 1 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4
;; 2 succs { 3 4 }
;; 3 succs { 4 }
;; 4 succs { 1 }
xQueueCreateMutex (const uint8_t ucQueueType)
{
  struct QueueDefinition * xNewQueue;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG uxMutexLength => 1
  # DEBUG uxMutexSize => 0
  # DEBUG BEGIN_STMT
  xNewQueue_4 = xQueueGenericCreate (1, 0, ucQueueType_2(D));
  # DEBUG xNewQueue => xNewQueue_4
  # DEBUG BEGIN_STMT
  # DEBUG pxNewQueue => xNewQueue_4
  # DEBUG INLINE_ENTRY prvInitialiseMutex
  # DEBUG BEGIN_STMT
  if (xNewQueue_4 != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xNewQueue_4].u.xSemaphore.xMutexHolder = 0B;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xNewQueue_4].pcHead = 0B;
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xNewQueue_4].u.xSemaphore.uxRecursiveCallCount = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xQueueGenericSend (xNewQueue_4, 0B, 0, 0);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG pxNewQueue => NULL
  # DEBUG BEGIN_STMT
  return xNewQueue_4;

}



;; Function xQueueGiveMutexRecursive (xQueueGiveMutexRecursive, funcdef_no=11, decl_uid=6381, cgraph_uid=12, symbol_order=12)

xQueueGiveMutexRecursive (struct QueueDefinition * xMutex)
{
  uint32_t ulNewBASEPRI;
  BaseType_t xReturn;
  struct tskTaskControlBlock * _1;
  struct tskTaskControlBlock * _2;
  long unsigned int _3;
  long unsigned int _4;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxMutex => xMutex_7(D)
  # DEBUG BEGIN_STMT
  if (xMutex_7(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_12 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_12

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

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

  <bb 5> [local count: 123389]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.xMutexHolder;
  _2 = xTaskGetCurrentTaskHandle ();
  if (_1 == _2)
    goto <bb 6>; [30.00%]
  else
    goto <bb 9>; [70.00%]

  <bb 6> [local count: 37017]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount;
  _4 = _3 + 4294967295;
  MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  # DEBUG BEGIN_STMT
  if (_4 == 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 9>; [67.00%]

  <bb 7> [local count: 12216]:
  # DEBUG BEGIN_STMT
  xQueueGenericSend (xMutex_7(D), 0B, 0, 0);

  <bb 9> [local count: 123389]:
  # xReturn_5 = PHI <1(7), 0(5), 1(6)>
  # DEBUG xReturn => xReturn_5
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return xReturn_5;

}



;; Function xQueueGenericSendFromISR (xQueueGenericSendFromISR, funcdef_no=15, decl_uid=6328, cgraph_uid=16, symbol_order=16)

xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulOriginalBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const UBaseType_t uxPreviousMessagesWaiting;
  const int8_t cTxLock;
  BaseType_t xReturn;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  struct List_t * _6;
  long int _7;
  unsigned char cTxLock.10_8;
  unsigned char _9;
  signed char _10;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_13(D)
  # DEBUG BEGIN_STMT
  if (xQueue_13(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_25 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_25

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

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvItemToQueue_14(D) != 0B)
    goto <bb 9>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 6> [local count: 75162]:
  _1 = MEM[(struct Queue_t *)xQueue_13(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 37581]:
  # 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_26 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_26

  <bb 8> [local count: 375809639]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 29> [local count: 375809639]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 212958]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xCopyPosition_16(D) != 2)
    goto <bb 13>; [48.88%]
  else
    goto <bb 10>; [51.12%]

  <bb 10> [local count: 108864]:
  _2 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  if (_2 == 1)
    goto <bb 13>; [34.00%]
  else
    goto <bb 11>; [66.00%]

  <bb 11> [local count: 71850]:
  # 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_27 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_27

  <bb 12> [local count: 718505940]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 28> [local count: 718505940]:
  goto <bb 12>; [100.00%]

  <bb 13> [local count: 141108]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortValidateInterruptPriority ();
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mrs %0, basepri											
	mov %1, %2												
	msr basepri, %1											
	isb														
	dsb														
" : "=r" ulOriginalBASEPRI_28, "=r" ulNewBASEPRI_29 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_29
  # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_28
  # DEBUG BEGIN_STMT
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulOriginalBASEPRI => NULL
  # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_28
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  _4 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength;
  if (_3 < _4)
    goto <bb 15>; [33.00%]
  else
    goto <bb 14>; [67.00%]

  <bb 14> [local count: 94542]:
  if (xCopyPosition_16(D) == 2)
    goto <bb 15>; [34.00%]
  else
    goto <bb 25>; [66.00%]

  <bb 15> [local count: 78710]:
  # DEBUG BEGIN_STMT
  cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_13(D)].cTxLock;
  # DEBUG cTxLock => cTxLock_18
  # DEBUG BEGIN_STMT
  uxPreviousMessagesWaiting_19 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting;
  # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_19
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  prvCopyDataToQueue (xQueue_13(D), pvItemToQueue_14(D), xCopyPosition_16(D));
  # DEBUG BEGIN_STMT
  if (cTxLock_18 == -1)
    goto <bb 16>; [34.00%]
  else
    goto <bb 20>; [66.00%]

  <bb 16> [local count: 26761]:
  # DEBUG BEGIN_STMT
  _5 ={v} MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive.uxNumberOfItems;
  if (_5 != 0)
    goto <bb 17>; [33.00%]
  else
    goto <bb 25>; [67.00%]

  <bb 17> [local count: 8831]:
  # DEBUG BEGIN_STMT
  _6 = &MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive;
  _7 = xTaskRemoveFromEventList (_6);
  if (_7 != 0)
    goto <bb 18>; [50.00%]
  else
    goto <bb 25>; [50.00%]

  <bb 18> [local count: 4416]:
  # DEBUG BEGIN_STMT
  if (pxHigherPriorityTaskWoken_23(D) != 0B)
    goto <bb 19>; [70.00%]
  else
    goto <bb 25>; [30.00%]

  <bb 19> [local count: 3091]:
  # DEBUG BEGIN_STMT
  *pxHigherPriorityTaskWoken_23(D) = 1;
  goto <bb 25>; [100.00%]

  <bb 20> [local count: 51949]:
  # DEBUG BEGIN_STMT
  if (cTxLock_18 == 127)
    goto <bb 21>; [34.00%]
  else
    goto <bb 23>; [66.00%]

  <bb 21> [local count: 17663]:
  # 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_30 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_30

  <bb 22> [local count: 176625587]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 27> [local count: 176625587]:
  goto <bb 22>; [100.00%]

  <bb 23> [local count: 34286]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cTxLock.10_8 = (unsigned char) cTxLock_18;
  _9 = cTxLock.10_8 + 1;
  _10 = (signed char) _9;
  MEM[(struct Queue_t *)xQueue_13(D)].cTxLock ={v} _10;

  <bb 25> [local count: 123445]:
  # xReturn_11 = PHI <1(23), 0(14), 1(19), 1(17), 1(18), 1(16)>
  # DEBUG xReturn => xReturn_11
  # DEBUG BEGIN_STMT
  # DEBUG ulNewMaskValue => ulOriginalBASEPRI_28
  # DEBUG INLINE_ENTRY vPortSetBASEPRI
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulOriginalBASEPRI_28 : "memory");
  # DEBUG ulNewMaskValue => NULL
  # DEBUG BEGIN_STMT
  return xReturn_11;

}



;; Function xQueueGiveFromISR (xQueueGiveFromISR, funcdef_no=16, decl_uid=6331, cgraph_uid=17, symbol_order=17)

xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulOriginalBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const int8_t cTxLock;
  const UBaseType_t uxMessagesWaiting;
  BaseType_t xReturn;
  long unsigned int _1;
  int8_t * _2;
  struct tskTaskControlBlock * _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  struct List_t * _7;
  long int _8;
  unsigned char cTxLock.12_9;
  unsigned char _10;
  signed char _11;

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

  <bb 3> [local count: 92035]:
  # 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: 920350133]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 24> [local count: 920350133]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 214748]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xQueue_14(D)].uxItemSize;
  if (_1 != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 6> [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_25 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_25

  <bb 7> [local count: 1073741823]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 25> [local count: 1073741824]:
  goto <bb 7>; [100.00%]

  <bb 8> [local count: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = MEM[(struct Queue_t *)xQueue_14(D)].pcHead;
  if (_2 != 0B)
    goto <bb 12>; [53.47%]
  else
    goto <bb 9>; [46.53%]

  <bb 9> [local count: 49961]:
  _3 = MEM[(struct Queue_t *)xQueue_14(D)].u.xSemaphore.xMutexHolder;
  if (_3 == 0B)
    goto <bb 12>; [30.00%]
  else
    goto <bb 10>; [70.00%]

  <bb 10> [local count: 34973]:
  # 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_26 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_26

  <bb 11> [local count: 349728449]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 27> [local count: 349728449]:
  goto <bb 11>; [100.00%]

  <bb 12> [local count: 72401]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortValidateInterruptPriority ();
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mrs %0, basepri											
	mov %1, %2												
	msr basepri, %1											
	isb														
	dsb														
" : "=r" ulOriginalBASEPRI_27, "=r" ulNewBASEPRI_28 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_28
  # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_27
  # DEBUG BEGIN_STMT
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulOriginalBASEPRI => NULL
  # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_27
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_17 ={v} MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_17
  # DEBUG BEGIN_STMT
  _4 = MEM[(struct Queue_t *)xQueue_14(D)].uxLength;
  if (_4 > uxMessagesWaiting_17)
    goto <bb 13>; [50.00%]
  else
    goto <bb 23>; [50.00%]

  <bb 13> [local count: 36201]:
  # DEBUG BEGIN_STMT
  cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_14(D)].cTxLock;
  # DEBUG cTxLock => cTxLock_18
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = uxMessagesWaiting_17 + 1;
  MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting ={v} _5;
  # DEBUG BEGIN_STMT
  if (cTxLock_18 == -1)
    goto <bb 14>; [34.00%]
  else
    goto <bb 18>; [66.00%]

  <bb 14> [local count: 12308]:
  # DEBUG BEGIN_STMT
  _6 ={v} MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive.uxNumberOfItems;
  if (_6 != 0)
    goto <bb 15>; [33.00%]
  else
    goto <bb 23>; [67.00%]

  <bb 15> [local count: 4062]:
  # DEBUG BEGIN_STMT
  _7 = &MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive;
  _8 = xTaskRemoveFromEventList (_7);
  if (_8 != 0)
    goto <bb 16>; [50.00%]
  else
    goto <bb 23>; [50.00%]

  <bb 16> [local count: 2031]:
  # DEBUG BEGIN_STMT
  if (pxHigherPriorityTaskWoken_22(D) != 0B)
    goto <bb 17>; [70.00%]
  else
    goto <bb 23>; [30.00%]

  <bb 17> [local count: 1422]:
  # DEBUG BEGIN_STMT
  *pxHigherPriorityTaskWoken_22(D) = 1;
  goto <bb 23>; [100.00%]

  <bb 18> [local count: 23892]:
  # DEBUG BEGIN_STMT
  if (cTxLock_18 == 127)
    goto <bb 19>; [34.00%]
  else
    goto <bb 21>; [66.00%]

  <bb 19> [local count: 8123]:
  # 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_29 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_29

  <bb 20> [local count: 81234300]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 26> [local count: 81234300]:
  goto <bb 20>; [100.00%]

  <bb 21> [local count: 15769]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cTxLock.12_9 = (unsigned char) cTxLock_18;
  _10 = cTxLock.12_9 + 1;
  _11 = (signed char) _10;
  MEM[(struct Queue_t *)xQueue_14(D)].cTxLock ={v} _11;

  <bb 23> [local count: 64278]:
  # xReturn_12 = PHI <1(21), 0(12), 1(17), 1(15), 1(16), 1(14)>
  # DEBUG xReturn => xReturn_12
  # DEBUG BEGIN_STMT
  # DEBUG ulNewMaskValue => ulOriginalBASEPRI_27
  # DEBUG INLINE_ENTRY vPortSetBASEPRI
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulOriginalBASEPRI_27 : "memory");
  # DEBUG ulNewMaskValue => NULL
  # DEBUG BEGIN_STMT
  return xReturn_12;

}



;; Function xQueueReceive (xQueueReceive, funcdef_no=17, decl_uid=6317, cgraph_uid=18, symbol_order=18)

xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const UBaseType_t uxMessagesWaiting;
  struct TimeOut_t xTimeOut;
  BaseType_t xEntryTimeSet;
  long unsigned int _1;
  long int _2;
  long unsigned int xTicksToWait.15_3;
  long unsigned int _4;
  long unsigned int _5;
  struct List_t * _6;
  long int _7;
  long unsigned int xTicksToWait.16_8;
  signed char _9;
  signed char _10;
  long int _11;
  long int _12;
  struct List_t * _13;
  long unsigned int xTicksToWait.17_14;
  long int _15;
  long int _16;
  BaseType_t _19;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_27(D)
  # DEBUG BEGIN_STMT
  if (xQueue_27(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_65 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_65

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

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvBuffer_28(D) != 0B)
    goto <bb 9>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 6> [local count: 116576]:
  _1 = MEM[(struct Queue_t *)xQueue_27(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 58288]:
  # 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_66 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_66

  <bb 8> [local count: 582880751]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 37> [local count: 582880751]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 192251]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 != 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 10> [local count: 144189]:
  # xEntryTimeSet_32 = PHI <0(9), 0(11)>
  goto <bb 15>; [100.00%]

  <bb 11> [local count: 96126]:
  xTicksToWait.15_3 = xTicksToWait;
  if (xTicksToWait.15_3 == 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 12>; [50.00%]

  <bb 12> [local count: 48063]:
  # 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_67 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_67

  <bb 13> [local count: 480629211]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 36> [local count: 480629211]:
  goto <bb 13>; [100.00%]

  <bb 14> [local count: 1478726]:
  # xEntryTimeSet_46 = PHI <xEntryTimeSet_18(33), xEntryTimeSet_18(32), xEntryTimeSet_18(31), xEntryTimeSet_18(30)>

  <bb 15> [local count: 1622915]:
  # xEntryTimeSet_17 = PHI <xEntryTimeSet_32(10), xEntryTimeSet_46(14)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_17
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_34 ={v} MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_34
  # DEBUG BEGIN_STMT
  if (uxMessagesWaiting_34 != 0)
    goto <bb 16>; [3.66%]
  else
    goto <bb 20>; [96.34%]

  <bb 16> [local count: 59399]:
  # uxMessagesWaiting_31 = PHI <uxMessagesWaiting_34(15)>
  # DEBUG BEGIN_STMT
  prvCopyDataFromQueue (xQueue_27(D), pvBuffer_28(D));
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = uxMessagesWaiting_31 + 4294967295;
  MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting ={v} _4;
  # DEBUG BEGIN_STMT
  _5 ={v} MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend.uxNumberOfItems;
  if (_5 != 0)
    goto <bb 17>; [33.00%]
  else
    goto <bb 19>; [67.00%]

  <bb 17> [local count: 19602]:
  # DEBUG BEGIN_STMT
  _6 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend;
  _7 = xTaskRemoveFromEventList (_6);
  if (_7 != 0)
    goto <bb 18>; [50.00%]
  else
    goto <bb 19>; [50.00%]

  <bb 18> [local count: 9801]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT

  <bb 19> [local count: 59399]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  goto <bb 34>; [100.00%]

  <bb 20> [local count: 1563516]:
  # DEBUG BEGIN_STMT
  xTicksToWait.16_8 = xTicksToWait;
  if (xTicksToWait.16_8 == 0)
    goto <bb 21>; [3.66%]
  else
    goto <bb 22>; [96.34%]

  <bb 21> [local count: 57225]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 34>; [100.00%]

  <bb 22> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  if (xEntryTimeSet_17 == 0)
    goto <bb 23>; [33.00%]
  else
    goto <bb 24>; [67.00%]

  <bb 23> [local count: 497076]:
  # DEBUG BEGIN_STMT
  vTaskInternalSetTimeOutState (&xTimeOut);
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 1

  <bb 24> [local count: 1506292]:
  # xEntryTimeSet_18 = PHI <xEntryTimeSet_17(22), 1(23)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_18
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _9 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cRxLock;
  if (_9 == -1)
    goto <bb 25>; [34.00%]
  else
    goto <bb 26>; [66.00%]

  <bb 25> [local count: 512139]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_27(D)].cRxLock ={v} 0;

  <bb 26> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  _10 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cTxLock;
  if (_10 == -1)
    goto <bb 27>; [34.00%]
  else
    goto <bb 28>; [66.00%]

  <bb 27> [local count: 512139]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_27(D)].cTxLock ={v} 0;

  <bb 28> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  if (_11 == 0)
    goto <bb 29>; [50.00%]
  else
    goto <bb 33>; [50.00%]

  <bb 29> [local count: 753146]:
  # DEBUG BEGIN_STMT
  _12 = prvIsQueueEmpty (xQueue_27(D));
  if (_12 != 0)
    goto <bb 30>; [50.00%]
  else
    goto <bb 32>; [50.00%]

  <bb 30> [local count: 376573]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _13 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToReceive;
  xTicksToWait.17_14 = xTicksToWait;
  vTaskPlaceOnEventList (_13, xTicksToWait.17_14);
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_27(D));
  # DEBUG BEGIN_STMT
  _15 = xTaskResumeAll ();
  if (_15 == 0)
    goto <bb 31>; [50.00%]
  else
    goto <bb 14>; [50.00%]

  <bb 31> [local count: 188286]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

  <bb 32> [local count: 376573]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_27(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  goto <bb 14>; [100.00%]

  <bb 33> [local count: 753146]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_27(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  _16 = prvIsQueueEmpty (xQueue_27(D));
  if (_16 != 0)
    goto <bb 34>; [3.66%]
  else
    goto <bb 14>; [96.34%]

  <bb 34> [local count: 144189]:
  # _19 = PHI <1(19), 0(21), 0(33)>
  xTimeOut ={v} {CLOBBER};
  return _19;

}



;; Function xQueueSemaphoreTake (xQueueSemaphoreTake, funcdef_no=18, decl_uid=6372, cgraph_uid=19, symbol_order=19)


Symbols to be put in SSA form
{ D.7294 D.7525 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 52
Number of blocks to update: 51 ( 98%)


Merging blocks 4 and 44
Merging blocks 7 and 45
Merging blocks 12 and 47
Merging blocks 24 and 46
Merging blocks 41 and 49
Merging blocks 51 and 48
;; 6 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
;;
;; Loop 5
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 4
;;  header 7, latch 7
;;  depth 1, outer 0
;;  nodes: 7
;;
;; Loop 2
;;  header 24, latch 24
;;  depth 1, outer 0
;;  nodes: 24
;;
;; Loop 1
;;  header 14, latch 13
;;  depth 1, outer 0
;;  nodes: 14 13 39 38 37 36 34 35 33 32 30 31 28 29 26 27 21
;;
;; Loop 3
;;  header 12, latch 12
;;  depth 1, outer 0
;;  nodes: 12
;; 2 succs { 3 5 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 6 8 }
;; 6 succs { 7 }
;; 7 succs { 7 }
;; 8 succs { 10 9 }
;; 9 succs { 10 11 }
;; 10 succs { 14 }
;; 11 succs { 12 }
;; 12 succs { 12 }
;; 13 succs { 14 }
;; 14 succs { 15 21 }
;; 15 succs { 16 17 }
;; 16 succs { 17 }
;; 17 succs { 18 20 }
;; 18 succs { 19 20 }
;; 19 succs { 20 }
;; 20 succs { 45 }
;; 21 succs { 22 26 }
;; 22 succs { 23 25 }
;; 23 succs { 24 }
;; 24 succs { 24 }
;; 25 succs { 45 }
;; 26 succs { 27 28 }
;; 27 succs { 28 }
;; 28 succs { 29 30 }
;; 29 succs { 30 }
;; 30 succs { 31 32 }
;; 31 succs { 32 }
;; 32 succs { 33 39 }
;; 33 succs { 34 38 }
;; 34 succs { 35 36 }
;; 35 succs { 36 }
;; 36 succs { 37 13 }
;; 37 succs { 13 }
;; 38 succs { 13 }
;; 39 succs { 40 13 }
;; 40 succs { 41 44 }
;; 41 succs { 42 43 }
;; 42 succs { 43 }
;; 43 succs { 44 }
;; 44 succs { 45 }
;; 45 succs { 1 }
xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait)
{
  UBaseType_t uxHighestPriorityOfWaitingTasks;
  UBaseType_t D.7525;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  UBaseType_t uxHighestWaitingPriority;
  const UBaseType_t uxSemaphoreCount;
  BaseType_t xInheritanceOccurred;
  struct TimeOut_t xTimeOut;
  BaseType_t xEntryTimeSet;
  long unsigned int _1;
  long int _2;
  long unsigned int xTicksToWait.19_3;
  long unsigned int _4;
  int8_t * _5;
  struct tskTaskControlBlock * _6;
  long unsigned int _7;
  struct List_t * _8;
  long int _9;
  long unsigned int xTicksToWait.20_10;
  signed char _11;
  signed char _12;
  long int _13;
  long int _14;
  int8_t * _15;
  struct tskTaskControlBlock * _16;
  struct List_t * _17;
  long unsigned int xTicksToWait.21_18;
  long int _19;
  long int _20;
  struct tskTaskControlBlock * _21;
  BaseType_t _27;
  long unsigned int _96;
  struct xLIST_ITEM * _97;
  long unsigned int _98;

  <bb 2> [local count: 228942]:
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_38(D)
  # DEBUG BEGIN_STMT
  # DEBUG xInheritanceOccurred => 0
  # DEBUG BEGIN_STMT
  if (xQueue_38(D) == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 3> [local count: 68683]:
  # 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_88 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_88

  <bb 4> [local count: 686828460]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 160260]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xQueue_38(D)].uxItemSize;
  if (_1 != 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 8>; [33.00%]

  <bb 6> [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_89 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_89

  <bb 7> [local count: 1073741824]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 8> [local count: 52886]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 != 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 9> [local count: 26443]:
  xTicksToWait.19_3 = xTicksToWait;
  if (xTicksToWait.19_3 == 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 10> [local count: 39664]:
  # xEntryTimeSet_40 = PHI <0(9), 0(8)>
  # xInheritanceOccurred_64 = PHI <0(9), 0(8)>
  goto <bb 14>; [100.00%]

  <bb 11> [local count: 13221]:
  # 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_90 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_90

  <bb 12> [local count: 132214478]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 12>; [100.00%]

  <bb 13> [local count: 406777]:
  # xEntryTimeSet_48 = PHI <xEntryTimeSet_23(39), xEntryTimeSet_23(38), xEntryTimeSet_23(37), xEntryTimeSet_23(36)>
  # xInheritanceOccurred_39 = PHI <xInheritanceOccurred_24(39), xInheritanceOccurred_24(38), xInheritanceOccurred_25(37), xInheritanceOccurred_25(36)>

  <bb 14> [local count: 446442]:
  # xEntryTimeSet_22 = PHI <xEntryTimeSet_40(10), xEntryTimeSet_48(13)>
  # xInheritanceOccurred_24 = PHI <xInheritanceOccurred_64(10), xInheritanceOccurred_39(13)>
  # DEBUG xInheritanceOccurred => xInheritanceOccurred_24
  # DEBUG xEntryTimeSet => xEntryTimeSet_22
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  uxSemaphoreCount_46 ={v} MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting;
  # DEBUG uxSemaphoreCount => uxSemaphoreCount_46
  # DEBUG BEGIN_STMT
  if (uxSemaphoreCount_46 != 0)
    goto <bb 15>; [3.66%]
  else
    goto <bb 21>; [96.34%]

  <bb 15> [local count: 16340]:
  # uxSemaphoreCount_26 = PHI <uxSemaphoreCount_46(14)>
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = uxSemaphoreCount_26 + 4294967295;
  MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting ={v} _4;
  # DEBUG BEGIN_STMT
  _5 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  if (_5 == 0B)
    goto <bb 16>; [17.43%]
  else
    goto <bb 17>; [82.57%]

  <bb 16> [local count: 2848]:
  # DEBUG BEGIN_STMT
  _6 = pvTaskIncrementMutexHeldCount ();
  MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder = _6;

  <bb 17> [local count: 16340]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend.uxNumberOfItems;
  if (_7 != 0)
    goto <bb 18>; [33.00%]
  else
    goto <bb 20>; [67.00%]

  <bb 18> [local count: 5392]:
  # DEBUG BEGIN_STMT
  _8 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend;
  _9 = xTaskRemoveFromEventList (_8);
  if (_9 != 0)
    goto <bb 19>; [50.00%]
  else
    goto <bb 20>; [50.00%]

  <bb 19> [local count: 2696]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT

  <bb 20> [local count: 16340]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  goto <bb 45>; [100.00%]

  <bb 21> [local count: 430102]:
  # DEBUG BEGIN_STMT
  xTicksToWait.20_10 = xTicksToWait;
  if (xTicksToWait.20_10 == 0)
    goto <bb 22>; [3.66%]
  else
    goto <bb 26>; [96.34%]

  <bb 22> [local count: 15742]:
  # xInheritanceOccurred_43 = PHI <xInheritanceOccurred_24(21)>
  # DEBUG BEGIN_STMT
  if (xInheritanceOccurred_43 != 0)
    goto <bb 23>; [79.76%]
  else
    goto <bb 25>; [20.24%]

  <bb 23> [local count: 12556]:
  # 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_91 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_91

  <bb 24> [local count: 125556217]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 24>; [100.00%]

  <bb 25> [local count: 3186]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 45>; [100.00%]

  <bb 26> [local count: 414360]:
  # DEBUG BEGIN_STMT
  if (xEntryTimeSet_22 == 0)
    goto <bb 27>; [33.00%]
  else
    goto <bb 28>; [67.00%]

  <bb 27> [local count: 136739]:
  # DEBUG BEGIN_STMT
  vTaskInternalSetTimeOutState (&xTimeOut);
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 1

  <bb 28> [local count: 414360]:
  # xEntryTimeSet_23 = PHI <xEntryTimeSet_22(26), 1(27)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_23
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _11 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cRxLock;
  if (_11 == -1)
    goto <bb 29>; [34.00%]
  else
    goto <bb 30>; [66.00%]

  <bb 29> [local count: 140882]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_38(D)].cRxLock ={v} 0;

  <bb 30> [local count: 414360]:
  # DEBUG BEGIN_STMT
  _12 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cTxLock;
  if (_12 == -1)
    goto <bb 31>; [34.00%]
  else
    goto <bb 32>; [66.00%]

  <bb 31> [local count: 140882]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_38(D)].cTxLock ={v} 0;

  <bb 32> [local count: 414360]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  if (_13 == 0)
    goto <bb 33>; [50.00%]
  else
    goto <bb 39>; [50.00%]

  <bb 33> [local count: 207180]:
  # DEBUG BEGIN_STMT
  _14 = prvIsQueueEmpty (xQueue_38(D));
  if (_14 != 0)
    goto <bb 34>; [67.00%]
  else
    goto <bb 38>; [33.00%]

  <bb 34> [local count: 138811]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _15 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead;
  if (_15 == 0B)
    goto <bb 35>; [17.43%]
  else
    goto <bb 36>; [82.57%]

  <bb 35> [local count: 24195]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _16 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  xInheritanceOccurred_70 = xTaskPriorityInherit (_16);
  # DEBUG xInheritanceOccurred => xInheritanceOccurred_70
  # DEBUG BEGIN_STMT
  vPortExitCritical ();

  <bb 36> [local count: 138811]:
  # xInheritanceOccurred_25 = PHI <xInheritanceOccurred_24(34), xInheritanceOccurred_70(35)>
  # DEBUG xInheritanceOccurred => xInheritanceOccurred_25
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _17 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive;
  xTicksToWait.21_18 = xTicksToWait;
  vTaskPlaceOnEventList (_17, xTicksToWait.21_18);
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_38(D));
  # DEBUG BEGIN_STMT
  _19 = xTaskResumeAll ();
  if (_19 == 0)
    goto <bb 37>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 37> [local count: 69405]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT
  goto <bb 13>; [100.00%]

  <bb 38> [local count: 68369]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_38(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  goto <bb 13>; [100.00%]

  <bb 39> [local count: 207180]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_38(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  _20 = prvIsQueueEmpty (xQueue_38(D));
  if (_20 != 0)
    goto <bb 40>; [3.66%]
  else
    goto <bb 13>; [96.34%]

  <bb 40> [local count: 7583]:
  # xInheritanceOccurred_44 = PHI <xInheritanceOccurred_24(39)>
  # DEBUG BEGIN_STMT
  if (xInheritanceOccurred_44 != 0)
    goto <bb 41>; [33.00%]
  else
    goto <bb 44>; [67.00%]

  <bb 41> [local count: 2502]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_38(D)
  # DEBUG INLINE_ENTRY prvGetDisinheritPriorityAfterTimeout
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _96 ={v} MEM[(const struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive.uxNumberOfItems;
  if (_96 != 0)
    goto <bb 42>; [50.00%]
  else
    goto <bb 43>; [50.00%]

  <bb 42> [local count: 1251]:
  # DEBUG BEGIN_STMT
  _97 = MEM[(const struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive.xListEnd.pxNext;
  _98 = _97->xItemValue;
  uxHighestPriorityOfWaitingTasks_99 = 5 - _98;
  # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_99

  <bb 43> [local count: 2502]:
  # uxHighestPriorityOfWaitingTasks_100 = PHI <0(41), uxHighestPriorityOfWaitingTasks_99(42)>
  # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_100
  # DEBUG BEGIN_STMT
  _101 = uxHighestPriorityOfWaitingTasks_100;
  # DEBUG pxQueue => NULL
  # DEBUG uxHighestPriorityOfWaitingTasks => NULL
  uxHighestWaitingPriority_61 = _101;
  # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_61
  # DEBUG BEGIN_STMT
  _21 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder;
  vTaskPriorityDisinheritAfterTimeout (_21, uxHighestWaitingPriority_61);
  # DEBUG BEGIN_STMT
  vPortExitCritical ();

  <bb 44> [local count: 7583]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 45> [local count: 27109]:
  # _27 = PHI <1(20), 0(25), 0(44)>
  xTimeOut ={v} {CLOBBER};
  return _27;

}



;; Function xQueueTakeMutexRecursive (xQueueTakeMutexRecursive, funcdef_no=12, decl_uid=6379, cgraph_uid=13, symbol_order=13)

xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait)
{
  uint32_t ulNewBASEPRI;
  BaseType_t xReturn;
  struct tskTaskControlBlock * _1;
  struct tskTaskControlBlock * _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxMutex => xMutex_9(D)
  # DEBUG BEGIN_STMT
  if (xMutex_9(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_17 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_17

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

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

  <bb 5> [local count: 123389]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.xMutexHolder;
  _2 = xTaskGetCurrentTaskHandle ();
  if (_1 == _2)
    goto <bb 6>; [46.53%]
  else
    goto <bb 7>; [53.47%]

  <bb 6> [local count: 57413]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  _4 = _3 + 1;
  MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _4;
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 1
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 65976]:
  # DEBUG BEGIN_STMT
  xReturn_14 = xQueueSemaphoreTake (xMutex_9(D), xTicksToWait_12(D));
  # DEBUG xReturn => xReturn_14
  # DEBUG BEGIN_STMT
  if (xReturn_14 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 32988]:
  # DEBUG BEGIN_STMT
  _5 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount;
  _6 = _5 + 1;
  MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _6;

  <bb 9> [local count: 123389]:
  # xReturn_7 = PHI <1(6), xReturn_14(7), xReturn_14(8)>
  # DEBUG xReturn => xReturn_7
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return xReturn_7;

}



;; Function xQueuePeek (xQueuePeek, funcdef_no=19, decl_uid=6310, cgraph_uid=20, symbol_order=20)

xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const UBaseType_t uxMessagesWaiting;
  int8_t * pcOriginalReadPosition;
  struct TimeOut_t xTimeOut;
  BaseType_t xEntryTimeSet;
  long unsigned int _1;
  long int _2;
  long unsigned int xTicksToWait.24_3;
  long unsigned int _4;
  struct List_t * _5;
  long int _6;
  long unsigned int xTicksToWait.25_7;
  signed char _8;
  signed char _9;
  long int _10;
  long int _11;
  struct List_t * _12;
  long unsigned int xTicksToWait.26_13;
  long int _14;
  long int _15;
  BaseType_t _18;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_26(D)
  # DEBUG BEGIN_STMT
  if (xQueue_26(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_64 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_64

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

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvBuffer_27(D) != 0B)
    goto <bb 9>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 6> [local count: 116576]:
  _1 = MEM[(struct Queue_t *)xQueue_26(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 58288]:
  # 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_65 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_65

  <bb 8> [local count: 582880751]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 37> [local count: 582880751]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 192251]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 != 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 10> [local count: 144189]:
  # xEntryTimeSet_30 = PHI <0(9), 0(11)>
  goto <bb 15>; [100.00%]

  <bb 11> [local count: 96126]:
  xTicksToWait.24_3 = xTicksToWait;
  if (xTicksToWait.24_3 == 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 12>; [50.00%]

  <bb 12> [local count: 48063]:
  # 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_66 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_66

  <bb 13> [local count: 480629211]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 36> [local count: 480629211]:
  goto <bb 13>; [100.00%]

  <bb 14> [local count: 1478726]:
  # xEntryTimeSet_44 = PHI <xEntryTimeSet_17(33), xEntryTimeSet_17(32), xEntryTimeSet_17(31), xEntryTimeSet_17(30)>

  <bb 15> [local count: 1622915]:
  # xEntryTimeSet_16 = PHI <xEntryTimeSet_30(10), xEntryTimeSet_44(14)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_32 ={v} MEM[(struct Queue_t *)xQueue_26(D)].uxMessagesWaiting;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_32
  # DEBUG BEGIN_STMT
  if (uxMessagesWaiting_32 != 0)
    goto <bb 16>; [3.66%]
  else
    goto <bb 20>; [96.34%]

  <bb 16> [local count: 59399]:
  # DEBUG BEGIN_STMT
  pcOriginalReadPosition_55 = MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom;
  # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_55
  # DEBUG BEGIN_STMT
  prvCopyDataFromQueue (xQueue_26(D), pvBuffer_27(D));
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_55;
  # DEBUG BEGIN_STMT
  _4 ={v} MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive.uxNumberOfItems;
  if (_4 != 0)
    goto <bb 17>; [33.00%]
  else
    goto <bb 19>; [67.00%]

  <bb 17> [local count: 19602]:
  # DEBUG BEGIN_STMT
  _5 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  _6 = xTaskRemoveFromEventList (_5);
  if (_6 != 0)
    goto <bb 18>; [50.00%]
  else
    goto <bb 19>; [50.00%]

  <bb 18> [local count: 9801]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT

  <bb 19> [local count: 59399]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  goto <bb 34>; [100.00%]

  <bb 20> [local count: 1563516]:
  # DEBUG BEGIN_STMT
  xTicksToWait.25_7 = xTicksToWait;
  if (xTicksToWait.25_7 == 0)
    goto <bb 21>; [3.66%]
  else
    goto <bb 22>; [96.34%]

  <bb 21> [local count: 57225]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 34>; [100.00%]

  <bb 22> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  if (xEntryTimeSet_16 == 0)
    goto <bb 23>; [33.00%]
  else
    goto <bb 24>; [67.00%]

  <bb 23> [local count: 497076]:
  # DEBUG BEGIN_STMT
  vTaskInternalSetTimeOutState (&xTimeOut);
  # DEBUG BEGIN_STMT
  # DEBUG xEntryTimeSet => 1

  <bb 24> [local count: 1506292]:
  # xEntryTimeSet_17 = PHI <xEntryTimeSet_16(22), 1(23)>
  # DEBUG xEntryTimeSet => xEntryTimeSet_17
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _8 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cRxLock;
  if (_8 == -1)
    goto <bb 25>; [34.00%]
  else
    goto <bb 26>; [66.00%]

  <bb 25> [local count: 512139]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_26(D)].cRxLock ={v} 0;

  <bb 26> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  _9 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cTxLock;
  if (_9 == -1)
    goto <bb 27>; [34.00%]
  else
    goto <bb 28>; [66.00%]

  <bb 27> [local count: 512139]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_26(D)].cTxLock ={v} 0;

  <bb 28> [local count: 1506292]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _10 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait);
  if (_10 == 0)
    goto <bb 29>; [50.00%]
  else
    goto <bb 33>; [50.00%]

  <bb 29> [local count: 753146]:
  # DEBUG BEGIN_STMT
  _11 = prvIsQueueEmpty (xQueue_26(D));
  if (_11 != 0)
    goto <bb 30>; [50.00%]
  else
    goto <bb 32>; [50.00%]

  <bb 30> [local count: 376573]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _12 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive;
  xTicksToWait.26_13 = xTicksToWait;
  vTaskPlaceOnEventList (_12, xTicksToWait.26_13);
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_26(D));
  # DEBUG BEGIN_STMT
  _14 = xTaskResumeAll ();
  if (_14 == 0)
    goto <bb 31>; [50.00%]
  else
    goto <bb 14>; [50.00%]

  <bb 31> [local count: 188286]:
  # DEBUG BEGIN_STMT
  MEM[(volatile uint32_t *)3758157060B] ={v} 268435456;
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("dsb" :  :  : "memory");
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("isb");
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

  <bb 32> [local count: 376573]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_26(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  goto <bb 14>; [100.00%]

  <bb 33> [local count: 753146]:
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_26(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  _15 = prvIsQueueEmpty (xQueue_26(D));
  if (_15 != 0)
    goto <bb 34>; [3.66%]
  else
    goto <bb 14>; [96.34%]

  <bb 34> [local count: 144189]:
  # _18 = PHI <1(19), 0(21), 0(33)>
  xTimeOut ={v} {CLOBBER};
  return _18;

}



;; Function xQueueReceiveFromISR (xQueueReceiveFromISR, funcdef_no=20, decl_uid=6335, cgraph_uid=21, symbol_order=21)

xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulOriginalBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const int8_t cRxLock;
  const UBaseType_t uxMessagesWaiting;
  BaseType_t xReturn;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  struct List_t * _4;
  long int _5;
  unsigned char cRxLock.28_6;
  unsigned char _7;
  signed char _8;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_11(D)
  # DEBUG BEGIN_STMT
  if (xQueue_11(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_23 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_23

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

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvBuffer_12(D) != 0B)
    goto <bb 9>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 6> [local count: 116576]:
  _1 = MEM[(struct Queue_t *)xQueue_11(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 58288]:
  # 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 8> [local count: 582880751]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 23> [local count: 582880751]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 192251]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortValidateInterruptPriority ();
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mrs %0, basepri											
	mov %1, %2												
	msr basepri, %1											
	isb														
	dsb														
" : "=r" ulOriginalBASEPRI_25, "=r" ulNewBASEPRI_26 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_26
  # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_25
  # DEBUG BEGIN_STMT
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulOriginalBASEPRI => NULL
  # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_25
  # DEBUG BEGIN_STMT
  uxMessagesWaiting_15 ={v} MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting;
  # DEBUG uxMessagesWaiting => uxMessagesWaiting_15
  # DEBUG BEGIN_STMT
  if (uxMessagesWaiting_15 != 0)
    goto <bb 10>; [33.00%]
  else
    goto <bb 20>; [67.00%]

  <bb 10> [local count: 63443]:
  # DEBUG BEGIN_STMT
  cRxLock_16 ={v} MEM[(struct Queue_t *)xQueue_11(D)].cRxLock;
  # DEBUG cRxLock => cRxLock_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  prvCopyDataFromQueue (xQueue_11(D), pvBuffer_12(D));
  # DEBUG BEGIN_STMT
  _2 = uxMessagesWaiting_15 + 4294967295;
  MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting ={v} _2;
  # DEBUG BEGIN_STMT
  if (cRxLock_16 == -1)
    goto <bb 11>; [34.00%]
  else
    goto <bb 15>; [66.00%]

  <bb 11> [local count: 21571]:
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend.uxNumberOfItems;
  if (_3 != 0)
    goto <bb 12>; [33.00%]
  else
    goto <bb 20>; [67.00%]

  <bb 12> [local count: 7118]:
  # DEBUG BEGIN_STMT
  _4 = &MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend;
  _5 = xTaskRemoveFromEventList (_4);
  if (_5 != 0)
    goto <bb 13>; [50.00%]
  else
    goto <bb 20>; [50.00%]

  <bb 13> [local count: 3559]:
  # DEBUG BEGIN_STMT
  if (pxHigherPriorityTaskWoken_21(D) != 0B)
    goto <bb 14>; [70.00%]
  else
    goto <bb 20>; [30.00%]

  <bb 14> [local count: 2491]:
  # DEBUG BEGIN_STMT
  *pxHigherPriorityTaskWoken_21(D) = 1;
  goto <bb 20>; [100.00%]

  <bb 15> [local count: 41872]:
  # DEBUG BEGIN_STMT
  if (cRxLock_16 == 127)
    goto <bb 16>; [34.00%]
  else
    goto <bb 18>; [66.00%]

  <bb 16> [local count: 14237]:
  # 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_27 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_27

  <bb 17> [local count: 142366217]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 22> [local count: 142366217]:
  goto <bb 17>; [100.00%]

  <bb 18> [local count: 27636]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  cRxLock.28_6 = (unsigned char) cRxLock_16;
  _7 = cRxLock.28_6 + 1;
  _8 = (signed char) _7;
  MEM[(struct Queue_t *)xQueue_11(D)].cRxLock ={v} _8;

  <bb 20> [local count: 178015]:
  # xReturn_9 = PHI <1(18), 0(9), 1(14), 1(12), 1(13), 1(11)>
  # DEBUG xReturn => xReturn_9
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ulNewMaskValue => ulOriginalBASEPRI_25
  # DEBUG INLINE_ENTRY vPortSetBASEPRI
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulOriginalBASEPRI_25 : "memory");
  # DEBUG ulNewMaskValue => NULL
  # DEBUG BEGIN_STMT
  return xReturn_9;

}



;; Function xQueuePeekFromISR (xQueuePeekFromISR, funcdef_no=21, decl_uid=6313, cgraph_uid=22, symbol_order=22)

xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer)
{
  uint32_t ulOriginalBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  int8_t * pcOriginalReadPosition;
  BaseType_t xReturn;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;

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

  <bb 3> [local count: 80803]:
  # 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: 808033481]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 15> [local count: 808033481]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 188541]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (pvBuffer_7(D) != 0B)
    goto <bb 9>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 6> [local count: 56562]:
  _1 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  if (_1 == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 28281]:
  # 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 8> [local count: 282811719]:
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 17> [local count: 282811719]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 160260]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize;
  if (_2 == 0)
    goto <bb 10>; [67.00%]
  else
    goto <bb 12>; [33.00%]

  <bb 10> [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_15 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_15

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

  <bb 16> [local count: 1073741824]:
  goto <bb 11>; [100.00%]

  <bb 12> [local count: 52886]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortValidateInterruptPriority ();
  # DEBUG BEGIN_STMT
  # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	mrs %0, basepri											
	mov %1, %2												
	msr basepri, %1											
	isb														
	dsb														
" : "=r" ulOriginalBASEPRI_16, "=r" ulNewBASEPRI_17 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_17
  # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_16
  # DEBUG BEGIN_STMT
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulOriginalBASEPRI => NULL
  # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_16
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct Queue_t *)xQueue_6(D)].uxMessagesWaiting;
  if (_3 != 0)
    goto <bb 13>; [33.00%]
  else
    goto <bb 14>; [67.00%]

  <bb 13> [local count: 17452]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pcOriginalReadPosition_10 = MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom;
  # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_10
  # DEBUG BEGIN_STMT
  prvCopyDataFromQueue (xQueue_6(D), pvBuffer_7(D));
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_10;
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 1

  <bb 14> [local count: 52886]:
  # xReturn_4 = PHI <1(13), 0(12)>
  # DEBUG xReturn => xReturn_4
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ulNewMaskValue => ulOriginalBASEPRI_16
  # DEBUG INLINE_ENTRY vPortSetBASEPRI
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulOriginalBASEPRI_16 : "memory");
  # DEBUG ulNewMaskValue => NULL
  # DEBUG BEGIN_STMT
  return xReturn_4;

}



;; Function uxQueueMessagesWaiting (uxQueueMessagesWaiting, funcdef_no=22, decl_uid=6319, cgraph_uid=23, symbol_order=23)

uxQueueMessagesWaiting (struct QueueDefinition * const xQueue)
{
  uint32_t ulNewBASEPRI;
  UBaseType_t uxReturn;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xQueue_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
  uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  # DEBUG uxReturn => uxReturn_4
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  return uxReturn_4;

}



;; Function uxQueueSpacesAvailable (uxQueueSpacesAvailable, funcdef_no=23, decl_uid=6321, cgraph_uid=24, symbol_order=24)

uxQueueSpacesAvailable (struct QueueDefinition * const xQueue)
{
  uint32_t ulNewBASEPRI;
  UBaseType_t uxReturn;
  long unsigned int _1;
  long unsigned int _2;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_3(D)
  # DEBUG BEGIN_STMT
  if (xQueue_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 Queue_t *)xQueue_3(D)].uxLength;
  _2 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  uxReturn_6 = _1 - _2;
  # DEBUG uxReturn => uxReturn_6
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  return uxReturn_6;

}



;; Function uxQueueMessagesWaitingFromISR (uxQueueMessagesWaitingFromISR, funcdef_no=24, decl_uid=6341, cgraph_uid=25, symbol_order=25)

uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue)
{
  uint32_t ulNewBASEPRI;
  UBaseType_t uxReturn;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_1(D)
  # DEBUG BEGIN_STMT
  if (xQueue_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
  uxReturn_3 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting;
  # DEBUG uxReturn => uxReturn_3
  # DEBUG BEGIN_STMT
  return uxReturn_3;

}



;; Function uxQueueGetQueueNumber (uxQueueGetQueueNumber, funcdef_no=26, decl_uid=6417, cgraph_uid=27, symbol_order=27)

uxQueueGetQueueNumber (struct QueueDefinition * xQueue)
{
  UBaseType_t _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber;
  return _3;

}



;; Function vQueueSetQueueNumber (vQueueSetQueueNumber, funcdef_no=27, decl_uid=6415, cgraph_uid=28, symbol_order=28)

vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D);
  return;

}



;; Function ucQueueGetQueueType (ucQueueGetQueueType, funcdef_no=28, decl_uid=6419, cgraph_uid=29, symbol_order=29)

ucQueueGetQueueType (struct QueueDefinition * xQueue)
{
  uint8_t _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType;
  return _3;

}



;; Function xQueueIsQueueEmptyFromISR (xQueueIsQueueEmptyFromISR, funcdef_no=34, decl_uid=6337, cgraph_uid=35, symbol_order=35)

xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue)
{
  uint32_t ulNewBASEPRI;
  BaseType_t xReturn;
  long unsigned int _1;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_3(D)
  # DEBUG BEGIN_STMT
  if (xQueue_3(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_5 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_5

  <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: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting;
  if (_1 == 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 6> [local count: 125270]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0

  <bb 7> [local count: 250539]:
  # xReturn_2 = PHI <1(5), 0(6)>
  # DEBUG xReturn => xReturn_2
  # DEBUG BEGIN_STMT
  return xReturn_2;

}



;; Function xQueueIsQueueFullFromISR (xQueueIsQueueFullFromISR, funcdef_no=36, decl_uid=6339, cgraph_uid=37, symbol_order=37)

xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue)
{
  uint32_t ulNewBASEPRI;
  BaseType_t xReturn;
  long unsigned int _1;
  long unsigned int _2;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_4(D)
  # DEBUG BEGIN_STMT
  if (xQueue_4(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_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 8> [local count: 1073741824]:
  goto <bb 4>; [100.00%]

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct Queue_t *)xQueue_4(D)].uxMessagesWaiting;
  _2 = MEM[(struct Queue_t *)xQueue_4(D)].uxLength;
  if (_1 == _2)
    goto <bb 7>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 6> [local count: 165356]:
  # DEBUG BEGIN_STMT
  # DEBUG xReturn => 0

  <bb 7> [local count: 250539]:
  # xReturn_3 = PHI <1(5), 0(6)>
  # DEBUG xReturn => xReturn_3
  # DEBUG BEGIN_STMT
  return xReturn_3;

}



;; Function vQueueAddToRegistry (vQueueAddToRegistry, funcdef_no=37, decl_uid=6384, cgraph_uid=38, symbol_order=38)

vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName)
{
  uint32_t ulNewBASEPRI;
  struct QueueRegistryItem_t * pxEntryToWrite;
  UBaseType_t ux;
  struct QueueDefinition * _1;
  const char * _2;

  <bb 2> [local count: 357913]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xQueue_8(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_17 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_17

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

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

  <bb 5> [local count: 250539]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxEntryToWrite => 0B
  # DEBUG BEGIN_STMT
  if (pcQueueName_10(D) != 0B)
    goto <bb 16>; [70.00%]
  else
    goto <bb 15>; [30.00%]

  <bb 16> [local count: 175378]:
  goto <bb 12>; [100.00%]

  <bb 6> [local count: 316038]:
  # DEBUG BEGIN_STMT
  _1 = xQueueRegistry[ux_3].xHandle;
  if (_1 == xQueue_8(D))
    goto <bb 7>; [5.50%]
  else
    goto <bb 8>; [94.50%]

  <bb 7> [local count: 17382]:
  # ux_9 = PHI <ux_3(6)>
  # DEBUG BEGIN_STMT
  pxEntryToWrite_14 = &xQueueRegistry[ux_9];
  # DEBUG pxEntryToWrite => pxEntryToWrite_14
  # DEBUG BEGIN_STMT
  goto <bb 13>; [100.00%]

  <bb 8> [local count: 298656]:
  # DEBUG BEGIN_STMT
  if (pxEntryToWrite_5 == 0B)
    goto <bb 9>; [30.00%]
  else
    goto <bb 11>; [70.00%]

  <bb 9> [local count: 89597]:
  _2 = xQueueRegistry[ux_3].pcQueueName;
  if (_2 == 0B)
    goto <bb 10>; [30.00%]
  else
    goto <bb 11>; [70.00%]

  <bb 10> [local count: 26879]:
  # DEBUG BEGIN_STMT
  pxEntryToWrite_12 = &xQueueRegistry[ux_3];
  # DEBUG pxEntryToWrite => pxEntryToWrite_12

  <bb 11> [local count: 298656]:
  # pxEntryToWrite_4 = PHI <pxEntryToWrite_5(8), 0B(9), pxEntryToWrite_12(10)>
  # DEBUG pxEntryToWrite => pxEntryToWrite_4
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ux_13 = ux_3 + 1;
  # DEBUG ux => ux_13

  <bb 12> [local count: 474034]:
  # ux_3 = PHI <ux_13(11), 0(16)>
  # pxEntryToWrite_5 = PHI <pxEntryToWrite_4(11), 0B(16)>
  # DEBUG pxEntryToWrite => pxEntryToWrite_5
  # DEBUG ux => ux_3
  # DEBUG BEGIN_STMT
  if (ux_3 != 2)
    goto <bb 6>; [66.67%]
  else
    goto <bb 13>; [33.33%]

  <bb 13> [local count: 175378]:
  # pxEntryToWrite_6 = PHI <pxEntryToWrite_5(12), pxEntryToWrite_14(7)>
  # DEBUG pxEntryToWrite => pxEntryToWrite_6
  # DEBUG BEGIN_STMT
  if (pxEntryToWrite_6 != 0B)
    goto <bb 14>; [70.00%]
  else
    goto <bb 15>; [30.00%]

  <bb 14> [local count: 122764]:
  # DEBUG BEGIN_STMT
  pxEntryToWrite_6->pcQueueName = pcQueueName_10(D);
  # DEBUG BEGIN_STMT
  pxEntryToWrite_6->xHandle = xQueue_8(D);

  <bb 15> [local count: 250539]:
  # DEBUG pxEntryToWrite => NULL
  # DEBUG BEGIN_STMT
  return;

}



;; Function pcQueueGetName (pcQueueGetName, funcdef_no=38, decl_uid=6388, cgraph_uid=39, symbol_order=39)

pcQueueGetName (struct QueueDefinition * xQueue)
{
  uint32_t ulNewBASEPRI;
  const char * pcReturn;
  UBaseType_t ux;
  struct QueueDefinition * _1;

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

  <bb 10> [local count: 250539]:
  goto <bb 8>; [100.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_9 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_9

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

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

  <bb 5> [local count: 451483]:
  # DEBUG BEGIN_STMT
  _1 = xQueueRegistry[ux_2].xHandle;
  if (_1 == xQueue_5(D))
    goto <bb 6>; [5.50%]
  else
    goto <bb 7>; [94.50%]

  <bb 6> [local count: 24832]:
  # ux_4 = PHI <ux_2(5)>
  # DEBUG BEGIN_STMT
  pcReturn_8 = xQueueRegistry[ux_4].pcQueueName;
  # DEBUG pcReturn => pcReturn_8
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 426652]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ux_7 = ux_2 + 1;
  # DEBUG ux => ux_7

  <bb 8> [local count: 677191]:
  # ux_2 = PHI <ux_7(7), 0(10)>
  # DEBUG ux => ux_2
  # DEBUG BEGIN_STMT
  if (ux_2 != 2)
    goto <bb 5>; [66.67%]
  else
    goto <bb 9>; [33.33%]

  <bb 9> [local count: 250539]:
  # pcReturn_3 = PHI <pcReturn_8(6), 0B(8)>
  # DEBUG pcReturn => pcReturn_3
  # DEBUG BEGIN_STMT
  return pcReturn_3;

}



;; Function vQueueUnregisterQueue (vQueueUnregisterQueue, funcdef_no=39, decl_uid=6386, cgraph_uid=40, symbol_order=40)

Removing basic block 10

Symbols to be put in SSA form
{ D.7309 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 15
Number of blocks to update: 13 ( 87%)


Removing basic block 3
Removing basic block 9
Removing basic block 11
Merging blocks 13 and 14
;; 4 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9
;;
;; Loop 3
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 1
;;  header 8, latch 7
;;  depth 1, outer 0
;;  nodes: 8 7 5
;; 2 succs { 3 8 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 6 7 }
;; 6 succs { 9 }
;; 7 succs { 8 }
;; 8 succs { 5 9 }
;; 9 succs { 1 }
vQueueUnregisterQueue (struct QueueDefinition * xQueue)
{
  uint32_t ulNewBASEPRI;
  UBaseType_t ux;
  struct QueueDefinition * _1;

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

  <bb 3> [local count: 107374]:
  # DEBUG D#1 => xQueue_3(D)
  # DEBUG INLINE_ENTRY vQueueUnregisterQueue
  # DEBUG D#2 => D#1
  # DEBUG xQueue => D#2
  # 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_11 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_11

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

  <bb 5> [local count: 451483]:
  # DEBUG BEGIN_STMT
  _1 = xQueueRegistry[ux_2].xHandle;
  if (_1 == xQueue_3(D))
    goto <bb 6>; [5.50%]
  else
    goto <bb 7>; [94.50%]

  <bb 6> [local count: 24832]:
  # ux_4 = PHI <ux_2(5)>
  # DEBUG BEGIN_STMT
  xQueueRegistry[ux_4].pcQueueName = 0B;
  # DEBUG BEGIN_STMT
  xQueueRegistry[ux_4].xHandle = 0B;
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 426652]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ux_6 = ux_2 + 1;
  # DEBUG ux => ux_6

  <bb 8> [local count: 677191]:
  # ux_2 = PHI <ux_6(7), 0(2)>
  # DEBUG ux => ux_2
  # DEBUG BEGIN_STMT
  if (ux_2 != 2)
    goto <bb 5>; [66.67%]
  else
    goto <bb 9>; [33.33%]

  <bb 9> [local count: 250539]:
  return;

}



;; Function vQueueDelete (vQueueDelete, funcdef_no=25, decl_uid=6323, cgraph_uid=26, symbol_order=26)

vQueueDelete (struct QueueDefinition * xQueue)
{
  uint32_t ulNewBASEPRI;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_1(D)
  # DEBUG BEGIN_STMT
  if (xQueue_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_5 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_5

  <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
  # DEBUG BEGIN_STMT
  vQueueUnregisterQueue (xQueue_1(D));
  # DEBUG BEGIN_STMT
  vPortFree (xQueue_1(D));
  return;

}



;; Function vQueueWaitForMessageRestricted (vQueueWaitForMessageRestricted, funcdef_no=40, decl_uid=6409, cgraph_uid=41, symbol_order=41)

vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely)
{
  signed char _1;
  signed char _2;
  long unsigned int _3;
  struct List_t * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG pxQueue => xQueue_8(D)
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cRxLock;
  if (_1 == -1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_8(D)].cRxLock ={v} 0;

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cTxLock;
  if (_2 == -1)
    goto <bb 5>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 5> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  MEM[(struct Queue_t *)xQueue_8(D)].cTxLock ={v} 0;

  <bb 6> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct Queue_t *)xQueue_8(D)].uxMessagesWaiting;
  if (_3 == 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 7> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _4 = &MEM[(struct Queue_t *)xQueue_8(D)].xTasksWaitingToReceive;
  vTaskPlaceOnEventListRestricted (_4, xTicksToWait_14(D), xWaitIndefinitely_15(D));

  <bb 8> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  prvUnlockQueue (xQueue_8(D));
  return;

}


