IPA function summary for xEventGroupSetBits.part.0/39 inlinable
  global time:     189.559092
  self size:       39
  global size:     39
  min size:       10
  self stack:      0
  global stack:    0
    size:26.500000, time:118.036364
    size:7.500000, time:10.744546,  executed if:(not inlined)
  calls:
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vTaskRemoveFromUnorderedEventList/28 function body not available
      loop depth: 1 freq:3.40 size: 3 time: 12
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for xEventGroupClearBits.part.0/36 inlinable
  global time:     26.000000
  self size:       9
  global size:     9
  min size:       4
  self stack:      0
  global stack:    0
    size:2.000000, time:2.000000
    size:4.000000, time:3.000000,  executed if:(not inlined)
    size:1.000000, time:1.000000,  nonconst if:(op1 changed)
  calls:
    vPortEnterCritical/25 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    vPortExitCritical/26 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for vEventGroupSetNumber/17 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 uxEventGroupGetNumber/16 inlinable
  global time:     4.700000
  self size:       6
  global size:     6
  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:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B)
  calls:

IPA function summary for xEventGroupSetBitsFromISR/15 inlinable
  global time:     17.000000
  self size:       9
  global size:     9
  min size:       12
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xTimerPendFunctionCallFromISR/27 function body not available
      loop depth: 0 freq:1.00 size: 6 time: 15
       op0 is compile time invariant

IPA function summary for prvTestWaitCondition/14 inlinable
  global time:     7.000000
  self size:       11
  global size:     11
  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:(op2 changed)
    size:3.000000, time:1.500000,  executed if:(op2 != 0),  nonconst if:(op0 changed || op1 changed) && (op2 != 0)
    size:3.000000, time:1.500000,  executed if:(op2 == 0),  nonconst if:(op0 changed || op1 changed) && (op2 == 0)
  calls:

IPA function summary for vEventGroupClearBitsCallback/13 inlinable
  global time:     14.000000
  self size:       6
  global size:     6
  min size:       6
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xEventGroupClearBits/7 function not considered for inlining
      loop depth: 0 freq:1.00 size: 3 time: 12callee size:11 stack: 0

IPA function summary for vEventGroupSetBitsCallback/12 inlinable
  global time:     14.000000
  self size:       6
  global size:     6
  min size:       6
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xEventGroupSetBits/10 function not considered for inlining
      loop depth: 0 freq:1.00 size: 3 time: 12callee size:11 stack: 0

IPA function summary for vEventGroupDelete/11 inlinable
  global time:     100.024761
  self size:       28
  global size:     28
  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:5.410727,  executed if:(op0 != 0B) && (not inlined)
    size:10.000000, time:25.603487,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.27 size: 1 time: 10 predicate: (op0 != 0B)
    vPortFree/29 function body not available
      loop depth: 0 freq:0.27 size: 2 time: 11 predicate: (op0 != 0B)
    vTaskRemoveFromUnorderedEventList/28 function body not available
      loop depth: 1 freq:4.46 size: 3 time: 12 predicate: (op0 != 0B)
       op1 is compile time invariant
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xEventGroupSetBits/10 inlinable
  global time:     11.410047
  self size:       22
  global size:     22
  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:3.000000, time:2.100008,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:1.000000, time:0.462003,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.345004,  executed if:(op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    xEventGroupSetBits.part.0/39 function not considered for inlining
      loop depth: 0 freq:0.23 size: 4 time: 13callee size:19 stack: 0 predicate: (op0 != 0B)

IPA function summary for xEventGroupGetBitsFromISR/9 inlinable
  global time:     10.000000
  self size:       11
  global size:     11
  min size:       0
  self stack:      0
  global stack:    0
    size:7.500000, time:7.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:

IPA function summary for xEventGroupClearBitsFromISR/8 inlinable
  global time:     17.000000
  self size:       9
  global size:     9
  min size:       12
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xTimerPendFunctionCallFromISR/27 function body not available
      loop depth: 0 freq:1.00 size: 6 time: 15
       op0 is compile time invariant
       op3 is compile time invariant

IPA function summary for xEventGroupClearBits/7 inlinable
  global time:     11.410047
  self size:       22
  global size:     22
  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:3.000000, time:2.100008,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:1.000000, time:0.462003,  executed if:(op0 != 0B) && (not inlined)
    size:5.000000, time:2.345004,  executed if:(op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    xEventGroupClearBits.part.0/36 function not considered for inlining
      loop depth: 0 freq:0.23 size: 4 time: 13callee size: 4 stack: 0 predicate: (op0 != 0B)

IPA function summary for xEventGroupWaitBits/6 inlinable
  global time:     16.066158
  self size:       92
  global size:     92
  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:5.000000, time:2.799999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:18.000000, time:0.896349,  executed if:(op1 != 0) && (op0 != 0B)
    size:4.000000, time:0.231577,  executed if:(op1 != 0) && (op0 != 0B),  nonconst if:(op4 changed) && (op1 != 0) && (op0 != 0B)
    size:5.000000, time:0.193459,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.198354,  executed if:(op1 != 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.038405,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.038405,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.009600,  executed if:(op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.019202,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op1 changed || op2 changed || op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:4.000000, time:0.089483,  executed if:(op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.022371,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op1 changed) && (op2 != 0) && (op1 != 0) && (op0 != 0B)
    size:3.000000, time:0.033556,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.011185,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.172506,  executed if:(op1 == 0) && (op0 != 0B)
    size:5.000000, time:1.749999,  executed if:(op0 != 0B)
    size:5.000000, time:1.500002,  executed if:(op0 == 0B)
  calls:
    vPortExitCritical/26 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    prvTestWaitCondition/14 function not considered for inlining
      loop depth: 0 freq:0.01 size: 5 time: 14callee size: 5 stack: 0 predicate: (op1 != 0) && (op0 != 0B)
    vPortEnterCritical/25 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    uxTaskResetEventItemValue/24 function body not available
      loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.08 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
    vTaskPlaceOnUnorderedEventList/22 function body not available
      loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op4 != 0) && (op1 != 0) && (op0 != 0B)
    prvTestWaitCondition/14 function not considered for inlining
      loop depth: 0 freq:0.08 size: 5 time: 14callee size: 5 stack: 0 predicate: (op1 != 0) && (op0 != 0B)
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.08 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    xTaskGetSchedulerState/20 function body not available
      loop depth: 0 freq:0.12 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)

IPA function summary for xEventGroupSync/5 inlinable
  global time:     17.570981
  self size:       74
  global size:     74
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:2.500000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:5.000000, time:4.000000,  nonconst if:(op2 changed)
    size:24.500000, time:1.601894,  executed if:(op2 != 0)
    size:4.000000, time:0.365936,  executed if:(op2 != 0),  nonconst if:(op3 changed) && (op2 != 0)
    size:5.000000, time:0.276370,  executed if:(op3 != 0) && (op2 != 0)
    size:3.500000, time:0.323745,  executed if:(op2 != 0) && (not inlined)
    size:0.500000, time:0.024261,  executed if:(op3 == 0) && (op2 != 0) && (not inlined)
    size:0.500000, time:0.024261,  executed if:(op3 == 0) && (op2 != 0)
    size:1.000000, time:0.023898,  executed if:(op3 != 0) && (op2 != 0),  nonconst if:(op2 changed) && (op3 != 0) && (op2 != 0)
    size:2.000000, time:0.043460,  executed if:(op2 != 0),  nonconst if:(op2 changed) && (op2 != 0)
    size:5.000000, time:1.675010,  executed if:(op2 == 0)
  calls:
    vPortExitCritical/26 function body not available
      loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
    vPortEnterCritical/25 function body not available
      loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
    uxTaskResetEventItemValue/24 function body not available
      loop depth: 0 freq:0.05 size: 2 time: 11 predicate: (op2 != 0)
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.11 size: 2 time: 11 predicate: (op2 != 0)
    vTaskPlaceOnUnorderedEventList/22 function body not available
      loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op3 != 0) && (op2 != 0)
    xEventGroupSetBits/10 function not considered for inlining
      loop depth: 0 freq:0.11 size: 3 time: 12callee size:11 stack: 0 predicate: (op2 != 0)
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op2 != 0)
    xTaskGetSchedulerState/20 function body not available
      loop depth: 0 freq:0.16 size: 2 time: 11 predicate: (op2 != 0)

