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) @05db3380 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) @05db30e0 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) @05dada80 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) @05e96b60 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) @05e969a0 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) @05e96460 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) @05e77d20 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) @05e77c40 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) @05e77b60 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) @05e77a80 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) @05e779a0 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) @05e778c0 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) @05e777e0 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) @05e77460 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) @05e77380 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) @05e6be00 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) @05e6b8c0 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) @05e6b2a0 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) @05e6bd20 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) @05e6ba80 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) @05e6b7e0 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) @05e6b540 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) @05e6b1c0 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) @05e27a80 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) @05e270e0 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) @05e27d20 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) @05e279a0 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) @05e27460 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) @05e27000 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; [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 ; [53.47%] else goto ; [46.53%] [local count: 574129754]: # DEBUG BEGIN_STMT pxEventBits_5->uxEventBits = 0; # DEBUG BEGIN_STMT _1 = &pxEventBits_5->xTasksWaitingForBits; vListInitialise (_1); # DEBUG BEGIN_STMT [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; [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 ; [30.00%] else goto ; [70.00%] [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 [local count: 920350134]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = uxBitsToWaitFor_23(D) & 4278190080; if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_30 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxBitsToWaitFor_23(D) == 0) goto ; [67.00%] else goto ; [33.00%] [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 [local count: 719407022]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 35433]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 23740]: if (xTicksToWait_26(D) == 0) goto ; [50.00%] else goto ; [50.00%] [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 [local count: 118702159]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [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 ; [50.00%] else goto ; [50.00%] [local count: 11782]: # DEBUG BEGIN_STMT _55 = uxBitsToWaitFor_23(D) & uxCurrentEventBits_28; if (_55 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 5891]: # DEBUG BEGIN_STMT # DEBUG xWaitConditionMet => 1 goto ; [100.00%] [local count: 11782]: # DEBUG BEGIN_STMT _56 = uxBitsToWaitFor_23(D) & uxCurrentEventBits_28; if (uxBitsToWaitFor_23(D) == _56) goto ; [34.00%] else goto ; [66.00%] [local count: 4006]: # DEBUG BEGIN_STMT # DEBUG xWaitConditionMet => 1 [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 ; [50.00%] else goto ; [50.00%] [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 ; [50.00%] else goto ; [50.00%] [local count: 5891]: # DEBUG BEGIN_STMT _3 = ~uxBitsToWaitFor_23(D); _4 = _3 & uxCurrentEventBits_28; MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _4; goto ; [100.00%] [local count: 11782]: # DEBUG BEGIN_STMT if (xTicksToWait_26(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 5891]: # DEBUG BEGIN_STMT if (xClearOnExit_32(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 2945]: # DEBUG BEGIN_STMT # DEBUG uxControlBits => 16777216 [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 ; [50.00%] else goto ; [50.00%] [local count: 2945]: # DEBUG BEGIN_STMT uxControlBits_33 = uxControlBits_15 | 67108864; # DEBUG uxControlBits => uxControlBits_33 [local count: 5891]: # uxControlBits_16 = PHI # 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 [local count: 23563]: # xTicksToWait_11 = PHI <0(22), xTicksToWait_26(D)(23), xTicksToWait_26(D)(28), 0(21)> # uxReturn_12 = PHI # 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 ; [50.00%] else goto ; [50.00%] [local count: 11782]: # DEBUG BEGIN_STMT if (xAlreadyYielded_37 == 0) goto ; [50.00%] else goto ; [50.00%] [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 [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 ; [33.00%] else goto ; [67.00%] [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 ; [50.00%] else goto ; [50.00%] [local count: 1944]: # DEBUG BEGIN_STMT _58 = uxBitsToWaitFor_23(D) & uxReturn_44; if (_58 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 972]: # DEBUG BEGIN_STMT # DEBUG xWaitConditionMet => 1 goto ; [100.00%] [local count: 1944]: # DEBUG BEGIN_STMT _59 = uxBitsToWaitFor_23(D) & uxReturn_44; if (uxBitsToWaitFor_23(D) == _59) goto ; [34.00%] else goto ; [66.00%] [local count: 661]: # DEBUG BEGIN_STMT # DEBUG xWaitConditionMet => 1 [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 ; [50.00%] else goto ; [50.00%] [local count: 1944]: # DEBUG BEGIN_STMT if (xClearOnExit_32(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 972]: # DEBUG BEGIN_STMT _9 = ~uxBitsToWaitFor_23(D); _10 = _9 & uxReturn_44; MEM[(struct EventGroup_t *)xEventGroup_22(D)].uxEventBits = _10; [local count: 3888]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xTimeoutOccurred => 1 # DEBUG BEGIN_STMT vPortExitCritical (); [local count: 11782]: # uxReturn_13 = PHI # DEBUG uxReturn => uxReturn_13 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxReturn_48 = uxReturn_13 & 16777215; # DEBUG uxReturn => uxReturn_48 [local count: 23563]: # uxReturn_14 = PHI # 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; [local count: 228942]: # DEBUG BEGIN_STMT # DEBUG pxEventBits => xEventGroup_3(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xEventGroup_3(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [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 [local count: 686828460]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = uxBitsToClear_5(D) & 4278190080; if (_1 != 0) goto ; [67.00%] else goto ; [33.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [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) { [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; [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; [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; [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 ; [30.00%] else goto ; [70.00%] [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 [local count: 686828460]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = uxBitsToSet_4(D) & 4278190080; if (_1 != 0) goto ; [67.00%] else goto ; [33.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [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 ; [100.00%] [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 ; [50.00%] else goto ; [50.00%] [local count: 213947]: # DEBUG BEGIN_STMT _20 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits; _21 = uxBitsWaitedFor_18 & _20; if (_21 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 213947]: # DEBUG BEGIN_STMT _22 = MEM[(struct EventGroup_t *)xEventGroup_3(D)].uxEventBits; _23 = uxBitsWaitedFor_18 & _22; if (uxBitsWaitedFor_18 == _23) goto ; [34.00%] else goto ; [66.00%] [local count: 179715]: # DEBUG xMatchFound => NULL # DEBUG BEGIN_STMT _24 = uxBitsWaitedFor_17 & 16777216; if (_24 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 89858]: # DEBUG BEGIN_STMT uxBitsToClear_26 = uxBitsWaitedFor_18 | uxBitsToClear_25; # DEBUG uxBitsToClear => uxBitsToClear_26 [local count: 179715]: # uxBitsToClear_34 = PHI # 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); [local count: 427893]: # pxListItem_35 = PHI # uxBitsToClear_36 = PHI [local count: 480779]: # pxListItem_15 = PHI # 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 ; [89.00%] else goto ; [11.00%] [local count: 52886]: # uxBitsToClear_30 = PHI # 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; [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 ; [50.00%] else goto ; [50.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_47 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_47 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxBitsToWaitFor_24(D) == 0) goto ; [67.00%] else goto ; [33.00%] [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 [local count: 719407023]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 719407023]: goto ; [100.00%] [local count: 35433]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 23740]: if (xTicksToWait_27(D) == 0) goto ; [50.00%] else goto ; [50.00%] [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 [local count: 118702159]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 118702159]: goto ; [100.00%] [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 ; [34.00%] else goto ; [66.00%] [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 ; [100.00%] [local count: 15552]: # DEBUG BEGIN_STMT if (xTicksToWait_27(D) != 0) goto ; [33.00%] else goto ; [67.00%] [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 ; [100.00%] [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 [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 ; [50.00%] else goto ; [50.00%] [local count: 11782]: # DEBUG BEGIN_STMT if (xAlreadyYielded_36 == 0) goto ; [50.00%] else goto ; [50.00%] [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 [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 ; [33.00%] else goto ; [67.00%] [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 ; [34.00%] else goto ; [66.00%] [local count: 1322]: # DEBUG BEGIN_STMT _12 = ~uxBitsToWaitFor_24(D); _13 = _12 & uxReturn_43; MEM[(struct EventGroup_t *)xEventGroup_23(D)].uxEventBits = _13; [local count: 3888]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG xTimeoutOccurred => 1 [local count: 11782]: # uxReturn_16 = PHI # DEBUG uxReturn => uxReturn_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxReturn_46 = uxReturn_16 & 16777215; # DEBUG uxReturn => uxReturn_46 [local count: 23563]: # uxReturn_17 = PHI # 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) { [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; [local count: 230763]: # DEBUG BEGIN_STMT if (xEventGroup_5(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_11 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_11 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # 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 ; [100.00%] [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 ; [5.50%] else goto ; [94.50%] [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 [local count: 599500022]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 599500022]: goto ; [100.00%] [local count: 1030048]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskRemoveFromUnorderedEventList (_1, 33554432); [local count: 1153437]: # DEBUG BEGIN_STMT _3 ={v} MEM[(const struct List_t *)xEventGroup_5(D) + 4B].uxNumberOfItems; if (_3 != 0) goto ; [94.50%] else goto ; [5.50%] [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; [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; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxEventBits => xEventGroup_2(D) # DEBUG BEGIN_STMT if (xEventGroup_2(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 751619278]: # DEBUG BEGIN_STMT xReturn_4 = MEM[(const struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber; # DEBUG xReturn => xReturn_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) { [local count: 1073741824]: # DEBUG BEGIN_STMT MEM[(struct EventGroup_t *)xEventGroup_2(D)].uxEventGroupNumber = uxEventGroupNumber_3(D); return; }