IPA function summary for xEventGroupCreate/4 inlinable
  global time:     22.416400
  self size:       11
  global size:     11
  min size:       10
  self stack:      0
  global stack:    0
    size:3.000000, time:2.534700
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    vListInitialise/19 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11
    pvPortMalloc/18 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant


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

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in xEventGroupSetBits.part.0/39.
Enqueueing calls in xEventGroupClearBits.part.0/36.
Enqueueing calls in vEventGroupSetNumber/17.
Enqueueing calls in uxEventGroupGetNumber/16.
Enqueueing calls in xEventGroupSetBitsFromISR/15.
Enqueueing calls in prvTestWaitCondition/14.
Enqueueing calls in vEventGroupClearBitsCallback/13.
Enqueueing calls in vEventGroupSetBitsCallback/12.
Enqueueing calls in vEventGroupDelete/11.
Enqueueing calls in xEventGroupSetBits/10.
Enqueueing calls in xEventGroupGetBitsFromISR/9.
Enqueueing calls in xEventGroupClearBitsFromISR/8.
Enqueueing calls in xEventGroupClearBits/7.
Enqueueing calls in xEventGroupWaitBits/6.
Enqueueing calls in xEventGroupSync/5.
Enqueueing calls in xEventGroupCreate/4.

Considering xEventGroupClearBits.part.0/36 with 9 size
 to be inlined into xEventGroupClearBits/7 in unknown:0
 Estimated badness is -0.642787, frequency 0.23.

Considering prvTestWaitCondition/14 with 11 size
 to be inlined into xEventGroupWaitBits/6 in ../FreeRTOS/Source/event_groups.c:344
 Estimated badness is -0.017248, frequency 0.08.

Considering prvTestWaitCondition/14 with 11 size
 to be inlined into xEventGroupWaitBits/6 in ../FreeRTOS/Source/event_groups.c:435
 Estimated badness is -0.002846, frequency 0.01.

Considering xEventGroupSetBits.part.0/39 with 39 size
 to be inlined into xEventGroupSetBits/10 in unknown:0
 Estimated badness is -0.000015, frequency 0.23.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

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

Why inlining failed?
function body not available                       :       27 calls, 11.643358 freq, 0 count
--param max-inline-insns-auto limit reached       :        1 calls, 0.109724 freq, 0 count
call is unlikely and code size would grow         :        2 calls, 2.000000 freq, 0 count
IPA function summary for vEventGroupSetNumber/17 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 uxEventGroupGetNumber/16 inlinable
  global time:     4.700000
  self size:       6
  global size:     6
  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:0.500000, time:0.350000,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.350000,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B)
  calls:

IPA function summary for xEventGroupSetBitsFromISR/15 inlinable
  global time:     17.000000
  self size:       9
  global size:     9
  min size:       12
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xTimerPendFunctionCallFromISR/27 function body not available
      loop depth: 0 freq:1.00 size: 6 time: 15
       op0 is compile time invariant

IPA function summary for vEventGroupClearBitsCallback/13 inlinable
  global time:     14.000000
  self size:       6
  global size:     6
  min size:       6
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xEventGroupClearBits/7 call is unlikely and code size would grow
      loop depth: 0 freq:1.00 size: 3 time: 12callee size:11 stack: 0

IPA function summary for vEventGroupSetBitsCallback/12 inlinable
  global time:     14.000000
  self size:       6
  global size:     6
  min size:       6
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xEventGroupSetBits/10 call is unlikely and code size would grow
      loop depth: 0 freq:1.00 size: 3 time: 12callee size:25 stack: 0

IPA function summary for vEventGroupDelete/11 inlinable
  global time:     100.024761
  self size:       28
  global size:     28
  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:5.410727,  executed if:(op0 != 0B) && (not inlined)
    size:10.000000, time:25.603487,  executed if:(op0 != 0B)
    size:5.000000, time:2.326499,  executed if:(op0 == 0B)
  calls:
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.27 size: 1 time: 10 predicate: (op0 != 0B)
    vPortFree/29 function body not available
      loop depth: 0 freq:0.27 size: 2 time: 11 predicate: (op0 != 0B)
    vTaskRemoveFromUnorderedEventList/28 function body not available
      loop depth: 1 freq:4.46 size: 3 time: 12 predicate: (op0 != 0B)
       op1 is compile time invariant
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xEventGroupSetBits/10 inlinable
  global time:     49.713483
  self size:       22
  global size:     50
  min size:       0
  self stack:      0
  global stack:    0
  estimated growth:32
    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:3.000000, time:2.100008,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:1.000000, time:0.462003,  executed if:(op0 != 0B) && (not inlined)
    size:31.500000, time:29.611610,  executed if:(op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    xEventGroupSetBits.part.0/39 inlined
      loop depth: 0 freq:0.23 size: 4 time: 13callee size:19 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      vTaskSuspendAll/21 function body not available
        loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op0 != 0B)
      vTaskRemoveFromUnorderedEventList/28 function body not available
        loop depth: 1 freq:0.78 size: 3 time: 12 predicate: (op0 != 0B)
      xTaskResumeAll/23 function body not available
        loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xEventGroupGetBitsFromISR/9 inlinable
  global time:     10.000000
  self size:       11
  global size:     11
  min size:       0
  self stack:      0
  global stack:    0
    size:7.500000, time:7.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
  calls:

IPA function summary for xEventGroupClearBitsFromISR/8 inlinable
  global time:     17.000000
  self size:       9
  global size:     9
  min size:       12
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    xTimerPendFunctionCallFromISR/27 function body not available
      loop depth: 0 freq:1.00 size: 6 time: 15
       op0 is compile time invariant
       op3 is compile time invariant

IPA function summary for xEventGroupClearBits/7 inlinable
  global time:     13.720065
  self size:       22
  global size:     23
  min size:       0
  self stack:      0
  global stack:    0
  estimated growth:16
    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:4.000000, time:2.331010,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:1.000000, time:0.462003,  executed if:(op0 != 0B) && (not inlined)
    size:7.000000, time:2.807008,  executed if:(op0 != 0B)
    size:5.000000, time:1.500009,  executed if:(op0 == 0B)
  calls:
    xEventGroupClearBits.part.0/36 inlined
      loop depth: 0 freq:0.23 size: 4 time: 13callee size: 4 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      vPortEnterCritical/25 function body not available
        loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op0 != 0B)
      vPortExitCritical/26 function body not available
        loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op0 != 0B)

IPA function summary for xEventGroupWaitBits/6 inlinable
  global time:     15.260836
  self size:       92
  global size:     98
  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:5.000000, time:2.799999,  executed if:(op0 != 0B),  nonconst if:(op1 changed) && (op0 != 0B)
    size:18.000000, time:0.896349,  executed if:(op1 != 0) && (op0 != 0B)
    size:4.000000, time:0.231577,  executed if:(op1 != 0) && (op0 != 0B),  nonconst if:(op4 changed) && (op1 != 0) && (op0 != 0B)
    size:5.000000, time:0.193459,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.198354,  executed if:(op1 != 0) && (op0 != 0B) && (not inlined)
    size:2.000000, time:0.038405,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.038405,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.009600,  executed if:(op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op3 != 0) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.019202,  executed if:(op4 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op1 changed || op2 changed || op3 changed) && (op4 != 0) && (op1 != 0) && (op0 != 0B)
    size:4.000000, time:0.089483,  executed if:(op1 != 0) && (op0 != 0B),  nonconst if:(op2 changed) && (op1 != 0) && (op0 != 0B)
    size:2.000000, time:0.022371,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B),  nonconst if:(op1 changed) && (op2 != 0) && (op1 != 0) && (op0 != 0B)
    size:3.000000, time:0.033556,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B)
    size:1.000000, time:0.011185,  executed if:(op2 != 0) && (op1 != 0) && (op0 != 0B) && (not inlined)
    size:5.000000, time:1.172506,  executed if:(op1 == 0) && (op0 != 0B)
    size:5.000000, time:1.749999,  executed if:(op0 != 0B)
    size:5.000000, time:1.500002,  executed if:(op0 == 0B)
    size:4.000000, time:0.178960,  executed if:(op1 != 0) && (op0 != 0B),  nonconst if:(op3 changed) && (op1 != 0) && (op0 != 0B)
    size:6.000000, time:0.134220,  executed if:(op3 != 0) && (op1 != 0) && (op0 != 0B)
    size:6.000000, time:0.134220,  executed if:(op3 == 0) && (op1 != 0) && (op0 != 0B)
  calls:
    vPortExitCritical/26 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    prvTestWaitCondition/14 inlined
      loop depth: 0 freq:0.01 size: 5 time: 14callee size: 5 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
    vPortEnterCritical/25 function body not available
      loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    uxTaskResetEventItemValue/24 function body not available
      loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.08 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)
    vTaskPlaceOnUnorderedEventList/22 function body not available
      loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op4 != 0) && (op1 != 0) && (op0 != 0B)
    prvTestWaitCondition/44 inlined
      loop depth: 0 freq:0.08 size: 5 time: 14callee size: 5 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.08 size: 1 time: 10 predicate: (op1 != 0) && (op0 != 0B)
    xTaskGetSchedulerState/20 function body not available
      loop depth: 0 freq:0.12 size: 2 time: 11 predicate: (op1 != 0) && (op0 != 0B)

IPA function summary for xEventGroupSync/5 inlinable
  global time:     17.570981
  self size:       74
  global size:     74
  min size:       0
  self stack:      0
  global stack:    0
    size:5.000000, time:2.500000
    size:2.000000, time:0.000000,  executed if:(not inlined)
    size:5.000000, time:4.000000,  nonconst if:(op2 changed)
    size:24.500000, time:1.601894,  executed if:(op2 != 0)
    size:4.000000, time:0.365936,  executed if:(op2 != 0),  nonconst if:(op3 changed) && (op2 != 0)
    size:5.000000, time:0.276370,  executed if:(op3 != 0) && (op2 != 0)
    size:3.500000, time:0.323745,  executed if:(op2 != 0) && (not inlined)
    size:0.500000, time:0.024261,  executed if:(op3 == 0) && (op2 != 0) && (not inlined)
    size:0.500000, time:0.024261,  executed if:(op3 == 0) && (op2 != 0)
    size:1.000000, time:0.023898,  executed if:(op3 != 0) && (op2 != 0),  nonconst if:(op2 changed) && (op3 != 0) && (op2 != 0)
    size:2.000000, time:0.043460,  executed if:(op2 != 0),  nonconst if:(op2 changed) && (op2 != 0)
    size:5.000000, time:1.675010,  executed if:(op2 == 0)
  calls:
    vPortExitCritical/26 function body not available
      loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
    vPortEnterCritical/25 function body not available
      loop depth: 0 freq:0.02 size: 1 time: 10 predicate: (op2 != 0)
    uxTaskResetEventItemValue/24 function body not available
      loop depth: 0 freq:0.05 size: 2 time: 11 predicate: (op2 != 0)
    xTaskResumeAll/23 function body not available
      loop depth: 0 freq:0.11 size: 2 time: 11 predicate: (op2 != 0)
    vTaskPlaceOnUnorderedEventList/22 function body not available
      loop depth: 0 freq:0.02 size: 4 time: 13 predicate: (op3 != 0) && (op2 != 0)
    xEventGroupSetBits/10 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.11 size: 3 time: 12callee size:25 stack: 0 predicate: (op2 != 0)
    vTaskSuspendAll/21 function body not available
      loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op2 != 0)
    xTaskGetSchedulerState/20 function body not available
      loop depth: 0 freq:0.16 size: 2 time: 11 predicate: (op2 != 0)

IPA function summary for xEventGroupCreate/4 inlinable
  global time:     22.416400
  self size:       11
  global size:     11
  min size:       10
  self stack:      0
  global stack:    0
    size:3.000000, time:2.534700
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    vListInitialise/19 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11
    pvPortMalloc/18 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant

Symbol table:

prvTestWaitCondition/44 (prvTestWaitCondition) @05dbf380
  Type: function definition analyzed
  Visibility:
  next sharing asm name: 14
  References: 
  Referring: 
  Function prvTestWaitCondition/44 is inline copy in xEventGroupWaitBits/6
  Clone of prvTestWaitCondition/14
  Availability: local
  Function flags: count:23563 (estimated locally) body local optimize_size
  Called by: xEventGroupWaitBits/6 (inlined) (23563 (estimated locally),0.08 per call) 
  Calls: 
xEventGroupSetBits.part.0/39 (xEventGroupSetBits.part.0) @05dbf0e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Function xEventGroupSetBits.part.0/39 is inline copy in xEventGroupSetBits/10
  Availability: local
  Function flags: count:52886 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: xEventGroupSetBits/10 (inlined) (52886 (estimated locally),0.23 per call) 
  Calls: vTaskSuspendAll/21 (52886 (estimated locally),0.23 per call) vTaskRemoveFromUnorderedEventList/28 (179716 (estimated locally),0.78 per call) xTaskResumeAll/23 (52886 (estimated locally),0.23 per call) 
xEventGroupClearBits.part.0/36 (xEventGroupClearBits.part.0) @05db9a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Function xEventGroupClearBits.part.0/36 is inline copy in xEventGroupClearBits/7
  Availability: local
  Function flags: count:52886 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: xEventGroupClearBits/7 (inlined) (52886 (estimated locally),0.23 per call) 
  Calls: vPortEnterCritical/25 (52886 (estimated locally),0.23 per call) vPortExitCritical/26 (52886 (estimated locally),0.23 per call) 
vPortFree/29 (vPortFree) @05ea4b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call) 
  Calls: 
vTaskRemoveFromUnorderedEventList/28 (vTaskRemoveFromUnorderedEventList) @05ea49a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vEventGroupDelete/11 (1030048 (estimated locally),4.46 per call) xEventGroupSetBits.part.0/39 (179716 (estimated locally),0.78 per call) 
  Calls: 
xTimerPendFunctionCallFromISR/27 (xTimerPendFunctionCallFromISR) @05ea4460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSetBitsFromISR/15 (1073741824 (estimated locally),1.00 per call) xEventGroupClearBitsFromISR/8 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
vPortExitCritical/26 (vPortExitCritical) @05e83d20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (52886 (estimated locally),0.23 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call) 
  Calls: 
vPortEnterCritical/25 (vPortEnterCritical) @05e83c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSync/5 (3888 (estimated locally),0.02 per call) xEventGroupClearBits.part.0/36 (52886 (estimated locally),0.23 per call) xEventGroupWaitBits/6 (3888 (estimated locally),0.01 per call) 
  Calls: 
uxTaskResetEventItemValue/24 (uxTaskResetEventItemValue) @05e83b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSync/5 (11782 (estimated locally),0.05 per call) xEventGroupWaitBits/6 (11782 (estimated locally),0.04 per call) 
  Calls: 
xTaskResumeAll/23 (xTaskResumeAll) @05e83a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vEventGroupDelete/11 (63439 (estimated locally),0.27 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (52886 (estimated locally),0.23 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call) 
  Calls: 
vTaskPlaceOnUnorderedEventList/22 (vTaskPlaceOnUnorderedEventList) @05e839a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSync/5 (5132 (estimated locally),0.02 per call) xEventGroupWaitBits/6 (5891 (estimated locally),0.02 per call) 
  Calls: 
vTaskSuspendAll/21 (vTaskSuspendAll) @05e838c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: vEventGroupDelete/11 (123389 (estimated locally),0.53 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) xEventGroupSetBits.part.0/39 (52886 (estimated locally),0.23 per call) xEventGroupWaitBits/6 (23563 (estimated locally),0.08 per call) 
  Calls: 
xTaskGetSchedulerState/20 (xTaskGetSchedulerState) @05e837e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupSync/5 (35433 (estimated locally),0.16 per call) xEventGroupWaitBits/6 (35433 (estimated locally),0.12 per call) 
  Calls: 
vListInitialise/19 (vListInitialise) @05e83460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupCreate/4 (574129754 (estimated locally),0.53 per call) 
  Calls: 
pvPortMalloc/18 (pvPortMalloc) @05e83380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: xEventGroupCreate/4 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
vEventGroupSetNumber/17 (vEventGroupSetNumber) @05e77e00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
uxEventGroupGetNumber/16 (uxEventGroupGetNumber) @05e778c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xEventGroupSetBitsFromISR/15 (xEventGroupSetBitsFromISR) @05e772a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: vEventGroupSetBitsCallback/12 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call) 
prvTestWaitCondition/14 (prvTestWaitCondition) @05e77d20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  previous sharing asm name: 44
  References: 
  Referring: 
  Function prvTestWaitCondition/14 is inline copy in xEventGroupWaitBits/6
  Availability: local
  Function flags: count:3888 (estimated locally) body local optimize_size
  Called by: xEventGroupWaitBits/6 (inlined) (3888 (estimated locally),0.01 per call) 
  Calls: 
vEventGroupClearBitsCallback/13 (vEventGroupClearBitsCallback) @05e77a80
  Type: function definition analyzed
  Visibility: externally_visible public
  Address is taken.
  References: 
  Referring: xEventGroupClearBitsFromISR/8 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: xEventGroupClearBits/7 (1073741824 (estimated locally),1.00 per call) 
vEventGroupSetBitsCallback/12 (vEventGroupSetBitsCallback) @05e777e0
  Type: function definition analyzed
  Visibility: externally_visible public
  Address is taken.
  References: 
  Referring: xEventGroupSetBitsFromISR/15 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: xEventGroupSetBits/10 (1073741824 (estimated locally),1.00 per call) 
vEventGroupDelete/11 (vEventGroupDelete) @05e77540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:230763 (estimated locally) body optimize_size
  Called by: 
  Calls: xTaskResumeAll/23 (63439 (estimated locally),0.27 per call) vPortFree/29 (63439 (estimated locally),0.27 per call) vTaskRemoveFromUnorderedEventList/28 (1030048 (estimated locally),4.46 per call) vTaskSuspendAll/21 (123389 (estimated locally),0.53 per call) 
xEventGroupSetBits/10 (xEventGroupSetBits) @05e771c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:228942 (estimated locally) body optimize_size
  Called by: vEventGroupSetBitsCallback/12 (1073741824 (estimated locally),1.00 per call) xEventGroupSync/5 (23563 (estimated locally),0.11 per call) 
  Calls: xEventGroupSetBits.part.0/39 (inlined) (52886 (estimated locally),0.23 per call) 
xEventGroupGetBitsFromISR/9 (xEventGroupGetBitsFromISR) @05e32a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
xEventGroupClearBitsFromISR/8 (xEventGroupClearBitsFromISR) @05e320e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: vEventGroupClearBitsCallback/13 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: xTimerPendFunctionCallFromISR/27 (1073741824 (estimated locally),1.00 per call) 
xEventGroupClearBits/7 (xEventGroupClearBits) @05e32d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:228942 (estimated locally) body optimize_size
  Called by: vEventGroupClearBitsCallback/13 (1073741824 (estimated locally),1.00 per call) 
  Calls: xEventGroupClearBits.part.0/36 (inlined) (52886 (estimated locally),0.23 per call) 
xEventGroupWaitBits/6 (xEventGroupWaitBits) @05e329a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:306783 (estimated locally) body optimize_size
  Called by: 
  Calls: vPortExitCritical/26 (3888 (estimated locally),0.01 per call) prvTestWaitCondition/14 (inlined) (3888 (estimated locally),0.01 per call) vPortEnterCritical/25 (3888 (estimated locally),0.01 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.04 per call) xTaskResumeAll/23 (23563 (estimated locally),0.08 per call) vTaskPlaceOnUnorderedEventList/22 (5891 (estimated locally),0.02 per call) prvTestWaitCondition/44 (inlined) (23563 (estimated locally),0.08 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.08 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.12 per call) 
xEventGroupSync/5 (xEventGroupSync) @05e32460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:214748 (estimated locally) body optimize_size
  Called by: 
  Calls: vPortExitCritical/26 (3888 (estimated locally),0.02 per call) vPortEnterCritical/25 (3888 (estimated locally),0.02 per call) uxTaskResetEventItemValue/24 (11782 (estimated locally),0.05 per call) xTaskResumeAll/23 (23563 (estimated locally),0.11 per call) vTaskPlaceOnUnorderedEventList/22 (5132 (estimated locally),0.02 per call) xEventGroupSetBits/10 (23563 (estimated locally),0.11 per call) vTaskSuspendAll/21 (23563 (estimated locally),0.11 per call) xTaskGetSchedulerState/20 (35433 (estimated locally),0.16 per call) 
xEventGroupCreate/4 (xEventGroupCreate) @05e32000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: vListInitialise/19 (574129754 (estimated locally),0.53 per call) pvPortMalloc/18 (1073741824 (estimated locally),1.00 per call) 

;; Function xEventGroupCreate (xEventGroupCreate, funcdef_no=4, decl_uid=6271, cgraph_uid=5, symbol_order=4)

xEventGroupCreate ()
{
  struct EventGroup_t * pxEventBits;
  struct List_t * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pxEventBits_5 = pvPortMalloc (28);
  # DEBUG pxEventBits => pxEventBits_5
  # DEBUG BEGIN_STMT
  if (pxEventBits_5 != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  pxEventBits_5->uxEventBits = 0;
  # DEBUG BEGIN_STMT
  _1 = &pxEventBits_5->xTasksWaitingForBits;
  vListInitialise (_1);
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return pxEventBits_5;

}



;; Function xEventGroupWaitBits (xEventGroupWaitBits, funcdef_no=6, decl_uid=6277, cgraph_uid=7, symbol_order=6)


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


Merging blocks 4 and 34
Merging blocks 7 and 35
Merging blocks 10 and 36
Merging blocks 14 and 37
Merging blocks 15 and 39
Merging blocks 28 and 46
Merging blocks 44 and 38
Merging blocks 51 and 45
;; 5 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 4
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 3
;;  header 7, latch 7
;;  depth 1, outer 0
;;  nodes: 7
;;
;; Loop 2
;;  header 10, latch 10
;;  depth 1, outer 0
;;  nodes: 10
;;
;; 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 8 }
;; 6 succs { 7 }
;; 7 succs { 7 }
;; 8 succs { 9 11 }
;; 9 succs { 10 }
;; 10 succs { 10 }
;; 11 succs { 15 12 }
;; 12 succs { 15 13 }
;; 13 succs { 14 }
;; 14 succs { 14 }
;; 15 succs { 16 18 }
;; 16 succs { 17 20 }
;; 17 succs { 20 }
;; 18 succs { 19 20 }
;; 19 succs { 20 }
;; 20 succs { 21 23 }
;; 21 succs { 22 29 }
;; 22 succs { 29 }
;; 23 succs { 29 24 }
;; 24 succs { 25 26 }
;; 25 succs { 26 }
;; 26 succs { 27 28 }
;; 27 succs { 28 }
;; 28 succs { 29 }
;; 29 succs { 30 43 }
;; 30 succs { 31 32 }
;; 31 succs { 32 }
;; 32 succs { 33 42 }
;; 33 succs { 34 36 }
;; 34 succs { 35 38 }
;; 35 succs { 38 }
;; 36 succs { 37 38 }
;; 37 succs { 38 }
;; 38 succs { 39 41 }
;; 39 succs { 40 41 }
;; 40 succs { 41 }
;; 41 succs { 42 }
;; 42 succs { 43 }
;; 43 succs { 1 }
xEventGroupWaitBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait)
{
  BaseType_t xWaitConditionMet;
  BaseType_t D.6657;
  BaseType_t xWaitConditionMet;
  BaseType_t D.6652;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  const EventBits_t uxCurrentEventBits;
  BaseType_t xAlreadyYielded;
  BaseType_t xWaitConditionMet;
  EventBits_t uxControlBits;
  EventBits_t uxReturn;
  long unsigned int _1;
  long int _2;
  long unsigned int _3;
  long unsigned int _4;
  struct List_t * _5;
  long unsigned int _6;
  long unsigned int _7;
  long int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _55;
  long unsigned int _56;
  long unsigned int _58;
  long unsigned int _59;

  <bb 2> [local count: 306783]:
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_22(D)
  # DEBUG BEGIN_STMT
  # DEBUG uxControlBits => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG xTimeoutOccurred => 0
  # DEBUG BEGIN_STMT
  if (xEventGroup_22(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_45 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_45

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

  <bb 5> [local count: 214748]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = uxBitsToWaitFor_23(D) & 4278190080;
  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_30 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_30

  <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: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (uxBitsToWaitFor_23(D) == 0)
    goto <bb 9>; [67.00%]
  else
    goto <bb 11>; [33.00%]

  <bb 9> [local count: 71941]:
  # 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_49 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_49

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

  <bb 11> [local count: 35433]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 != 0)
    goto <bb 15>; [33.00%]
  else
    goto <bb 12>; [67.00%]

  <bb 12> [local count: 23740]:
  if (xTicksToWait_26(D) == 0)
    goto <bb 15>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 13> [local count: 11870]:
  # 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_50 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_50

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

  <bb 15> [local count: 23563]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  uxCurrentEventBits_28 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  # DEBUG BEGIN_STMT
  # DEBUG uxCurrentEventBits => uxCurrentEventBits_28
  # DEBUG uxBitsToWaitFor => uxBitsToWaitFor_23(D)
  # DEBUG xWaitForAllBits => xWaitForAllBits_29(D)
  # DEBUG INLINE_ENTRY prvTestWaitCondition
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 0
  # DEBUG BEGIN_STMT
  if (xWaitForAllBits_29(D) == 0)
    goto <bb 16>; [50.00%]
  else
    goto <bb 18>; [50.00%]

  <bb 16> [local count: 11782]:
  # DEBUG BEGIN_STMT
  _55 = uxBitsToWaitFor_23(D) & uxCurrentEventBits_28;
  if (_55 != 0)
    goto <bb 17>; [50.00%]
  else
    goto <bb 20>; [50.00%]

  <bb 17> [local count: 5891]:
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 1
  goto <bb 20>; [100.00%]

  <bb 18> [local count: 11782]:
  # DEBUG BEGIN_STMT
  _56 = uxBitsToWaitFor_23(D) & uxCurrentEventBits_28;
  if (uxBitsToWaitFor_23(D) == _56)
    goto <bb 19>; [34.00%]
  else
    goto <bb 20>; [66.00%]

  <bb 19> [local count: 4006]:
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 1

  <bb 20> [local count: 23563]:
  # xWaitConditionMet_57 = PHI <0(16), 1(17), 0(18), 1(19)>
  # DEBUG xWaitConditionMet => xWaitConditionMet_57
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _61 = xWaitConditionMet_57;
  # DEBUG uxCurrentEventBits => NULL
  # DEBUG uxBitsToWaitFor => NULL
  # DEBUG xWaitForAllBits => NULL
  # DEBUG xWaitConditionMet => NULL
  xWaitConditionMet_31 = _61;
  # DEBUG xWaitConditionMet => xWaitConditionMet_31
  # DEBUG BEGIN_STMT
  if (xWaitConditionMet_31 != 0)
    goto <bb 21>; [50.00%]
  else
    goto <bb 23>; [50.00%]

  <bb 21> [local count: 11782]:
  # DEBUG BEGIN_STMT
  # DEBUG uxReturn => uxCurrentEventBits_28
  # DEBUG BEGIN_STMT
  # DEBUG xTicksToWait => 0
  # DEBUG BEGIN_STMT
  if (xClearOnExit_32(D) != 0)
    goto <bb 22>; [50.00%]
  else
    goto <bb 29>; [50.00%]

  <bb 22> [local count: 5891]:
  # DEBUG BEGIN_STMT
  _3 = ~uxBitsToWaitFor_23(D);
  _4 = _3 & uxCurrentEventBits_28;
  MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4;
  goto <bb 29>; [100.00%]

  <bb 23> [local count: 11782]:
  # DEBUG BEGIN_STMT
  if (xTicksToWait_26(D) == 0)
    goto <bb 29>; [50.00%]
  else
    goto <bb 24>; [50.00%]

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

  <bb 25> [local count: 2945]:
  # DEBUG BEGIN_STMT
  # DEBUG uxControlBits => 16777216

  <bb 26> [local count: 5891]:
  # uxControlBits_15 = PHI <0(24), 16777216(25)>
  # DEBUG uxControlBits => uxControlBits_15
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xWaitForAllBits_29(D) != 0)
    goto <bb 27>; [50.00%]
  else
    goto <bb 28>; [50.00%]

  <bb 27> [local count: 2945]:
  # DEBUG BEGIN_STMT
  uxControlBits_33 = uxControlBits_15 | 67108864;
  # DEBUG uxControlBits => uxControlBits_33

  <bb 28> [local count: 5891]:
  # uxControlBits_16 = PHI <uxControlBits_15(26), uxControlBits_33(27)>
  # DEBUG uxControlBits => uxControlBits_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = &MEM[(struct EventGroup_t *)xEventGroup_22(D)].xTasksWaitingForBits;
  _6 = uxControlBits_16 | uxBitsToWaitFor_23(D);
  vTaskPlaceOnUnorderedEventList (_5, _6, xTicksToWait_26(D));
  # DEBUG BEGIN_STMT
  # DEBUG uxReturn => 0

  <bb 29> [local count: 23563]:
  # xTicksToWait_11 = PHI <0(22), xTicksToWait_26(D)(23), xTicksToWait_26(D)(28), 0(21)>
  # uxReturn_12 = PHI <uxCurrentEventBits_28(22), uxCurrentEventBits_28(23), 0(28), uxCurrentEventBits_28(21)>
  # DEBUG xTimeoutOccurred => NULL
  # DEBUG uxReturn => uxReturn_12
  # DEBUG xTicksToWait => xTicksToWait_11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xAlreadyYielded_37 = xTaskResumeAll ();
  # DEBUG xAlreadyYielded => xAlreadyYielded_37
  # DEBUG BEGIN_STMT
  if (xTicksToWait_11 != 0)
    goto <bb 30>; [50.00%]
  else
    goto <bb 43>; [50.00%]

  <bb 30> [local count: 11782]:
  # DEBUG BEGIN_STMT
  if (xAlreadyYielded_37 == 0)
    goto <bb 31>; [50.00%]
  else
    goto <bb 32>; [50.00%]

  <bb 31> [local count: 5891]:
  # 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 32> [local count: 11782]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxReturn_42 = uxTaskResetEventItemValue ();
  # DEBUG uxReturn => uxReturn_42
  # DEBUG BEGIN_STMT
  _7 = uxReturn_42 & 33554432;
  if (_7 == 0)
    goto <bb 33>; [33.00%]
  else
    goto <bb 42>; [67.00%]

  <bb 33> [local count: 3888]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  uxReturn_44 = MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits;
  # DEBUG uxReturn => uxReturn_44
  # DEBUG BEGIN_STMT
  # DEBUG uxCurrentEventBits => uxReturn_44
  # DEBUG uxBitsToWaitFor => uxBitsToWaitFor_23(D)
  # DEBUG xWaitForAllBits => xWaitForAllBits_29(D)
  # DEBUG INLINE_ENTRY prvTestWaitCondition
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 0
  # DEBUG BEGIN_STMT
  if (xWaitForAllBits_29(D) == 0)
    goto <bb 34>; [50.00%]
  else
    goto <bb 36>; [50.00%]

  <bb 34> [local count: 1944]:
  # DEBUG BEGIN_STMT
  _58 = uxBitsToWaitFor_23(D) & uxReturn_44;
  if (_58 != 0)
    goto <bb 35>; [50.00%]
  else
    goto <bb 38>; [50.00%]

  <bb 35> [local count: 972]:
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 1
  goto <bb 38>; [100.00%]

  <bb 36> [local count: 1944]:
  # DEBUG BEGIN_STMT
  _59 = uxBitsToWaitFor_23(D) & uxReturn_44;
  if (uxBitsToWaitFor_23(D) == _59)
    goto <bb 37>; [34.00%]
  else
    goto <bb 38>; [66.00%]

  <bb 37> [local count: 661]:
  # DEBUG BEGIN_STMT
  # DEBUG xWaitConditionMet => 1

  <bb 38> [local count: 3888]:
  # xWaitConditionMet_60 = PHI <0(34), 1(35), 0(36), 1(37)>
  # DEBUG xWaitConditionMet => xWaitConditionMet_60
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _62 = xWaitConditionMet_60;
  # DEBUG uxCurrentEventBits => NULL
  # DEBUG uxBitsToWaitFor => NULL
  # DEBUG xWaitForAllBits => NULL
  # DEBUG xWaitConditionMet => NULL
  _8 = _62;
  if (_8 != 0)
    goto <bb 39>; [50.00%]
  else
    goto <bb 41>; [50.00%]

  <bb 39> [local count: 1944]:
  # DEBUG BEGIN_STMT
  if (xClearOnExit_32(D) != 0)
    goto <bb 40>; [50.00%]
  else
    goto <bb 41>; [50.00%]

  <bb 40> [local count: 972]:
  # DEBUG BEGIN_STMT
  _9 = ~uxBitsToWaitFor_23(D);
  _10 = _9 & uxReturn_44;
  MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10;

  <bb 41> [local count: 3888]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG xTimeoutOccurred => 1
  # DEBUG BEGIN_STMT
  vPortExitCritical ();

  <bb 42> [local count: 11782]:
  # uxReturn_13 = PHI <uxReturn_42(32), uxReturn_44(41)>
  # DEBUG uxReturn => uxReturn_13
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxReturn_48 = uxReturn_13 & 16777215;
  # DEBUG uxReturn => uxReturn_48

  <bb 43> [local count: 23563]:
  # uxReturn_14 = PHI <uxReturn_12(29), uxReturn_48(42)>
  # DEBUG uxReturn => uxReturn_14
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return uxReturn_14;

}



;; Function xEventGroupClearBits (xEventGroupClearBits, funcdef_no=7, decl_uid=6280, cgraph_uid=8, symbol_order=7)


Symbols to be put in SSA form
{ D.6574 D.6670 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 14
Number of blocks to update: 13 ( 93%)


Merging blocks 4 and 9
Merging blocks 7 and 10
Removing basic block 8
Removing basic block 12
Merging blocks 13 and 11
;; 3 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8
;;
;; Loop 2
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 1
;;  header 7, latch 7
;;  depth 1, outer 0
;;  nodes: 7
;; 2 succs { 3 5 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 6 8 }
;; 6 succs { 7 }
;; 7 succs { 7 }
;; 8 succs { 1 }
xEventGroupClearBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
{
  EventBits_t uxReturn;
  EventBits_t D.6670;
  EventBits_t D.6607;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  long unsigned int _1;
  long unsigned int _12;
  long unsigned int _13;

  <bb 2> [local count: 228942]:
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_3(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (xEventGroup_3(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_7 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_7

  <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 = uxBitsToClear_5(D) & 4278190080;
  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_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
  goto <bb 7>; [100.00%]

  <bb 8> [local count: 52886]:
  # DEBUG xEventGroup => xEventGroup_3(D)
  # DEBUG uxBitsToClear => uxBitsToClear_5(D)
  # DEBUG INLINE_ENTRY xEventGroupClearBits
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxReturn_11 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  # DEBUG uxReturn => uxReturn_11
  # DEBUG BEGIN_STMT
  _12 = ~uxBitsToClear_5(D);
  _13 = uxReturn_11 & _12;
  MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits = _13;
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  _17 = uxReturn_11;
  # DEBUG xEventGroup => NULL
  # DEBUG uxBitsToClear => NULL
  # DEBUG pxEventBits => NULL
  # DEBUG uxReturn => NULL
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulNewBASEPRI => NULL
  _2 = _17;
  return _2;

}



;; Function vEventGroupClearBitsCallback (vEventGroupClearBitsCallback, funcdef_no=13, decl_uid=6305, cgraph_uid=14, symbol_order=13)

vEventGroupClearBitsCallback (void * pvEventGroup, const uint32_t ulBitsToClear)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  xEventGroupClearBits (pvEventGroup_2(D), ulBitsToClear_3(D));
  return;

}



;; Function xEventGroupClearBitsFromISR (xEventGroupClearBitsFromISR, funcdef_no=8, decl_uid=6283, cgraph_uid=9, symbol_order=8)

xEventGroupClearBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToClear)
{
  BaseType_t xReturn;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xReturn_5 = xTimerPendFunctionCallFromISR (vEventGroupClearBitsCallback, xEventGroup_2(D), uxBitsToClear_3(D), 0B);
  # DEBUG xReturn => xReturn_5
  # DEBUG BEGIN_STMT
  return xReturn_5;

}



;; Function xEventGroupGetBitsFromISR (xEventGroupGetBitsFromISR, funcdef_no=9, decl_uid=6297, cgraph_uid=10, symbol_order=9)

xEventGroupGetBitsFromISR (struct EventGroupDef_t * xEventGroup)
{
  uint32_t ulOriginalBASEPRI;
  uint32_t ulNewBASEPRI;
  EventBits_t uxReturn;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_1(D)
  # DEBUG BEGIN_STMT
  # 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_4, "=r" ulNewBASEPRI_5 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_5
  # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_4
  # DEBUG BEGIN_STMT
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulOriginalBASEPRI => NULL
  # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_4
  # DEBUG BEGIN_STMT
  uxReturn_3 = MEM[(const struct EventGroup_t *)xEventGroup_1(D)].uxEventBits;
  # DEBUG uxReturn => uxReturn_3
  # DEBUG BEGIN_STMT
  # DEBUG ulNewMaskValue => ulOriginalBASEPRI_4
  # DEBUG INLINE_ENTRY vPortSetBASEPRI
  # DEBUG BEGIN_STMT
  __asm__ __volatile__("	msr basepri, %0	" :  : "r" ulOriginalBASEPRI_4 : "memory");
  # DEBUG ulNewMaskValue => NULL
  # DEBUG BEGIN_STMT
  return uxReturn_3;

}



;; Function xEventGroupSetBits (xEventGroupSetBits, funcdef_no=10, decl_uid=6286, cgraph_uid=11, symbol_order=10)


Symbols to be put in SSA form
{ D.6578 D.6696 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 23
Number of blocks to update: 22 ( 96%)


Merging blocks 4 and 9
Merging blocks 7 and 10
Removing basic block 8
Removing basic block 12
Merging blocks 22 and 11
;; 5 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
;;
;; Loop 3
;;  header 4, latch 4
;;  depth 1, outer 0
;;  nodes: 4
;;
;; Loop 2
;;  header 7, latch 7
;;  depth 1, outer 0
;;  nodes: 7
;;
;; Loop 4
;;  header 16, latch 15
;;  depth 1, outer 0
;;  nodes: 16 15 10 11 14 12 13 9
;; 2 succs { 3 5 }
;; 3 succs { 4 }
;; 4 succs { 4 }
;; 5 succs { 6 8 }
;; 6 succs { 7 }
;; 7 succs { 7 }
;; 8 succs { 16 }
;; 9 succs { 10 11 }
;; 10 succs { 12 15 }
;; 11 succs { 12 15 }
;; 12 succs { 13 14 }
;; 13 succs { 14 }
;; 14 succs { 15 }
;; 15 succs { 16 }
;; 16 succs { 9 17 }
;; 17 succs { 1 }
xEventGroupSetBits (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet)
{
  EventBits_t uxBitsWaitedFor;
  EventBits_t uxBitsToClear;
  const struct ListItem_t * pxListEnd;
  struct ListItem_t * pxNext;
  struct ListItem_t * pxListItem;
  EventBits_t D.6696;
  EventBits_t D.6634;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  long unsigned int _1;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _31;
  long unsigned int _32;
  long unsigned int _33;

  <bb 2> [local count: 228942]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG uxBitsToClear => 0
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_3(D)
  # DEBUG BEGIN_STMT
  # DEBUG xMatchFound => 0
  # DEBUG BEGIN_STMT
  if (xEventGroup_3(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_7 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_7

  <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 = uxBitsToSet_4(D) & 4278190080;
  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_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
  goto <bb 7>; [100.00%]

  <bb 8> [local count: 52886]:
  # DEBUG xEventGroup => xEventGroup_3(D)
  # DEBUG uxBitsToSet => uxBitsToSet_4(D)
  # DEBUG INLINE_ENTRY xEventGroupSetBits
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => &MEM[(struct EventGroup_t *)xEventGroup_3(D)].xTasksWaitingForBits
  # DEBUG pxList => D#1
  # DEBUG BEGIN_STMT
  pxListEnd_11 = &MEM[(const struct List_t *)xEventGroup_3(D) + 4B].xListEnd;
  # DEBUG pxListEnd => pxListEnd_11
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pxListItem_12 = MEM[(const struct List_t *)xEventGroup_3(D) + 4B].xListEnd.pxNext;
  # DEBUG pxListItem => pxListItem_12
  # DEBUG BEGIN_STMT
  _13 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _14 = uxBitsToSet_4(D) | _13;
  MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits = _14;
  # DEBUG BEGIN_STMT
  goto <bb 16>; [100.00%]

  <bb 9> [local count: 427893]:
  # DEBUG BEGIN_STMT
  pxNext_16 = pxListItem_15->pxNext;
  # DEBUG pxNext => pxNext_16
  # DEBUG BEGIN_STMT
  uxBitsWaitedFor_17 = pxListItem_15->xItemValue;
  # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_17
  # DEBUG BEGIN_STMT
  # DEBUG xMatchFound => 0
  # DEBUG BEGIN_STMT
  # DEBUG uxControlBits => uxBitsWaitedFor_17 & 4278190080
  # DEBUG BEGIN_STMT
  uxBitsWaitedFor_18 = uxBitsWaitedFor_17 & 16777215;
  # DEBUG uxBitsWaitedFor => uxBitsWaitedFor_18
  # DEBUG BEGIN_STMT
  _19 = uxBitsWaitedFor_17 & 67108864;
  if (_19 == 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 10> [local count: 213947]:
  # DEBUG BEGIN_STMT
  _20 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _21 = uxBitsWaitedFor_18 & _20;
  if (_21 != 0)
    goto <bb 12>; [50.00%]
  else
    goto <bb 15>; [50.00%]

  <bb 11> [local count: 213947]:
  # DEBUG BEGIN_STMT
  _22 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _23 = uxBitsWaitedFor_18 & _22;
  if (uxBitsWaitedFor_18 == _23)
    goto <bb 12>; [34.00%]
  else
    goto <bb 15>; [66.00%]

  <bb 12> [local count: 179715]:
  # DEBUG xMatchFound => NULL
  # DEBUG BEGIN_STMT
  _24 = uxBitsWaitedFor_17 & 16777216;
  if (_24 != 0)
    goto <bb 13>; [50.00%]
  else
    goto <bb 14>; [50.00%]

  <bb 13> [local count: 89858]:
  # DEBUG BEGIN_STMT
  uxBitsToClear_26 = uxBitsWaitedFor_18 | uxBitsToClear_25;
  # DEBUG uxBitsToClear => uxBitsToClear_26

  <bb 14> [local count: 179715]:
  # uxBitsToClear_34 = PHI <uxBitsToClear_25(12), uxBitsToClear_26(13)>
  # DEBUG uxBitsToClear => uxBitsToClear_34
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _27 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _28 = _27 | 33554432;
  vTaskRemoveFromUnorderedEventList (pxListItem_15, _28);

  <bb 15> [local count: 427893]:
  # pxListItem_35 = PHI <pxNext_16(10), pxNext_16(11), pxNext_16(14)>
  # uxBitsToClear_36 = PHI <uxBitsToClear_25(10), uxBitsToClear_25(11), uxBitsToClear_34(14)>

  <bb 16> [local count: 480779]:
  # pxListItem_15 = PHI <pxListItem_12(8), pxListItem_35(15)>
  # uxBitsToClear_25 = PHI <0(8), uxBitsToClear_36(15)>
  # DEBUG xMatchFound => NULL
  # DEBUG uxBitsToClear => uxBitsToClear_25
  # DEBUG pxListItem => pxListItem_15
  # DEBUG BEGIN_STMT
  if (pxListEnd_11 != pxListItem_15)
    goto <bb 9>; [89.00%]
  else
    goto <bb 17>; [11.00%]

  <bb 17> [local count: 52886]:
  # uxBitsToClear_30 = PHI <uxBitsToClear_25(16)>
  # DEBUG BEGIN_STMT
  _29 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _31 = ~uxBitsToClear_30;
  _32 = _29 & _31;
  MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits = _32;
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  # DEBUG BEGIN_STMT
  _33 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits;
  _43 = _33;
  # DEBUG xEventGroup => NULL
  # DEBUG uxBitsToSet => NULL
  # DEBUG pxListItem => NULL
  # DEBUG pxNext => NULL
  # DEBUG pxListEnd => NULL
  # DEBUG pxList => NULL
  # DEBUG uxBitsToClear => NULL
  # DEBUG uxBitsWaitedFor => NULL
  # DEBUG uxControlBits => NULL
  # DEBUG pxEventBits => NULL
  # DEBUG xMatchFound => NULL
  # DEBUG ulNewBASEPRI => NULL
  # DEBUG ulNewBASEPRI => NULL
  _6 = _43;
  return _6;

}



;; Function xEventGroupSync (xEventGroupSync, funcdef_no=5, decl_uid=6295, cgraph_uid=6, symbol_order=5)

xEventGroupSync (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  BaseType_t xAlreadyYielded;
  EventBits_t uxReturn;
  EventBits_t uxOriginalBitValue;
  long unsigned int _1;
  long int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  struct List_t * _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;

  <bb 2> [local count: 214748]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_23(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG xTimeoutOccurred => 0
  # DEBUG BEGIN_STMT
  _1 = uxBitsToWaitFor_24(D) & 4278190080;
  if (_1 != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 5>; [50.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_47 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_47

  <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: 107374]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (uxBitsToWaitFor_24(D) == 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 8>; [33.00%]

  <bb 6> [local count: 71941]:
  # 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_48 : "i" 16 : "memory");
  # DEBUG ulNewBASEPRI => ulNewBASEPRI_48

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

  <bb 27> [local count: 719407023]:
  goto <bb 7>; [100.00%]

  <bb 8> [local count: 35433]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = xTaskGetSchedulerState ();
  if (_2 != 0)
    goto <bb 12>; [33.00%]
  else
    goto <bb 9>; [67.00%]

  <bb 9> [local count: 23740]:
  if (xTicksToWait_27(D) == 0)
    goto <bb 12>; [50.00%]
  else
    goto <bb 10>; [50.00%]

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

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

  <bb 28> [local count: 118702159]:
  goto <bb 11>; [100.00%]

  <bb 12> [local count: 23563]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  uxOriginalBitValue_29 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  # DEBUG uxOriginalBitValue => uxOriginalBitValue_29
  # DEBUG BEGIN_STMT
  xEventGroupSetBits (xEventGroup_23(D), uxBitsToSet_30(D));
  # DEBUG BEGIN_STMT
  _3 = uxOriginalBitValue_29 | uxBitsToSet_30(D);
  _4 = _3 & uxBitsToWaitFor_24(D);
  if (_4 == uxBitsToWaitFor_24(D))
    goto <bb 13>; [34.00%]
  else
    goto <bb 14>; [66.00%]

  <bb 13> [local count: 8011]:
  # DEBUG BEGIN_STMT
  # DEBUG uxReturn => _3
  # DEBUG BEGIN_STMT
  _5 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  _6 = ~uxBitsToWaitFor_24(D);
  _7 = _5 & _6;
  MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _7;
  # DEBUG BEGIN_STMT
  # DEBUG xTicksToWait => 0
  goto <bb 17>; [100.00%]

  <bb 14> [local count: 15552]:
  # DEBUG BEGIN_STMT
  if (xTicksToWait_27(D) != 0)
    goto <bb 15>; [33.00%]
  else
    goto <bb 16>; [67.00%]

  <bb 15> [local count: 5132]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _8 = &MEM[(struct EventGroup_t *)xEventGroup_23(D)].xTasksWaitingForBits;
  _9 = uxBitsToWaitFor_24(D) | 83886080;
  vTaskPlaceOnUnorderedEventList (_8, _9, xTicksToWait_27(D));
  # DEBUG BEGIN_STMT
  # DEBUG uxReturn => 0
  goto <bb 17>; [100.00%]

  <bb 16> [local count: 10420]:
  # DEBUG BEGIN_STMT
  uxReturn_32 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  # DEBUG uxReturn => uxReturn_32
  # DEBUG BEGIN_STMT
  # DEBUG xTimeoutOccurred => 1

  <bb 17> [local count: 23563]:
  # xTicksToWait_14 = PHI <0(13), xTicksToWait_27(D)(15), 0(16)>
  # uxReturn_15 = PHI <_3(13), 0(15), uxReturn_32(16)>
  # DEBUG uxReturn => uxReturn_15
  # DEBUG xTicksToWait => xTicksToWait_14
  # DEBUG BEGIN_STMT
  xAlreadyYielded_36 = xTaskResumeAll ();
  # DEBUG xAlreadyYielded => xAlreadyYielded_36
  # DEBUG BEGIN_STMT
  if (xTicksToWait_14 != 0)
    goto <bb 18>; [50.00%]
  else
    goto <bb 25>; [50.00%]

  <bb 18> [local count: 11782]:
  # DEBUG BEGIN_STMT
  if (xAlreadyYielded_36 == 0)
    goto <bb 19>; [50.00%]
  else
    goto <bb 20>; [50.00%]

  <bb 19> [local count: 5891]:
  # 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: 11782]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxReturn_41 = uxTaskResetEventItemValue ();
  # DEBUG uxReturn => uxReturn_41
  # DEBUG BEGIN_STMT
  _10 = uxReturn_41 & 33554432;
  if (_10 == 0)
    goto <bb 21>; [33.00%]
  else
    goto <bb 24>; [67.00%]

  <bb 21> [local count: 3888]:
  # DEBUG BEGIN_STMT
  vPortEnterCritical ();
  # DEBUG BEGIN_STMT
  uxReturn_43 = MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits;
  # DEBUG uxReturn => uxReturn_43
  # DEBUG BEGIN_STMT
  _11 = uxBitsToWaitFor_24(D) & uxReturn_43;
  if (_11 == uxBitsToWaitFor_24(D))
    goto <bb 22>; [34.00%]
  else
    goto <bb 23>; [66.00%]

  <bb 22> [local count: 1322]:
  # DEBUG BEGIN_STMT
  _12 = ~uxBitsToWaitFor_24(D);
  _13 = _12 & uxReturn_43;
  MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13;

  <bb 23> [local count: 3888]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vPortExitCritical ();
  # DEBUG BEGIN_STMT
  # DEBUG xTimeoutOccurred => 1

  <bb 24> [local count: 11782]:
  # uxReturn_16 = PHI <uxReturn_41(20), uxReturn_43(23)>
  # DEBUG uxReturn => uxReturn_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  uxReturn_46 = uxReturn_16 & 16777215;
  # DEBUG uxReturn => uxReturn_46

  <bb 25> [local count: 23563]:
  # uxReturn_17 = PHI <uxReturn_15(17), uxReturn_46(24)>
  # DEBUG uxReturn => uxReturn_17
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return uxReturn_17;

}



;; Function vEventGroupSetBitsCallback (vEventGroupSetBitsCallback, funcdef_no=12, decl_uid=6302, cgraph_uid=13, symbol_order=12)

vEventGroupSetBitsCallback (void * pvEventGroup, const uint32_t ulBitsToSet)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  xEventGroupSetBits (pvEventGroup_2(D), ulBitsToSet_3(D));
  return;

}



;; Function vEventGroupDelete (vEventGroupDelete, funcdef_no=11, decl_uid=6299, cgraph_uid=12, symbol_order=11)

vEventGroupDelete (struct EventGroupDef_t * xEventGroup)
{
  uint32_t ulNewBASEPRI;
  uint32_t ulNewBASEPRI;
  struct xLIST_ITEM * _1;
  const struct MiniListItem_t * _2;
  long unsigned int _3;

  <bb 2> [local count: 230763]:
  # DEBUG BEGIN_STMT
  if (xEventGroup_5(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_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

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

  <bb 5> [local count: 123389]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_5(D)
  # DEBUG BEGIN_STMT
  # DEBUG D#2 => &MEM[(struct EventGroup_t *)xEventGroup_5(D)].xTasksWaitingForBits
  # DEBUG pxTasksWaitingForBits => D#2
  # DEBUG BEGIN_STMT
  vTaskSuspendAll ();
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 6> [local count: 1089998]:
  # DEBUG BEGIN_STMT
  _1 = MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd.pxNext;
  _2 = &MEM[(const struct List_t *)xEventGroup_5(D) + 4B].xListEnd;
  if (_1 == _2)
    goto <bb 7>; [5.50%]
  else
    goto <bb 9>; [94.50%]

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

  <bb 13> [local count: 599500022]:
  goto <bb 8>; [100.00%]

  <bb 9> [local count: 1030048]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  vTaskRemoveFromUnorderedEventList (_1, 33554432);

  <bb 10> [local count: 1153437]:
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(const struct List_t *)xEventGroup_5(D) + 4B].uxNumberOfItems;
  if (_3 != 0)
    goto <bb 6>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 11> [local count: 63439]:
  # DEBUG BEGIN_STMT
  vPortFree (xEventGroup_5(D));
  # DEBUG BEGIN_STMT
  xTaskResumeAll ();
  return;

}



;; Function xEventGroupSetBitsFromISR (xEventGroupSetBitsFromISR, funcdef_no=15, decl_uid=6290, cgraph_uid=16, symbol_order=15)

xEventGroupSetBitsFromISR (struct EventGroupDef_t * xEventGroup, const EventBits_t uxBitsToSet, BaseType_t * pxHigherPriorityTaskWoken)
{
  BaseType_t xReturn;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  xReturn_6 = xTimerPendFunctionCallFromISR (vEventGroupSetBitsCallback, xEventGroup_2(D), uxBitsToSet_3(D), pxHigherPriorityTaskWoken_4(D));
  # DEBUG xReturn => xReturn_6
  # DEBUG BEGIN_STMT
  return xReturn_6;

}



;; Function uxEventGroupGetNumber (uxEventGroupGetNumber, funcdef_no=16, decl_uid=6307, cgraph_uid=17, symbol_order=16)

uxEventGroupGetNumber (void * xEventGroup)
{
  UBaseType_t xReturn;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG pxEventBits => xEventGroup_2(D)
  # DEBUG BEGIN_STMT
  if (xEventGroup_2(D) == 0B)
    goto <bb 4>; [30.00%]
  else
    goto <bb 3>; [70.00%]

  <bb 3> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  xReturn_4 = MEM[(const struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber;
  # DEBUG xReturn => xReturn_4

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

}



;; Function vEventGroupSetNumber (vEventGroupSetNumber, funcdef_no=17, decl_uid=6310, cgraph_uid=18, symbol_order=17)

vEventGroupSetNumber (void * xEventGroup, UBaseType_t uxEventGroupNumber)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D);
  return;

}


