IPA function summary for prvListTasksWithinSingleList.part.0/158 inlinable global time: 251.418183 self size: 31 global size: 31 min size: 10 self stack: 0 global stack: 0 size:18.500000, time:104.995455 size:6.500000, time:18.150000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 32] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op1[ref offset: 32] changed) calls: vTaskGetInfo/72 function not considered for inlining loop depth: 1 freq:9.09 size: 5 time: 14callee size:22 stack: 0 op2 is compile time invariant op3 change 10.990000% of time IPA function summary for vTaskSwitchContext.part.0/146 inlinable global time: 5.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:5.000000, time:5.000000 size:2.000000, time:0.000000, executed if:(not inlined) calls: IPA function summary for xTaskResumeAll.part.0/137 inlinable global time: 155.186751 self size: 88 global size: 88 min size: 10 self stack: 0 global stack: 0 size:80.000000, time:119.350001 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 prvResetNextTaskUnblockTime/77 function not considered for inlining loop depth: 0 freq:0.13 size: 1 time: 10callee size: 4 stack: 0 xTaskIncrementTick/56 function not considered for inlining loop depth: 1 freq:1.14 size: 2 time: 11callee size: 5 stack: 0 vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskIncrementTick.part.0/135 inlinable global time: 171.007340 self size: 97 global size: 97 min size: 2 self stack: 0 global stack: 0 size:93.000000, time:168.027330 size:3.000000, time:1.329999, executed if:(not inlined) calls: prvResetNextTaskUnblockTime/77 function not considered for inlining loop depth: 0 freq:0.17 size: 1 time: 10callee size: 4 stack: 0 IPA function summary for eTaskGetState.part.0/122 inlinable global time: 8.635071 self size: 8 global size: 8 min size: 0 self stack: 0 global stack: 0 size:2.000000, time:3.791469 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.473934, executed if:(not inlined), nonconst if:(op0[ref offset: 672] changed) && (not inlined) size:2.500000, time:2.369668, nonconst if:(op0[ref offset: 672] changed) calls: IPA function summary for prvAddCurrentTaskToDelayedList.part.0/119 inlinable global time: 18.000000 self size: 19 global size: 19 min size: 0 self stack: 0 global stack: 0 size:16.000000, time:16.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for prvInitialiseNewTask.isra.0/118 inlinable global time: 94.633845 self size: 63 global size: 63 min size: 8 self stack: 0 global stack: 0 size:2.500000, time:2.500000 size:2.500000, time:0.500000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op6[ref offset: 384] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op6[ref offset: 384] changed) size:3.000000, time:3.000000, nonconst if:(op2 changed) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:0.500000, time:0.150000, executed if:(op1 == 0B) && (not inlined) size:0.500000, time:0.150000, executed if:(op1 == 0B) size:9.000000, time:39.394537, executed if:(op1 != 0B) size:1.000000, time:2.608221, executed if:(op1 != 0B) && (not inlined) size:2.000000, time:2.000000, nonconst if:(op4 changed) size:5.000000, time:1.980007, executed if:(op4 <= 4) && (not inlined) size:4.000000, time:1.320005, executed if:(op4 <= 4) size:1.000000, time:0.330001, executed if:(op4 <= 4), nonconst if:(op4 changed) && (op4 <= 4) size:2.000000, time:0.660002, executed if:(op4 <= 4), nonconst if:(op5 changed) && (op4 <= 4) size:0.500000, time:0.115500, executed if:(op5 != 0B) && (op4 <= 4) && (not inlined) size:0.500000, time:0.115500, executed if:(op5 != 0B) && (op4 <= 4) size:5.000000, time:3.349994, executed if:(op4 > 4) calls: pxPortInitialiseStack/99 function body not available loop depth: 0 freq:0.33 size: 5 time: 14 predicate: (op4 <= 4) memset/97 function body not available loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op4 <= 4) op1 is compile time invariant op2 is compile time invariant memset/97 function body not available loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op4 <= 4) op1 is compile time invariant op2 is compile time invariant vListInitialiseItem/98 function body not available loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op4 <= 4) vListInitialiseItem/98 function body not available loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op4 <= 4) memset/97 function body not available loop depth: 0 freq:1.00 size: 4 time: 13 op1 is compile time invariant IPA function summary for prvResetNextTaskUnblockTime.part.0/115 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for prvTaskIsTaskSuspended.part.0/114 inlinable global time: 6.400000 self size: 8 global size: 8 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:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 320] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 320] changed) size:2.000000, time:1.400000, executed if:(op0[ref offset: 320] != &xPendingReadyList), nonconst if:(op0[ref offset: 320] changed) && (op0[ref offset: 320] != &xPendingReadyList) size:1.000000, time:2.000000, executed if:(op0[ref offset: 320] != &xPendingReadyList || op0[ref offset: 320] == &xPendingReadyList) && (not inlined) calls: IPA function summary for prvAddCurrentTaskToDelayedList/94 inlinable global time: 38.602500 self size: 33 global size: 33 min size: 4 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:0.680000, executed if:(op0 == 4294967295), nonconst if:(op1 changed) && (op0 == 4294967295) size:13.000000, time:7.262500, executed if:(op0 != 4294967295 || op1 == 0) calls: vListInsert/105 function body not available loop depth: 0 freq:0.41 size: 3 time: 12 predicate: (op0 != 4294967295 || op1 == 0) vListInsert/105 function body not available loop depth: 0 freq:0.41 size: 3 time: 12 predicate: (op0 != 4294967295 || op1 == 0) prvAddCurrentTaskToDelayedList.part.0/119 function not considered for inlining loop depth: 0 freq:0.17 size: 1 time: 10callee size: 9 stack: 0 predicate: (op1 != 0) && (op0 == 4294967295) uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 IPA function summary for ulTaskGenericNotifyValueClear/93 inlinable global time: 29.300000 self size: 13 global size: 13 min size: 4 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) size:1.000000, time:1.000000, nonconst if:(op2 changed) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskGenericNotifyStateClear/92 inlinable global time: 18.319998 self size: 19 global size: 19 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:(op1 changed) size:2.000000, time:1.000000, executed if:(op1 == 0), nonconst if:(op0 changed) && (op1 == 0) size:1.000000, time:0.149999, executed if:(op0 == 0B) && (op1 == 0) size:4.000000, time:1.669999, executed if:(op1 == 0) size:1.000000, time:1.000000, executed if:(op1 == 0) && (not inlined) size:5.000000, time:2.500000, executed if:(op1 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.50 size: 1 time: 10 predicate: (op1 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.50 size: 1 time: 10 predicate: (op1 == 0) IPA function summary for vTaskGenericNotifyGiveFromISR/91 inlinable global time: 14.285789 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:2.000000, time:1.400005, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:62.500000, time:3.769055, executed if:(op1 == 0) && (op0 != 0B) size:9.500000, time:0.929891, executed if:(op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.023561, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.004123, executed if:(op2 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.004123, executed if:(op2 != 0B) && (op1 == 0) && (op0 != 0B) size:5.000000, time:2.345004, executed if:(op1 != 0) && (op0 != 0B) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op1 == 0) && (op0 != 0B) IPA function summary for xTaskGenericNotifyFromISR/90 inlinable global time: 15.703943 self size: 123 global size: 123 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.400005, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:68.500000, time:3.378356, executed if:(op1 == 0) && (op0 != 0B) size:2.000000, time:0.462003, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op4 changed) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.161700, executed if:(op4 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:1.000000, time:0.161700, executed if:(op4 != 0B) && (op1 == 0) && (op0 != 0B) size:8.500000, time:0.659990, executed if:(op1 == 0) && (op0 != 0B) && (not inlined) size:12.000000, time:0.924007, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 == 0) && (op0 != 0B) size:2.500000, time:0.089724, executed if:(op3 == 4) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.012708, executed if:(op3 == 4) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.019254, executed if:(op3 == 3) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.019254, executed if:(op3 == 3) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.038508, executed if:(op3 == 2) && (op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.077015, executed if:(op3 == 2) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.038508, executed if:(op3 == 1) && (op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.077015, executed if:(op3 == 1) && (op1 == 0) && (op0 != 0B) size:2.000000, time:0.021604, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op5 changed) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.003780, executed if:(op5 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.003780, executed if:(op5 != 0B) && (op1 == 0) && (op0 != 0B) size:5.000000, time:2.345004, executed if:(op1 != 0) && (op0 != 0B) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op1 == 0) && (op0 != 0B) IPA function summary for xTaskGenericNotify/89 inlinable global time: 19.409340 self size: 101 global size: 101 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:(op1 changed) size:2.000000, time:1.000000, executed if:(op1 == 0), nonconst if:(op0 changed) && (op1 == 0) size:2.000000, time:0.534701, executed if:(op0 != 0B) && (op1 == 0), nonconst if:(op4 changed) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.187145, executed if:(op4 != 0B) && (op0 != 0B) && (op1 == 0) && (not inlined) size:1.000000, time:0.187145, executed if:(op4 != 0B) && (op0 != 0B) && (op1 == 0) size:6.500000, time:1.146039, executed if:(op0 != 0B) && (op1 == 0) && (not inlined) size:50.500000, time:4.943545, executed if:(op0 != 0B) && (op1 == 0) size:12.000000, time:1.069402, executed if:(op0 != 0B) && (op1 == 0), nonconst if:(op3 changed) && (op0 != 0B) && (op1 == 0) size:2.500000, time:0.103845, executed if:(op3 == 4) && (op0 != 0B) && (op1 == 0) size:0.500000, time:0.014708, executed if:(op3 == 4) && (op0 != 0B) && (op1 == 0) && (not inlined) size:0.500000, time:0.022284, executed if:(op3 == 3) && (op0 != 0B) && (op1 == 0) && (not inlined) size:0.500000, time:0.022284, executed if:(op3 == 3) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.044569, executed if:(op3 == 2) && (op0 != 0B) && (op1 == 0) && (not inlined) size:2.000000, time:0.089137, executed if:(op3 == 2) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.044569, executed if:(op3 == 1) && (op0 != 0B) && (op1 == 0) && (not inlined) size:2.000000, time:0.089137, executed if:(op3 == 1) && (op0 != 0B) && (op1 == 0) size:5.000000, time:1.163247, executed if:(op0 == 0B) && (op1 == 0) size:5.000000, time:2.500000, executed if:(op1 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op0 != 0B) && (op1 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.27 size: 1 time: 10 predicate: (op0 != 0B) && (op1 == 0) IPA function summary for xTaskGenericNotifyWait/88 inlinable global time: 27.462430 self size: 49 global size: 49 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:20.000000, time:5.055622, executed if:(op0 == 0) size:1.000000, time:0.217802, executed if:(op0 == 0), nonconst if:(op1 changed) && (op0 == 0) size:2.000000, time:0.435605, executed if:(op0 == 0), nonconst if:(op4 changed) && (op0 == 0) size:3.000000, time:0.215631, executed if:(op4 != 0) && (op0 == 0) size:2.000000, time:0.660002, executed if:(op0 == 0), nonconst if:(op3 changed) && (op0 == 0) size:2.500000, time:0.577499, executed if:(op3 != 0B) && (op0 == 0) size:0.500000, time:0.115500, executed if:(op3 != 0B) && (op0 == 0) && (not inlined) size:1.000000, time:0.112199, executed if:(op0 == 0), nonconst if:(op2 changed) && (op0 == 0) size:1.000000, time:0.660002, executed if:(op0 == 0) && (not inlined) size:5.000000, time:3.349994, executed if:(op0 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.07 size: 3 time: 12callee size:16 stack: 0 predicate: (op4 != 0) && (op0 == 0) op1 is compile time invariant vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) IPA function summary for ulTaskGenericNotifyTake/87 inlinable global time: 24.729284 self size: 41 global size: 41 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:12.000000, time:3.630014, executed if:(op0 == 0) size:2.000000, time:0.330001, executed if:(op0 == 0), nonconst if:(op2 changed) && (op0 == 0) size:3.000000, time:0.163347, executed if:(op2 != 0) && (op0 == 0) size:2.000000, time:0.330001, executed if:(op0 == 0), nonconst if:(op1 changed) && (op0 == 0) size:3.000000, time:0.247492, executed if:(op1 == 0) && (op0 == 0) size:2.000000, time:0.164994, executed if:(op1 != 0) && (op0 == 0) size:1.000000, time:0.660002, executed if:(op0 == 0) && (not inlined) size:5.000000, time:3.349994, executed if:(op0 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.05 size: 3 time: 12callee size:16 stack: 0 predicate: (op2 != 0) && (op0 == 0) op1 is compile time invariant vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) IPA function summary for pvTaskIncrementMutexHeldCount/86 inlinable global time: 8.800000 self size: 11 global size: 11 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:6.800000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for uxTaskResetEventItemValue/85 inlinable global time: 9.000000 self size: 10 global size: 10 min size: 0 self stack: 0 global stack: 0 size:7.000000, time:7.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for vTaskList/84 inlinable global time: 270.215297 self size: 47 global size: 47 min size: 48 self stack: 0 global stack: 0 size:19.500000, time:64.973223 size:3.500000, time:2.500000, executed if:(not inlined) calls: vPortFree/96 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 strlen/110 function body not available loop depth: 1 freq:4.33 size: 3 time: 12 sprintf/111 function body not available loop depth: 1 freq:4.33 size: 7 time: 16 op1 is compile time invariant prvWriteNameToBuffer/83 function not considered for inlining loop depth: 1 freq:4.33 size: 4 time: 13callee size: 8 stack: 0 uxTaskGetSystemState/53 function not considered for inlining loop depth: 0 freq:0.53 size: 5 time: 14callee size:28 stack: 0 op2 is compile time invariant pvPortMalloc/95 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 IPA function summary for prvWriteNameToBuffer/83 inlinable global time: 70.454546 self size: 16 global size: 16 min size: 12 self stack: 0 global stack: 0 size:7.000000, time:44.454546 size:3.000000, time:2.000000, executed if:(not inlined) calls: strlen/110 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 strcpy/112 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 IPA function summary for vTaskPriorityDisinheritAfterTimeout/82 inlinable global time: 10.371966 self size: 55 global size: 55 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.350000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.700000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed || op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.462001, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:23.000000, time:0.526507, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:3.000000, time:0.062873, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.137442, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.032437, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.109954, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:1.252873, executed if:(op0 == 0B || op0[ref offset: 608] != 0) && (not inlined) size:5.000000, time:1.749999, executed if:(op0[ref offset: 608] == 0) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) IPA function summary for xTaskPriorityDisinherit/81 inlinable global time: 9.958189 self size: 50 global size: 50 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:8.000000, time:4.549986, executed if:(op0 != 0B) size:0.500000, time:0.104999, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:0.524994, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) size:3.000000, time:0.243603, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:3.500000, time:0.121103, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:16.500000, time:0.406951, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.210002, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.809999, executed if:(op0 == 0B || op0[ref offset: 608] != 0) && (not inlined) size:5.000000, time:0.525006, executed if:(op0[ref offset: 608] == 0) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 predicate: (op0[ref offset: 608] != 0) && (op0 != 0B) IPA function summary for xTaskPriorityInherit/80 inlinable global time: 14.781628 self size: 48 global size: 48 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: 352] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0 != 0B) size:30.000000, time:6.590815, executed if:(op0 != 0B) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:0.875000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) size:3.000000, time:0.369758, executed if:(op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) size:2.000000, time:0.700000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 160] changed) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.06 size: 2 time: 11 predicate: (op0 != 0B) IPA function summary for xTaskGetSchedulerState/79 inlinable global time: 6.500000 self size: 9 global size: 9 min size: 0 self stack: 0 global stack: 0 size:6.000000, time:4.500000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskGetCurrentTaskHandle/78 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for prvResetNextTaskUnblockTime/77 inlinable global time: 11.500000 self size: 9 global size: 9 min size: 2 self stack: 0 global stack: 0 size:5.000000, time:4.500000 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvResetNextTaskUnblockTime.part.0/115 function not considered for inlining loop depth: 0 freq:0.50 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for prvDeleteTCB/76 inlinable global time: 25.000000 self size: 8 global size: 8 min size: 8 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 384] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 384] changed) calls: vPortFree/96 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 vPortFree/96 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 IPA function summary for uxTaskGetStackHighWaterMark/75 inlinable global time: 17.300000 self size: 10 global size: 10 min size: 6 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: prvTaskCheckFreeStackSpace/74 function not considered for inlining loop depth: 0 freq:1.00 size: 3 time: 12callee size: 4 stack: 0 IPA function summary for prvTaskCheckFreeStackSpace/74 inlinable global time: 46.454546 self size: 9 global size: 9 min size: 0 self stack: 0 global stack: 0 size:6.000000, time:44.454546 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for prvListTasksWithinSingleList/73 inlinable global time: 12.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:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 0] changed) calls: prvListTasksWithinSingleList.part.0/158 function not considered for inlining loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 predicate: (op1[ref offset: 0] != 0) IPA function summary for vTaskGetInfo/72 inlinable global time: 34.206434 self size: 44 global size: 44 min size: 0 self stack: 0 global stack: 0 size:7.500000, time:7.500000 size:6.500000, time:5.500000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) size:2.000000, time:2.000000, nonconst if:(op3 changed) size:0.500000, time:0.101200, executed if:(op3 == 5) && (not inlined) size:0.500000, time:0.101200, executed if:(op3 == 5) size:4.000000, time:2.791600, executed if:(op3 != 5) size:1.000000, time:0.398800, executed if:(op3 != 5) && (not inlined) size:2.000000, time:1.116640, executed if:(op3 != 5), nonconst if:(op3 changed) && (op3 != 5) size:3.500000, time:0.378563, executed if:(op3 == 3) && (op3 != 5) size:0.500000, time:0.039551, executed if:(op3 == 3) && (op3 != 5) && (not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:0.500000, time:0.335000, executed if:(op2 == 0) && (not inlined) size:0.500000, time:0.335000, executed if:(op2 == 0) size:1.500000, time:0.495000, executed if:(op2 != 0) size:0.500000, time:0.165000, executed if:(op2 != 0) && (not inlined) calls: prvTaskCheckFreeStackSpace/74 function not considered for inlining loop depth: 0 freq:0.33 size: 3 time: 12callee size: 4 stack: 0 predicate: (op2 != 0) eTaskGetState/35 function not considered for inlining loop depth: 0 freq:0.20 size: 3 time: 12callee size:17 stack: 0 predicate: (op3 == 5) xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.11 size: 1 time: 10callee size: 6 stack: 0 predicate: (op3 == 3) && (op3 != 5) vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.11 size: 1 time: 10callee size: 3 stack: 0 predicate: (op3 == 3) && (op3 != 5) IPA function summary for prvCheckTasksWaitingTermination/71 inlinable global time: 433.818184 self size: 20 global size: 20 min size: 12 self stack: 0 global stack: 0 size:11.000000, time:92.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvDeleteTCB/76 function not considered for inlining loop depth: 1 freq:8.09 size: 2 time: 11callee size: 4 stack: 0 vPortExitCritical/101 function body not available loop depth: 1 freq:8.09 size: 1 time: 10 uxListRemove/103 function body not available loop depth: 1 freq:8.09 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 1 freq:8.09 size: 1 time: 10 IPA function summary for prvInitialiseTaskLists/70 inlinable global time: 130.983204 self size: 20 global size: 20 min size: 24 self stack: 0 global stack: 0 size:5.000000, time:18.996401 size:3.000000, time:2.000000, executed if:(not inlined) calls: vListInitialise/102 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 1 freq:5.00 size: 2 time: 11 IPA function summary for prvIdleTask/69 inlinable global time: 250338.064697 self size: 9 global size: 9 min size: 2 self stack: 0 global stack: 0 size:6.000000, time:80847.161133 size:2.000000, time:0.000000, executed if:(not inlined) calls: prvCheckTasksWaitingTermination/71 function not considered for inlining loop depth: 2 freq:16949.09 size: 1 time: 10callee size:10 stack: 0 IPA function summary for vTaskSetTaskNumber/68 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) size:0.500000, time:0.350000, executed if:(op0 != 0B) calls: IPA function summary for uxTaskGetTaskNumber/67 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: 544] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 544] changed) && (op0 != 0B) calls: IPA function summary for vTaskMissedYield/66 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskCheckForTimeOut/65 inlinable global time: 19.619846 self size: 46 global size: 46 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.400002, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:22.000000, time:4.152264, executed if:(op1 != 0B) && (op0 != 0B) size:4.000000, time:1.152813, executed if:(op1 != 0B) && (op0 != 0B) && (not inlined) size:5.000000, time:1.628552, executed if:(op1 == 0B) && (op0 != 0B) size:5.000000, time:1.499995, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op1 != 0B) && (op0 != 0B) vTaskInternalSetTimeOutState/64 function not considered for inlining loop depth: 0 freq:0.03 size: 2 time: 11callee size: 3 stack: 0 predicate: (op1 != 0B) && (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op1 != 0B) && (op0 != 0B) IPA function summary for vTaskInternalSetTimeOutState/64 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:3.000000, time:3.000000 size:4.000000, time:3.000000, executed if:(not inlined) calls: IPA function summary for vTaskSetTimeOutState/63 inlinable global time: 18.228702 self size: 16 global size: 16 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:3.000000, time:1.604100, executed if:(op0 != 0B) size:2.000000, time:1.604100, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskRemoveFromUnorderedEventList/62 inlinable global time: 25.410043 self size: 69 global size: 69 min size: 0 self stack: 0 global stack: 0 size:8.500000, time:5.750000 size:2.500000, time:0.250000, executed if:(not inlined) size:1.000000, time:0.500000, nonconst if:(op1 changed) size:0.500000, time:0.250000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:2.500000, time:1.250000, nonconst if:(op0[ref offset: 96] changed) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 96] != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 96] != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 96] != 0B) size:44.000000, time:14.560043, executed if:(op0[ref offset: 96] != 0B) size:2.000000, time:1.050003, executed if:(op0[ref offset: 96] != 0B) && (not inlined) size:5.000000, time:0.749995, executed if:(op0[ref offset: 96] == 0B) calls: IPA function summary for xTaskRemoveFromEventList/61 inlinable global time: 35.040046 self size: 74 global size: 74 min size: 0 self stack: 0 global stack: 0 size:70.000000, time:32.640046 size:3.000000, time:1.399999, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 96] changed) calls: IPA function summary for vTaskPlaceOnEventListRestricted/60 inlinable global time: 25.899992 self size: 31 global size: 31 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) size:12.500000, time:8.749997, executed if:(op0 != 0B) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:1.500000, time:1.050000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:1.500000, time:1.749999, executed if:(op0 != 0B) && (not inlined) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op2 changed) && (op0 != 0B) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.70 size: 3 time: 12callee size:16 stack: 0 predicate: (op0 != 0B) IPA function summary for vTaskPlaceOnUnorderedEventList/59 inlinable global time: 15.568078 self size: 40 global size: 40 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:22.500000, time:7.794538, executed if:(op0 != 0B) size:1.000000, time:0.231002, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.115501, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.115501, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) size:0.500000, time:0.115501, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:1.500000, time:0.346503, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:1.500000, time:0.577504, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.23 size: 3 time: 12callee size:16 stack: 0 predicate: (op0 != 0B) op1 is compile time invariant IPA function summary for vTaskPlaceOnEventList/58 inlinable global time: 18.763402 self size: 17 global size: 17 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.534700, executed if:(op0 != 0B) size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.53 size: 3 time: 12callee size:16 stack: 0 predicate: (op0 != 0B) op1 is compile time invariant vListInsert/105 function body not available loop depth: 0 freq:0.53 size: 3 time: 12 predicate: (op0 != 0B) IPA function summary for vTaskSwitchContext/57 inlinable global time: 37.941072 self size: 27 global size: 27 min size: 2 self stack: 0 global stack: 0 size:23.000000, time:33.997629 size:3.000000, time:1.514139, executed if:(not inlined) calls: vTaskSwitchContext.part.0/146 function not considered for inlining loop depth: 0 freq:0.24 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for xTaskIncrementTick/56 inlinable global time: 11.665006 self size: 11 global size: 11 min size: 4 self stack: 0 global stack: 0 size:6.000000, time:4.499998 size:3.000000, time:1.665000, executed if:(not inlined) calls: xTaskIncrementTick.part.0/135 function not considered for inlining loop depth: 0 freq:0.50 size: 2 time: 11callee size:48 stack: 0 IPA function summary for xTaskAbortDelay/55 inlinable global time: 30.114204 self size: 48 global size: 48 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:24.000000, time:3.316918, executed if:(op0 != 0B) size:4.000000, time:1.368894, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.53 size: 1 time: 10callee size: 6 stack: 0 predicate: (op0 != 0B) vPortExitCritical/101 function body not available loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.06 size: 2 time: 11 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.11 size: 2 time: 11 predicate: (op0 != 0B) eTaskGetState/35 function not considered for inlining loop depth: 0 freq:0.53 size: 3 time: 12callee size:17 stack: 0 predicate: (op0 != 0B) vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.53 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 != 0B) IPA function summary for xTaskCatchUpTicks/54 inlinable global time: 14.930026 self size: 17 global size: 17 min size: 6 self stack: 0 global stack: 0 size:11.000000, time:7.339998 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.33 size: 2 time: 11callee size: 6 stack: 0 vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for uxTaskGetSystemState/53 inlinable global time: 111.350001 self size: 56 global size: 56 min size: 54 self stack: 0 global stack: 0 size:23.000000, time:25.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:1.000000, nonconst if:(op2 changed) size:0.500000, time:0.175000, executed if:(op2 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op2 != 0B) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:1.00 size: 1 time: 10callee size: 6 stack: 0 prvListTasksWithinSingleList/73 function not considered for inlining loop depth: 0 freq:0.50 size: 5 time: 14callee size: 5 stack: 0 op1 is compile time invariant op2 is compile time invariant prvListTasksWithinSingleList/73 function not considered for inlining loop depth: 0 freq:0.50 size: 5 time: 14callee size: 5 stack: 0 op1 is compile time invariant op2 is compile time invariant prvListTasksWithinSingleList/73 function not considered for inlining loop depth: 0 freq:0.50 size: 5 time: 14callee size: 5 stack: 0 op2 is compile time invariant prvListTasksWithinSingleList/73 function not considered for inlining loop depth: 0 freq:0.50 size: 5 time: 14callee size: 5 stack: 0 op2 is compile time invariant prvListTasksWithinSingleList/73 function not considered for inlining loop depth: 1 freq:2.50 size: 5 time: 14callee size: 5 stack: 0 op2 is compile time invariant vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:1.00 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for xTaskGetHandle/52 inlinable global time: 54.551541 self size: 50 global size: 50 min size: 50 self stack: 0 global stack: 0 size:22.000000, time:14.718564 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size: 6 stack: 0 prvSearchForNameWithinSingleList/51 function not considered for inlining loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 op0 is compile time invariant prvSearchForNameWithinSingleList/51 function not considered for inlining loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 op0 is compile time invariant prvSearchForNameWithinSingleList/51 function not considered for inlining loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 prvSearchForNameWithinSingleList/51 function not considered for inlining loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 prvSearchForNameWithinSingleList/51 function not considered for inlining loop depth: 1 freq:1.35 size: 4 time: 13callee size:19 stack: 0 op1 change 73.930000% of time vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size: 3 stack: 0 strlen/110 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 IPA function summary for prvSearchForNameWithinSingleList/51 inlinable global time: 474.990788 self size: 38 global size: 38 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 0] changed) size:0.500000, time:0.355000, executed if:(op0[ref offset: 0] != 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 0] != 0) && (not inlined) size:0.500000, time:0.355000, executed if:(op0[ref offset: 0] != 0), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 0] != 0) size:27.500000, time:457.513131, executed if:(op0[ref offset: 0] != 0) size:3.500000, time:11.767657, executed if:(op0[ref offset: 0] != 0) && (not inlined) calls: IPA function summary for pcTaskGetName/50 inlinable global time: 7.200001 self size: 13 global size: 13 min size: 0 self stack: 0 global stack: 0 size:7.000000, time:3.500001 size:3.000000, time:1.399999, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: IPA function summary for uxTaskGetNumberOfTasks/49 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskGetTickCountFromISR/48 inlinable global time: 13.000000 self size: 5 global size: 5 min size: 2 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskGetTickCount/47 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskResumeAll/46 inlinable global time: 10.640010 self size: 13 global size: 13 min size: 4 self stack: 0 global stack: 0 size:8.000000, time:6.349994 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll.part.0/137 function not considered for inlining loop depth: 0 freq:0.33 size: 2 time: 11callee size:44 stack: 0 IPA function summary for vTaskSuspendAll/45 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for vTaskEndScheduler/44 inlinable global time: 18.000000 self size: 10 global size: 10 min size: 2 self stack: 0 global stack: 0 size:6.000000, time:6.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortEndScheduler/109 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for vTaskStartScheduler/43 inlinable global time: 32.007150 self size: 34 global size: 34 min size: 22 self stack: 0 global stack: 0 size:20.000000, time:9.299132 size:3.000000, time:1.457632, executed if:(not inlined) calls: xPortStartScheduler/108 function body not available loop depth: 0 freq:0.20 size: 1 time: 10 xTimerCreateTimerTask/107 function body not available loop depth: 0 freq:0.20 size: 2 time: 11 xTaskCreate/29 function not considered for inlining loop depth: 0 freq:1.00 size: 8 time: 17callee size:14 stack: 0 op0 is compile time invariant op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant op4 is compile time invariant op5 is compile time invariant IPA function summary for xTaskResumeFromISR/42 inlinable global time: 29.564289 self size: 53 global size: 53 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:31.500000, time:8.928128, executed if:(op0 != 0B) size:3.500000, time:1.517208, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vListInsertEnd/104 function body not available loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0 != 0B) op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.18 size: 2 time: 11 predicate: (op0 != 0B) prvTaskIsTaskSuspended/40 function not considered for inlining loop depth: 0 freq:0.53 size: 3 time: 12callee size: 8 stack: 0 predicate: (op0 != 0B) vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskResume/41 inlinable global time: 23.678349 self size: 45 global size: 45 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:26.000000, time:5.195383, executed if:(op0 != 0B) size:3.000000, time:1.647032, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.12 size: 2 time: 11 predicate: (op0 != 0B) prvTaskIsTaskSuspended/40 function not considered for inlining loop depth: 0 freq:0.37 size: 3 time: 12callee size: 8 stack: 0 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for prvTaskIsTaskSuspended/40 inlinable global time: 9.520009 self size: 16 global size: 16 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0[ref offset: 160] == &xSuspendedTaskList || op0[ref offset: 160] != &xSuspendedTaskList) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: prvTaskIsTaskSuspended.part.0/114 function not considered for inlining loop depth: 0 freq:0.21 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 160] == &xSuspendedTaskList) && (op0 != 0B) IPA function summary for vTaskSuspend/39 inlinable global time: 174.712526 self size: 53 global size: 53 min size: 26 self stack: 0 global stack: 0 size:34.000000, time:111.047613 size:3.000000, time:1.850000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vTaskSwitchContext/57 function not considered for inlining loop depth: 0 freq:0.07 size: 1 time: 10callee size:13 stack: 0 vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 prvResetNextTaskUnblockTime/77 function not considered for inlining loop depth: 0 freq:0.33 size: 1 time: 10callee size: 4 stack: 0 vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vListInsertEnd/104 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for vTaskPrioritySet/38 inlinable global time: 20.030363 self size: 66 global size: 66 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:2.000000, time:0.660002, executed if:(op1 <= 4), nonconst if:(op0 changed) && (op1 <= 4) size:1.000000, time:0.099002, executed if:(op0 == 0B) && (op1 <= 4) size:48.000000, time:6.115238, executed if:(op1 <= 4) size:1.000000, time:0.128504, executed if:(op1 <= 4), nonconst if:(op1 changed) && (op1 <= 4) size:1.000000, time:0.660002, executed if:(op1 <= 4) && (not inlined) size:5.000000, time:3.349994, executed if:(op1 > 4) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op1 <= 4) uxListRemove/103 function body not available loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 <= 4) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op1 <= 4) IPA function summary for uxTaskPriorityGetFromISR/37 inlinable global time: 22.300000 self size: 15 global size: 15 min size: 2 self stack: 0 global stack: 0 size:8.000000, time:8.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for uxTaskPriorityGet/36 inlinable global time: 25.300000 self size: 9 global size: 9 min size: 4 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for eTaskGetState/35 inlinable global time: 18.703258 self size: 34 global size: 34 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:18.000000, time:5.699011, executed if:(op0 != 0B) size:2.000000, time:1.624208, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: eTaskGetState.part.0/122 function not considered for inlining loop depth: 0 freq:0.03 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0 != 0B) vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskDelay/34 inlinable global time: 14.027552 self size: 24 global size: 24 min size: 0 self stack: 0 global stack: 0 size:3.000000, time:1.747506 size:3.000000, time:1.329999, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:10.000000, time:3.505009, executed if:(op0 != 0) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.17 size: 2 time: 11callee size: 6 stack: 0 predicate: (op0 != 0) prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.17 size: 3 time: 12callee size:16 stack: 0 predicate: (op0 != 0) op1 is compile time invariant vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.17 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 != 0) IPA function summary for xTaskDelayUntil/33 inlinable global time: 13.723476 self size: 55 global size: 55 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:29.000000, time:3.608499, executed if:(op1 != 0) && (op0 != 0B) size:4.000000, time:0.346496, executed if:(op1 != 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.749999, executed if:(op1 == 0) && (op0 != 0B) size:5.000000, time:1.500002, executed if:(op0 == 0B) calls: xTaskResumeAll/46 function not considered for inlining loop depth: 0 freq:0.12 size: 2 time: 11callee size: 6 stack: 0 predicate: (op1 != 0) && (op0 != 0B) prvAddCurrentTaskToDelayedList/94 function not considered for inlining loop depth: 0 freq:0.06 size: 3 time: 12callee size:16 stack: 0 predicate: (op1 != 0) && (op0 != 0B) op1 is compile time invariant vTaskSuspendAll/45 function not considered for inlining loop depth: 0 freq:0.12 size: 1 time: 10callee size: 3 stack: 0 predicate: (op1 != 0) && (op0 != 0B) IPA function summary for vTaskDelete/32 inlinable global time: 76.881702 self size: 50 global size: 50 min size: 24 self stack: 0 global stack: 0 size:32.000000, time:17.550001 size:3.000000, time:1.850000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 prvResetNextTaskUnblockTime/77 function not considered for inlining loop depth: 0 freq:0.70 size: 1 time: 10callee size: 4 stack: 0 prvDeleteTCB/76 function not considered for inlining loop depth: 0 freq:0.70 size: 2 time: 11callee size: 4 stack: 0 vListInsertEnd/104 function body not available loop depth: 0 freq:0.30 size: 3 time: 12 op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for prvAddNewTaskToReadyList/31 inlinable global time: 59.582200 self size: 56 global size: 56 min size: 6 self stack: 0 global stack: 0 size:46.500000, time:34.050000 size:6.500000, time:4.925000, executed if:(not inlined) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 prvInitialiseTaskLists/70 function not considered for inlining loop depth: 0 freq:0.06 size: 1 time: 10callee size:10 stack: 0 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskCreate/29 inlinable global time: 35.027197 self size: 29 global size: 29 min size: 36 self stack: 0 global stack: 0 size:7.000000, time:4.580302 size:3.000000, time:2.000000, executed if:(not inlined) size:1.000000, time:1.000000, nonconst if:(op2 changed) calls: prvAddNewTaskToReadyList/31 function not considered for inlining loop depth: 0 freq:0.29 size: 2 time: 11callee size:28 stack: 0 prvInitialiseNewTask.isra.0/118 function not considered for inlining loop depth: 0 freq:0.29 size: 8 time: 17callee size:31 stack: 0 vPortFree/96 function body not available loop depth: 0 freq:0.09 size: 2 time: 11 pvPortMalloc/95 function body not available loop depth: 0 freq:0.53 size: 3 time: 12 op0 is compile time invariant pvPortMalloc/95 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 Flattening functions: Overall time estimate: 253884.874023 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in prvListTasksWithinSingleList.part.0/158. Enqueueing calls in vTaskSwitchContext.part.0/146. Enqueueing calls in xTaskResumeAll.part.0/137. Enqueueing calls in xTaskIncrementTick.part.0/135. Enqueueing calls in eTaskGetState.part.0/122. Enqueueing calls in prvAddCurrentTaskToDelayedList.part.0/119. Enqueueing calls in prvInitialiseNewTask.isra.0/118. Enqueueing calls in prvResetNextTaskUnblockTime.part.0/115. Enqueueing calls in prvTaskIsTaskSuspended.part.0/114. Enqueueing calls in prvAddCurrentTaskToDelayedList/94. Enqueueing calls in ulTaskGenericNotifyValueClear/93. Enqueueing calls in xTaskGenericNotifyStateClear/92. Enqueueing calls in vTaskGenericNotifyGiveFromISR/91. Enqueueing calls in xTaskGenericNotifyFromISR/90. Enqueueing calls in xTaskGenericNotify/89. Enqueueing calls in xTaskGenericNotifyWait/88. Enqueueing calls in ulTaskGenericNotifyTake/87. Enqueueing calls in pvTaskIncrementMutexHeldCount/86. Enqueueing calls in uxTaskResetEventItemValue/85. Enqueueing calls in vTaskList/84. Enqueueing calls in prvWriteNameToBuffer/83. Enqueueing calls in vTaskPriorityDisinheritAfterTimeout/82. Enqueueing calls in xTaskPriorityDisinherit/81. Enqueueing calls in xTaskPriorityInherit/80. Enqueueing calls in xTaskGetSchedulerState/79. Enqueueing calls in xTaskGetCurrentTaskHandle/78. Enqueueing calls in prvResetNextTaskUnblockTime/77. Enqueueing calls in prvDeleteTCB/76. Enqueueing calls in uxTaskGetStackHighWaterMark/75. Enqueueing calls in prvTaskCheckFreeStackSpace/74. Enqueueing calls in prvListTasksWithinSingleList/73. Enqueueing calls in vTaskGetInfo/72. Enqueueing calls in prvCheckTasksWaitingTermination/71. Enqueueing calls in prvInitialiseTaskLists/70. Enqueueing calls in prvIdleTask/69. Enqueueing calls in vTaskSetTaskNumber/68. Enqueueing calls in uxTaskGetTaskNumber/67. Enqueueing calls in vTaskMissedYield/66. Enqueueing calls in xTaskCheckForTimeOut/65. Enqueueing calls in vTaskInternalSetTimeOutState/64. Enqueueing calls in vTaskSetTimeOutState/63. Enqueueing calls in vTaskRemoveFromUnorderedEventList/62. Enqueueing calls in xTaskRemoveFromEventList/61. Enqueueing calls in vTaskPlaceOnEventListRestricted/60. Enqueueing calls in vTaskPlaceOnUnorderedEventList/59. Enqueueing calls in vTaskPlaceOnEventList/58. Enqueueing calls in vTaskSwitchContext/57. Enqueueing calls in xTaskIncrementTick/56. Enqueueing calls in xTaskAbortDelay/55. Enqueueing calls in xTaskCatchUpTicks/54. Enqueueing calls in uxTaskGetSystemState/53. Enqueueing calls in xTaskGetHandle/52. Enqueueing calls in prvSearchForNameWithinSingleList/51. Enqueueing calls in pcTaskGetName/50. Enqueueing calls in uxTaskGetNumberOfTasks/49. Enqueueing calls in xTaskGetTickCountFromISR/48. Enqueueing calls in xTaskGetTickCount/47. Enqueueing calls in xTaskResumeAll/46. Enqueueing calls in vTaskSuspendAll/45. Enqueueing calls in vTaskEndScheduler/44. Enqueueing calls in vTaskStartScheduler/43. Enqueueing calls in xTaskResumeFromISR/42. Enqueueing calls in vTaskResume/41. Enqueueing calls in prvTaskIsTaskSuspended/40. Enqueueing calls in vTaskSuspend/39. Enqueueing calls in vTaskPrioritySet/38. Enqueueing calls in uxTaskPriorityGetFromISR/37. Enqueueing calls in uxTaskPriorityGet/36. Enqueueing calls in eTaskGetState/35. Enqueueing calls in vTaskDelay/34. Enqueueing calls in xTaskDelayUntil/33. Enqueueing calls in vTaskDelete/32. Enqueueing calls in prvAddNewTaskToReadyList/31. Enqueueing calls in xTaskCreate/29. Considering prvCheckTasksWaitingTermination/71 with 20 size to be inlined into prvIdleTask/69 in ../FreeRTOS/Source/tasks.c:3449 Estimated badness is -2033.890860, frequency 16949.09. Considering prvDeleteTCB/76 with 8 size to be inlined into prvCheckTasksWaitingTermination/71 in ../FreeRTOS/Source/tasks.c:3710 Estimated badness is -205700.324707, frequency 137133.55. Considering prvTaskCheckFreeStackSpace/74 with 9 size to be inlined into uxTaskGetStackHighWaterMark/75 in ../FreeRTOS/Source/tasks.c:3931 Estimated badness is -1.435897, frequency 1.00. Considering prvWriteNameToBuffer/83 with 16 size to be inlined into vTaskList/84 in ../FreeRTOS/Source/tasks.c:4515 Estimated badness is -0.515025, frequency 4.33. Considering prvDeleteTCB/76 with 8 size to be inlined into vTaskDelete/32 in ../FreeRTOS/Source/tasks.c:1220 Estimated badness is -0.237736, frequency 0.70. Considering prvTaskCheckFreeStackSpace/74 with 9 size to be inlined into vTaskGetInfo/72 in ../FreeRTOS/Source/tasks.c:3803 Estimated badness is -0.131064, frequency 0.33. Considering vTaskSwitchContext.part.0/146 with 7 size to be inlined into vTaskSwitchContext/57 in unknown:0 Estimated badness is -0.078365, frequency 0.24. Considering eTaskGetState.part.0/122 with 8 size to be inlined into eTaskGetState/35 in unknown:0 Estimated badness is -0.026418, frequency 0.03. Considering prvTaskIsTaskSuspended.part.0/114 with 8 size to be inlined into prvTaskIsTaskSuspended/40 in unknown:0 Estimated badness is -0.021146, frequency 0.21. Considering prvAddCurrentTaskToDelayedList.part.0/119 with 19 size to be inlined into prvAddCurrentTaskToDelayedList/94 in unknown:0 Estimated badness is -0.011333, frequency 0.17. Considering prvInitialiseNewTask.isra.0/118 with 63 size to be inlined into xTaskCreate/29 in ../FreeRTOS/Source/tasks.c:803 Estimated badness is -0.007849, frequency 0.29. Considering prvListTasksWithinSingleList.part.0/158 with 31 size to be inlined into prvListTasksWithinSingleList/73 in unknown:0 Estimated badness is -0.007160, frequency 0.50. Considering prvResetNextTaskUnblockTime.part.0/115 with 7 size to be inlined into prvResetNextTaskUnblockTime/77 in unknown:0 Estimated badness is -0.005510, frequency 0.50. Considering prvAddNewTaskToReadyList/31 with 56 size to be inlined into xTaskCreate/29 in ../FreeRTOS/Source/tasks.c:804 Estimated badness is -0.004928, frequency 0.29. Considering xTaskIncrementTick.part.0/135 with 97 size to be inlined into xTaskIncrementTick/56 in unknown:0 Estimated badness is -0.002602, frequency 0.50. Considering prvInitialiseTaskLists/70 with 20 size to be inlined into prvAddNewTaskToReadyList/31 in ../FreeRTOS/Source/tasks.c:1088 Estimated badness is -0.001157, frequency 0.02. Considering xTaskResumeAll.part.0/137 with 88 size to be inlined into xTaskResumeAll/46 in unknown:0 Estimated badness is -0.000001, frequency 0.33. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 8979429.390625 weighted by profile: 0.000000 Why inlining failed? function body not available : 94 calls, 685721.524414 freq, 0 count --param max-inline-insns-auto limit reached : 12 calls, 3.855237 freq, 0 count call is unlikely and code size would grow : 33 calls, 18.576983 freq, 0 count IPA function summary for prvAddCurrentTaskToDelayedList/94 inlinable global time: 39.622500 self size: 33 global size: 48 min size: 4 self stack: 0 global stack: 0 estimated growth:142 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:0.680000, executed if:(op0 == 4294967295), nonconst if:(op1 changed) && (op0 == 4294967295) size:13.000000, time:7.262500, executed if:(op0 != 4294967295 || op1 == 0) size:16.000000, time:2.720000, executed if:(op1 != 0) && (op0 == 4294967295) calls: vListInsert/105 function body not available loop depth: 0 freq:0.41 size: 3 time: 12 predicate: (op0 != 4294967295 || op1 == 0) vListInsert/105 function body not available loop depth: 0 freq:0.41 size: 3 time: 12 predicate: (op0 != 4294967295 || op1 == 0) prvAddCurrentTaskToDelayedList.part.0/119 inlined loop depth: 0 freq:0.17 size: 1 time: 10callee size: 9 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 IPA function summary for ulTaskGenericNotifyValueClear/93 inlinable global time: 29.300000 self size: 13 global size: 13 min size: 4 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) size:1.000000, time:1.000000, nonconst if:(op2 changed) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskGenericNotifyStateClear/92 inlinable global time: 18.319998 self size: 19 global size: 19 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:(op1 changed) size:2.000000, time:1.000000, executed if:(op1 == 0), nonconst if:(op0 changed) && (op1 == 0) size:1.000000, time:0.149999, executed if:(op0 == 0B) && (op1 == 0) size:4.000000, time:1.669999, executed if:(op1 == 0) size:1.000000, time:1.000000, executed if:(op1 == 0) && (not inlined) size:5.000000, time:2.500000, executed if:(op1 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.50 size: 1 time: 10 predicate: (op1 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.50 size: 1 time: 10 predicate: (op1 == 0) IPA function summary for vTaskGenericNotifyGiveFromISR/91 inlinable global time: 14.285789 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:2.000000, time:1.400005, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:62.500000, time:3.769055, executed if:(op1 == 0) && (op0 != 0B) size:9.500000, time:0.929891, executed if:(op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.023561, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.004123, executed if:(op2 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.004123, executed if:(op2 != 0B) && (op1 == 0) && (op0 != 0B) size:5.000000, time:2.345004, executed if:(op1 != 0) && (op0 != 0B) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op1 == 0) && (op0 != 0B) IPA function summary for xTaskGenericNotifyFromISR/90 inlinable global time: 15.703943 self size: 123 global size: 123 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.400005, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:68.500000, time:3.378356, executed if:(op1 == 0) && (op0 != 0B) size:2.000000, time:0.462003, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op4 changed) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.161700, executed if:(op4 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:1.000000, time:0.161700, executed if:(op4 != 0B) && (op1 == 0) && (op0 != 0B) size:8.500000, time:0.659990, executed if:(op1 == 0) && (op0 != 0B) && (not inlined) size:12.000000, time:0.924007, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 == 0) && (op0 != 0B) size:2.500000, time:0.089724, executed if:(op3 == 4) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.012708, executed if:(op3 == 4) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.019254, executed if:(op3 == 3) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.019254, executed if:(op3 == 3) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.038508, executed if:(op3 == 2) && (op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.077015, executed if:(op3 == 2) && (op1 == 0) && (op0 != 0B) size:1.000000, time:0.038508, executed if:(op3 == 1) && (op1 == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.077015, executed if:(op3 == 1) && (op1 == 0) && (op0 != 0B) size:2.000000, time:0.021604, executed if:(op1 == 0) && (op0 != 0B), nonconst if:(op5 changed) && (op1 == 0) && (op0 != 0B) size:0.500000, time:0.003780, executed if:(op5 != 0B) && (op1 == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.003780, executed if:(op5 != 0B) && (op1 == 0) && (op0 != 0B) size:5.000000, time:2.345004, executed if:(op1 != 0) && (op0 != 0B) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.23 size: 1 time: 10 predicate: (op1 == 0) && (op0 != 0B) IPA function summary for xTaskGenericNotify/89 inlinable global time: 19.409340 self size: 101 global size: 101 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:(op1 changed) size:2.000000, time:1.000000, executed if:(op1 == 0), nonconst if:(op0 changed) && (op1 == 0) size:2.000000, time:0.534701, executed if:(op0 != 0B) && (op1 == 0), nonconst if:(op4 changed) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.187145, executed if:(op4 != 0B) && (op0 != 0B) && (op1 == 0) && (not inlined) size:1.000000, time:0.187145, executed if:(op4 != 0B) && (op0 != 0B) && (op1 == 0) size:6.500000, time:1.146039, executed if:(op0 != 0B) && (op1 == 0) && (not inlined) size:50.500000, time:4.943545, executed if:(op0 != 0B) && (op1 == 0) size:12.000000, time:1.069402, executed if:(op0 != 0B) && (op1 == 0), nonconst if:(op3 changed) && (op0 != 0B) && (op1 == 0) size:2.500000, time:0.103845, executed if:(op3 == 4) && (op0 != 0B) && (op1 == 0) size:0.500000, time:0.014708, executed if:(op3 == 4) && (op0 != 0B) && (op1 == 0) && (not inlined) size:0.500000, time:0.022284, executed if:(op3 == 3) && (op0 != 0B) && (op1 == 0) && (not inlined) size:0.500000, time:0.022284, executed if:(op3 == 3) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.044569, executed if:(op3 == 2) && (op0 != 0B) && (op1 == 0) && (not inlined) size:2.000000, time:0.089137, executed if:(op3 == 2) && (op0 != 0B) && (op1 == 0) size:1.000000, time:0.044569, executed if:(op3 == 1) && (op0 != 0B) && (op1 == 0) && (not inlined) size:2.000000, time:0.089137, executed if:(op3 == 1) && (op0 != 0B) && (op1 == 0) size:5.000000, time:1.163247, executed if:(op0 == 0B) && (op1 == 0) size:5.000000, time:2.500000, executed if:(op1 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op0 != 0B) && (op1 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.27 size: 1 time: 10 predicate: (op0 != 0B) && (op1 == 0) IPA function summary for xTaskGenericNotifyWait/88 inlinable global time: 27.462430 self size: 49 global size: 49 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:20.000000, time:5.055622, executed if:(op0 == 0) size:1.000000, time:0.217802, executed if:(op0 == 0), nonconst if:(op1 changed) && (op0 == 0) size:2.000000, time:0.435605, executed if:(op0 == 0), nonconst if:(op4 changed) && (op0 == 0) size:3.000000, time:0.215631, executed if:(op4 != 0) && (op0 == 0) size:2.000000, time:0.660002, executed if:(op0 == 0), nonconst if:(op3 changed) && (op0 == 0) size:2.500000, time:0.577499, executed if:(op3 != 0B) && (op0 == 0) size:0.500000, time:0.115500, executed if:(op3 != 0B) && (op0 == 0) && (not inlined) size:1.000000, time:0.112199, executed if:(op0 == 0), nonconst if:(op2 changed) && (op0 == 0) size:1.000000, time:0.660002, executed if:(op0 == 0) && (not inlined) size:5.000000, time:3.349994, executed if:(op0 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) prvAddCurrentTaskToDelayedList/94 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.07 size: 3 time: 12callee size:24 stack: 0 predicate: (op4 != 0) && (op0 == 0) op1 is compile time invariant vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) IPA function summary for ulTaskGenericNotifyTake/87 inlinable global time: 24.729284 self size: 41 global size: 41 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:12.000000, time:3.630014, executed if:(op0 == 0) size:2.000000, time:0.330001, executed if:(op0 == 0), nonconst if:(op2 changed) && (op0 == 0) size:3.000000, time:0.163347, executed if:(op2 != 0) && (op0 == 0) size:2.000000, time:0.330001, executed if:(op0 == 0), nonconst if:(op1 changed) && (op0 == 0) size:3.000000, time:0.247492, executed if:(op1 == 0) && (op0 == 0) size:2.000000, time:0.164994, executed if:(op1 != 0) && (op0 == 0) size:1.000000, time:0.660002, executed if:(op0 == 0) && (not inlined) size:5.000000, time:3.349994, executed if:(op0 != 0) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) prvAddCurrentTaskToDelayedList/94 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.05 size: 3 time: 12callee size:24 stack: 0 predicate: (op2 != 0) && (op0 == 0) op1 is compile time invariant vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op0 == 0) IPA function summary for pvTaskIncrementMutexHeldCount/86 inlinable global time: 8.800000 self size: 11 global size: 11 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:6.800000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for uxTaskResetEventItemValue/85 inlinable global time: 9.000000 self size: 10 global size: 10 min size: 0 self stack: 0 global stack: 0 size:7.000000, time:7.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for vTaskList/84 inlinable global time: 510.123258 self size: 47 global size: 56 min size: 100 self stack: 0 global stack: 0 size:26.500000, time:257.292884 size:3.500000, time:2.500000, executed if:(not inlined) calls: vPortFree/96 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 strlen/110 function body not available loop depth: 1 freq:4.33 size: 3 time: 12 sprintf/111 function body not available loop depth: 1 freq:4.33 size: 7 time: 16 op1 is compile time invariant prvWriteNameToBuffer/83 inlined loop depth: 1 freq:4.33 size: 4 time: 13callee size: 8 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 strlen/110 function body not available loop depth: 1 freq:4.33 size: 3 time: 12 strcpy/112 function body not available loop depth: 1 freq:4.33 size: 3 time: 12 uxTaskGetSystemState/53 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.53 size: 5 time: 14callee size:28 stack: 0 op2 is compile time invariant pvPortMalloc/95 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 IPA function summary for vTaskPriorityDisinheritAfterTimeout/82 inlinable global time: 10.371966 self size: 55 global size: 55 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.350000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.700000, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed || op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.462001, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:23.000000, time:0.526507, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:3.000000, time:0.062873, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.137442, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.032437, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed || op1 changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.027488, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.109954, executed if:(op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 160] changed) && (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:1.252873, executed if:(op0 == 0B || op0[ref offset: 608] != 0) && (not inlined) size:5.000000, time:1.749999, executed if:(op0[ref offset: 608] == 0) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 608] == 1) && (op0[ref offset: 608] != 0) && (op0 != 0B) IPA function summary for xTaskPriorityDisinherit/81 inlinable global time: 9.958189 self size: 50 global size: 50 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:8.000000, time:4.549986, executed if:(op0 != 0B) size:0.500000, time:0.104999, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:0.524994, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0 != 0B) size:3.000000, time:0.243603, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 608] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:3.500000, time:0.121103, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:16.500000, time:0.406951, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.052501, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:2.000000, time:0.210002, executed if:(op0[ref offset: 608] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 576] changed) && (op0[ref offset: 608] != 0) && (op0 != 0B) size:1.000000, time:0.809999, executed if:(op0 == 0B || op0[ref offset: 608] != 0) && (not inlined) size:5.000000, time:0.525006, executed if:(op0[ref offset: 608] == 0) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 predicate: (op0[ref offset: 608] != 0) && (op0 != 0B) IPA function summary for xTaskPriorityInherit/80 inlinable global time: 14.781628 self size: 48 global size: 48 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: 352] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 352] changed) && (op0 != 0B) size:30.000000, time:6.590815, executed if:(op0 != 0B) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 576] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 576] changed) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:0.875000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 192] changed) && (op0 != 0B) size:3.000000, time:0.369758, executed if:(op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) size:2.000000, time:0.700000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 352] changed || op0[ref offset: 160] changed) && (op0 != 0B) calls: uxListRemove/103 function body not available loop depth: 0 freq:0.06 size: 2 time: 11 predicate: (op0 != 0B) IPA function summary for xTaskGetSchedulerState/79 inlinable global time: 6.500000 self size: 9 global size: 9 min size: 0 self stack: 0 global stack: 0 size:6.000000, time:4.500000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskGetCurrentTaskHandle/78 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for prvResetNextTaskUnblockTime/77 inlinable global time: 8.500000 self size: 9 global size: 12 min size: 9 self stack: 0 global stack: 0 estimated growth:11 size:9.000000, time:6.500000 size:3.000000, time:2.000000, executed if:(not inlined) calls: prvResetNextTaskUnblockTime.part.0/115 inlined loop depth: 0 freq:0.50 size: 1 time: 10callee size: 3 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for uxTaskGetStackHighWaterMark/75 inlinable global time: 49.754546 self size: 10 global size: 13 min size: 6 self stack: 0 global stack: 0 size:7.000000, time:45.454546 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: prvTaskCheckFreeStackSpace/180 inlined loop depth: 0 freq:1.00 size: 3 time: 12callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for prvListTasksWithinSingleList/73 inlinable global time: 121.384091 self size: 11 global size: 30 min size: 0 self stack: 0 global stack: 0 estimated growth:4 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 0] changed) size:18.500000, time:52.497728, executed if:(op1[ref offset: 0] != 0) size:0.500000, time:0.250000, executed if:(op1[ref offset: 0] != 0), nonconst if:(op1[ref offset: 32] changed) && (op1[ref offset: 0] != 0) calls: prvListTasksWithinSingleList.part.0/158 inlined loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vTaskGetInfo/72 call is unlikely and code size would grow loop depth: 1 freq:4.55 size: 5 time: 14callee size:23 stack: 0 predicate: (op1[ref offset: 0] != 0) op2 is compile time invariant op3 change 10.990000% of time IPA function summary for vTaskGetInfo/72 inlinable global time: 44.916434 self size: 44 global size: 47 min size: 8 self stack: 0 global stack: 0 estimated growth:27 size:7.500000, time:7.500000 size:6.500000, time:5.500000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) size:2.000000, time:2.000000, nonconst if:(op3 changed) size:0.500000, time:0.101200, executed if:(op3 == 5) && (not inlined) size:0.500000, time:0.101200, executed if:(op3 == 5) size:4.000000, time:2.791600, executed if:(op3 != 5) size:1.000000, time:0.398800, executed if:(op3 != 5) && (not inlined) size:2.000000, time:1.116640, executed if:(op3 != 5), nonconst if:(op3 changed) && (op3 != 5) size:3.500000, time:0.378563, executed if:(op3 == 3) && (op3 != 5) size:0.500000, time:0.039551, executed if:(op3 == 3) && (op3 != 5) && (not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:0.500000, time:0.335000, executed if:(op2 == 0) && (not inlined) size:0.500000, time:0.335000, executed if:(op2 == 0) size:7.500000, time:15.165000, executed if:(op2 != 0) size:0.500000, time:0.165000, executed if:(op2 != 0) && (not inlined) calls: prvTaskCheckFreeStackSpace/74 inlined loop depth: 0 freq:0.33 size: 3 time: 12callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 eTaskGetState/35 call is unlikely and code size would grow loop depth: 0 freq:0.20 size: 3 time: 12callee size:18 stack: 0 predicate: (op3 == 5) xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.11 size: 1 time: 10callee size:48 stack: 0 predicate: (op3 == 3) && (op3 != 5) vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.11 size: 1 time: 10callee size: 3 stack: 0 predicate: (op3 == 3) && (op3 != 5) IPA function summary for prvIdleTask/69 inlinable global time: 8976808.421875 self size: 9 global size: 28 min size: 30 self stack: 0 global stack: 0 size:17.500000, time:1708730.259766 size:2.000000, time:0.000000, executed if:(not inlined) calls: prvCheckTasksWaitingTermination/71 inlined loop depth: 2 freq:16949.09 size: 1 time: 10callee size:10 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 prvDeleteTCB/179 inlined loop depth: 3 freq:137133.55 size: 2 time: 11callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vPortFree/96 function body not available loop depth: 3 freq:137133.55 size: 2 time: 11 vPortFree/96 function body not available loop depth: 3 freq:137133.55 size: 2 time: 11 vPortExitCritical/101 function body not available loop depth: 3 freq:137133.55 size: 1 time: 10 uxListRemove/103 function body not available loop depth: 3 freq:137133.55 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 3 freq:137133.55 size: 1 time: 10 IPA function summary for vTaskSetTaskNumber/68 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) size:0.500000, time:0.350000, executed if:(op0 != 0B) calls: IPA function summary for uxTaskGetTaskNumber/67 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: 544] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 544] changed) && (op0 != 0B) calls: IPA function summary for vTaskMissedYield/66 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskCheckForTimeOut/65 inlinable global time: 19.619846 self size: 46 global size: 46 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.400002, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:22.000000, time:4.152264, executed if:(op1 != 0B) && (op0 != 0B) size:4.000000, time:1.152813, executed if:(op1 != 0B) && (op0 != 0B) && (not inlined) size:5.000000, time:1.628552, executed if:(op1 == 0B) && (op0 != 0B) size:5.000000, time:1.499995, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op1 != 0B) && (op0 != 0B) vTaskInternalSetTimeOutState/64 call is unlikely and code size would grow loop depth: 0 freq:0.03 size: 2 time: 11callee size: 3 stack: 0 predicate: (op1 != 0B) && (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op1 != 0B) && (op0 != 0B) IPA function summary for vTaskInternalSetTimeOutState/64 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 3 self stack: 0 global stack: 0 estimated growth:1 size:3.000000, time:3.000000 size:4.000000, time:3.000000, executed if:(not inlined) calls: IPA function summary for vTaskSetTimeOutState/63 inlinable global time: 18.228702 self size: 16 global size: 16 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:3.000000, time:1.604100, executed if:(op0 != 0B) size:2.000000, time:1.604100, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskRemoveFromUnorderedEventList/62 inlinable global time: 25.410043 self size: 69 global size: 69 min size: 0 self stack: 0 global stack: 0 size:8.500000, time:5.750000 size:2.500000, time:0.250000, executed if:(not inlined) size:1.000000, time:0.500000, nonconst if:(op1 changed) size:0.500000, time:0.250000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:2.500000, time:1.250000, nonconst if:(op0[ref offset: 96] changed) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 96] != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 96] != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 96] != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op0[ref offset: 96] != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 96] != 0B) size:44.000000, time:14.560043, executed if:(op0[ref offset: 96] != 0B) size:2.000000, time:1.050003, executed if:(op0[ref offset: 96] != 0B) && (not inlined) size:5.000000, time:0.749995, executed if:(op0[ref offset: 96] == 0B) calls: IPA function summary for xTaskRemoveFromEventList/61 inlinable global time: 35.040046 self size: 74 global size: 74 min size: 0 self stack: 0 global stack: 0 size:70.000000, time:32.640046 size:3.000000, time:1.399999, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 96] changed) calls: IPA function summary for vTaskPlaceOnEventListRestricted/60 inlinable global time: 25.899992 self size: 31 global size: 31 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) size:12.500000, time:8.749997, executed if:(op0 != 0B) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:1.500000, time:1.050000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:1.500000, time:1.749999, executed if:(op0 != 0B) && (not inlined) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op2 changed) && (op0 != 0B) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 call is unlikely and code size would grow loop depth: 0 freq:0.70 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0B) IPA function summary for vTaskPlaceOnUnorderedEventList/59 inlinable global time: 15.568078 self size: 40 global size: 40 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:22.500000, time:7.794538, executed if:(op0 != 0B) size:1.000000, time:0.231002, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.115501, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.115501, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) size:0.500000, time:0.115501, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:1.500000, time:0.346503, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:1.500000, time:0.577504, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.23 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0B) op1 is compile time invariant IPA function summary for vTaskPlaceOnEventList/58 inlinable global time: 18.763402 self size: 17 global size: 17 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.534700, executed if:(op0 != 0B) size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: prvAddCurrentTaskToDelayedList/94 call is unlikely and code size would grow loop depth: 0 freq:0.53 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0B) op1 is compile time invariant vListInsert/105 function body not available loop depth: 0 freq:0.53 size: 3 time: 12 predicate: (op0 != 0B) IPA function summary for vTaskSwitchContext/57 inlinable global time: 36.726420 self size: 27 global size: 31 min size: 28 self stack: 0 global stack: 0 estimated growth:23 size:28.000000, time:35.212281 size:3.000000, time:1.514139, executed if:(not inlined) calls: vTaskSwitchContext.part.0/146 inlined loop depth: 0 freq:0.24 size: 1 time: 10callee size: 3 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for xTaskIncrementTick/56 inlinable global time: 91.003798 self size: 11 global size: 103 min size: 99 self stack: 0 global stack: 0 estimated growth:6 size:99.000000, time:88.513794 size:3.000000, time:1.665000, executed if:(not inlined) calls: xTaskIncrementTick.part.0/135 inlined loop depth: 0 freq:0.50 size: 2 time: 11callee size:48 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 prvResetNextTaskUnblockTime/77 call is unlikely and code size would grow loop depth: 0 freq:0.08 size: 1 time: 10callee size: 6 stack: 0 IPA function summary for xTaskAbortDelay/55 inlinable global time: 30.114204 self size: 48 global size: 48 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:24.000000, time:3.316918, executed if:(op0 != 0B) size:4.000000, time:1.368894, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.53 size: 1 time: 10callee size:48 stack: 0 predicate: (op0 != 0B) vPortExitCritical/101 function body not available loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.06 size: 2 time: 11 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.11 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.11 size: 2 time: 11 predicate: (op0 != 0B) eTaskGetState/35 call is unlikely and code size would grow loop depth: 0 freq:0.53 size: 3 time: 12callee size:18 stack: 0 predicate: (op0 != 0B) vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.53 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 != 0B) IPA function summary for xTaskCatchUpTicks/54 inlinable global time: 14.930026 self size: 17 global size: 17 min size: 6 self stack: 0 global stack: 0 size:11.000000, time:7.339998 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.33 size: 2 time: 11callee size:48 stack: 0 vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.33 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for uxTaskGetSystemState/53 inlinable global time: 111.350001 self size: 56 global size: 56 min size: 23 self stack: 0 global stack: 0 estimated growth:45 size:23.000000, time:25.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:1.000000, nonconst if:(op2 changed) size:0.500000, time:0.175000, executed if:(op2 != 0B) && (not inlined) size:0.500000, time:0.175000, executed if:(op2 != 0B) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:1.00 size: 1 time: 10callee size:48 stack: 0 prvListTasksWithinSingleList/73 call is unlikely and code size would grow loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 op1 is compile time invariant op2 is compile time invariant prvListTasksWithinSingleList/73 call is unlikely and code size would grow loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 op1 is compile time invariant op2 is compile time invariant prvListTasksWithinSingleList/73 call is unlikely and code size would grow loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 op2 is compile time invariant prvListTasksWithinSingleList/73 call is unlikely and code size would grow loop depth: 0 freq:0.50 size: 5 time: 14callee size:15 stack: 0 op2 is compile time invariant prvListTasksWithinSingleList/73 call is unlikely and code size would grow loop depth: 1 freq:2.50 size: 5 time: 14callee size:15 stack: 0 op2 is compile time invariant vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 1 time: 10callee size: 3 stack: 0 IPA function summary for xTaskGetHandle/52 inlinable global time: 54.551541 self size: 50 global size: 50 min size: 50 self stack: 0 global stack: 0 size:22.000000, time:14.718564 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.33 size: 1 time: 10callee size:48 stack: 0 prvSearchForNameWithinSingleList/51 call is unlikely and code size would grow loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 op0 is compile time invariant prvSearchForNameWithinSingleList/51 call is unlikely and code size would grow loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 op0 is compile time invariant prvSearchForNameWithinSingleList/51 call is unlikely and code size would grow loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 prvSearchForNameWithinSingleList/51 call is unlikely and code size would grow loop depth: 0 freq:0.06 size: 4 time: 13callee size:19 stack: 0 prvSearchForNameWithinSingleList/51 call is unlikely and code size would grow loop depth: 1 freq:1.35 size: 4 time: 13callee size:19 stack: 0 op1 change 73.930000% of time vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.33 size: 1 time: 10callee size: 3 stack: 0 strlen/110 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 IPA function summary for prvSearchForNameWithinSingleList/51 inlinable global time: 474.990788 self size: 38 global size: 38 min size: 0 self stack: 0 global stack: 0 estimated growth:97 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 0] changed) size:0.500000, time:0.355000, executed if:(op0[ref offset: 0] != 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 0] != 0) && (not inlined) size:0.500000, time:0.355000, executed if:(op0[ref offset: 0] != 0), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 0] != 0) size:27.500000, time:457.513131, executed if:(op0[ref offset: 0] != 0) size:3.500000, time:11.767657, executed if:(op0[ref offset: 0] != 0) && (not inlined) calls: IPA function summary for pcTaskGetName/50 inlinable global time: 7.200001 self size: 13 global size: 13 min size: 0 self stack: 0 global stack: 0 size:7.000000, time:3.500001 size:3.000000, time:1.399999, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: IPA function summary for uxTaskGetNumberOfTasks/49 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskGetTickCountFromISR/48 inlinable global time: 13.000000 self size: 5 global size: 5 min size: 2 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskGetTickCount/47 inlinable global time: 3.000000 self size: 4 global size: 4 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for xTaskResumeAll/46 inlinable global time: 57.561863 self size: 13 global size: 96 min size: 88 self stack: 0 global stack: 0 estimated growth:60 size:88.000000, time:45.735643 size:3.000000, time:0.660002, executed if:(not inlined) calls: xTaskResumeAll.part.0/137 inlined loop depth: 0 freq:0.33 size: 2 time: 11callee size:44 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 prvResetNextTaskUnblockTime/77 call is unlikely and code size would grow loop depth: 0 freq:0.04 size: 1 time: 10callee size: 6 stack: 0 xTaskIncrementTick/56 --param max-inline-insns-auto limit reached loop depth: 1 freq:0.38 size: 2 time: 11callee size:51 stack: 0 vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 IPA function summary for vTaskSuspendAll/45 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 4 self stack: 0 global stack: 0 estimated growth:21 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: IPA function summary for vTaskEndScheduler/44 inlinable global time: 18.000000 self size: 10 global size: 10 min size: 2 self stack: 0 global stack: 0 size:6.000000, time:6.000000 size:3.000000, time:2.000000, executed if:(not inlined) calls: vPortEndScheduler/109 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for vTaskStartScheduler/43 inlinable global time: 32.007150 self size: 34 global size: 34 min size: 22 self stack: 0 global stack: 0 size:20.000000, time:9.299132 size:3.000000, time:1.457632, executed if:(not inlined) calls: xPortStartScheduler/108 function body not available loop depth: 0 freq:0.20 size: 1 time: 10 xTimerCreateTimerTask/107 function body not available loop depth: 0 freq:0.20 size: 2 time: 11 xTaskCreate/29 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 8 time: 17callee size:69 stack: 0 op0 is compile time invariant op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant op4 is compile time invariant op5 is compile time invariant IPA function summary for xTaskResumeFromISR/42 inlinable global time: 29.564289 self size: 53 global size: 53 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:31.500000, time:8.928128, executed if:(op0 != 0B) size:3.500000, time:1.517208, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vListInsertEnd/104 function body not available loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0 != 0B) op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.18 size: 2 time: 11 predicate: (op0 != 0B) prvTaskIsTaskSuspended/40 call is unlikely and code size would grow loop depth: 0 freq:0.53 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0 != 0B) vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskResume/41 inlinable global time: 23.678349 self size: 45 global size: 45 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:26.000000, time:5.195383, executed if:(op0 != 0B) size:3.000000, time:1.647032, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) uxListRemove/103 function body not available loop depth: 0 freq:0.12 size: 2 time: 11 predicate: (op0 != 0B) prvTaskIsTaskSuspended/40 call is unlikely and code size would grow loop depth: 0 freq:0.37 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for prvTaskIsTaskSuspended/40 inlinable global time: 7.819003 self size: 16 global size: 18 min size: 0 self stack: 0 global stack: 0 estimated growth:4 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 160] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0[ref offset: 160] == &xSuspendedTaskList || op0[ref offset: 160] != &xSuspendedTaskList) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) size:2.500000, time:0.525002, executed if:(op0[ref offset: 160] == &xSuspendedTaskList) && (op0 != 0B), nonconst if:(op0[ref offset: 320] changed) && (op0[ref offset: 160] == &xSuspendedTaskList) && (op0 != 0B) size:2.000000, time:0.294001, executed if:(op0[ref offset: 320] != &xPendingReadyList) && (op0[ref offset: 160] == &xSuspendedTaskList) && (op0 != 0B), nonconst if:(op0[ref offset: 320] != &xPendingReadyList) && (op0[ref offset: 320] changed) && (op0[ref offset: 160] == &xSuspendedTaskList) && (op0 != 0B) calls: prvTaskIsTaskSuspended.part.0/114 inlined loop depth: 0 freq:0.21 size: 3 time: 12callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for vTaskSuspend/39 inlinable global time: 174.712526 self size: 53 global size: 53 min size: 26 self stack: 0 global stack: 0 size:34.000000, time:111.047613 size:3.000000, time:1.850000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vTaskSwitchContext/57 call is unlikely and code size would grow loop depth: 0 freq:0.07 size: 1 time: 10callee size:15 stack: 0 vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 prvResetNextTaskUnblockTime/77 call is unlikely and code size would grow loop depth: 0 freq:0.33 size: 1 time: 10callee size: 6 stack: 0 vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vListInsertEnd/104 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for vTaskPrioritySet/38 inlinable global time: 20.030363 self size: 66 global size: 66 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:2.000000, time:0.660002, executed if:(op1 <= 4), nonconst if:(op0 changed) && (op1 <= 4) size:1.000000, time:0.099002, executed if:(op0 == 0B) && (op1 <= 4) size:48.000000, time:6.115238, executed if:(op1 <= 4) size:1.000000, time:0.128504, executed if:(op1 <= 4), nonconst if:(op1 changed) && (op1 <= 4) size:1.000000, time:0.660002, executed if:(op1 <= 4) && (not inlined) size:5.000000, time:3.349994, executed if:(op1 > 4) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op1 <= 4) uxListRemove/103 function body not available loop depth: 0 freq:0.04 size: 2 time: 11 predicate: (op1 <= 4) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.33 size: 1 time: 10 predicate: (op1 <= 4) IPA function summary for uxTaskPriorityGetFromISR/37 inlinable global time: 22.300000 self size: 15 global size: 15 min size: 2 self stack: 0 global stack: 0 size:8.000000, time:8.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortValidateInterruptPriority/106 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for uxTaskPriorityGet/36 inlinable global time: 25.300000 self size: 9 global size: 9 min size: 4 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for eTaskGetState/35 inlinable global time: 18.511425 self size: 34 global size: 36 min size: 0 self stack: 0 global stack: 0 estimated growth:54 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:22.500000, time:5.901431, executed if:(op0 != 0B) size:2.000000, time:1.624208, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: eTaskGetState.part.0/122 inlined loop depth: 0 freq:0.03 size: 3 time: 12callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vPortExitCritical/101 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/100 function body not available loop depth: 0 freq:0.37 size: 1 time: 10 predicate: (op0 != 0B) IPA function summary for vTaskDelay/34 inlinable global time: 14.027552 self size: 24 global size: 24 min size: 0 self stack: 0 global stack: 0 size:3.000000, time:1.747506 size:3.000000, time:1.329999, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:10.000000, time:3.505009, executed if:(op0 != 0) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.17 size: 2 time: 11callee size:48 stack: 0 predicate: (op0 != 0) prvAddCurrentTaskToDelayedList/94 call is unlikely and code size would grow loop depth: 0 freq:0.17 size: 3 time: 12callee size:24 stack: 0 predicate: (op0 != 0) op1 is compile time invariant vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.17 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 != 0) IPA function summary for xTaskDelayUntil/33 inlinable global time: 13.723476 self size: 55 global size: 55 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:29.000000, time:3.608499, executed if:(op1 != 0) && (op0 != 0B) size:4.000000, time:0.346496, executed if:(op1 != 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.749999, executed if:(op1 == 0) && (op0 != 0B) size:5.000000, time:1.500002, executed if:(op0 == 0B) calls: xTaskResumeAll/46 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.12 size: 2 time: 11callee size:48 stack: 0 predicate: (op1 != 0) && (op0 != 0B) prvAddCurrentTaskToDelayedList/94 call is unlikely and code size would grow loop depth: 0 freq:0.06 size: 3 time: 12callee size:24 stack: 0 predicate: (op1 != 0) && (op0 != 0B) op1 is compile time invariant vTaskSuspendAll/45 call is unlikely and code size would grow loop depth: 0 freq:0.12 size: 1 time: 10callee size: 3 stack: 0 predicate: (op1 != 0) && (op0 != 0B) IPA function summary for vTaskDelete/32 inlinable global time: 84.931701 self size: 50 global size: 53 min size: 52 self stack: 0 global stack: 0 size:32.500000, time:17.900001 size:3.000000, time:1.850000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:0.300000, executed if:(op0 == 0B) calls: vPortExitCritical/101 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 prvResetNextTaskUnblockTime/77 call is unlikely and code size would grow loop depth: 0 freq:0.70 size: 1 time: 10callee size: 6 stack: 0 prvDeleteTCB/76 inlined loop depth: 0 freq:0.70 size: 2 time: 11callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vPortFree/96 function body not available loop depth: 0 freq:0.70 size: 2 time: 11 vPortFree/96 function body not available loop depth: 0 freq:0.70 size: 2 time: 11 vListInsertEnd/104 function body not available loop depth: 0 freq:0.30 size: 3 time: 12 op0 is compile time invariant uxListRemove/103 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 uxListRemove/103 function body not available loop depth: 0 freq:1.00 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 IPA function summary for xTaskCreate/29 inlinable global time: 70.096758 self size: 29 global size: 138 min size: 65 self stack: 0 global stack: 0 estimated growth:17 size:64.500000, time:16.360540 size:3.000000, time:2.000000, executed if:(not inlined) size:1.000000, time:1.000000, nonconst if:(op2 changed) size:2.000000, time:0.571808, nonconst if:(op1 changed) size:0.500000, time:0.042886, executed if:(op1 == 0B) size:9.000000, time:11.263059, executed if:(op1 != 0B) size:2.000000, time:0.571808, nonconst if:(op4 changed) size:4.000000, time:0.377395, executed if:(op4 <= 4) size:1.000000, time:0.094349, executed if:(op4 <= 4), nonconst if:(op4 <= 4) && (op4 changed) size:2.000000, time:0.188697, executed if:(op4 <= 4), nonconst if:(op5 changed) && (op4 <= 4) size:0.500000, time:0.033022, executed if:(op5 != 0B) && (op4 <= 4) size:5.000000, time:0.957777, executed if:(op4 > 4) calls: prvAddNewTaskToReadyList/31 inlined loop depth: 0 freq:0.29 size: 2 time: 11callee size:28 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vPortExitCritical/101 function body not available loop depth: 0 freq:0.29 size: 1 time: 10 prvInitialiseTaskLists/70 inlined loop depth: 0 freq:0.02 size: 1 time: 10callee size:10 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 vListInitialise/102 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 0 freq:0.02 size: 2 time: 11 op0 is compile time invariant vListInitialise/102 function body not available loop depth: 1 freq:0.09 size: 2 time: 11 vPortEnterCritical/100 function body not available loop depth: 0 freq:0.29 size: 1 time: 10 prvInitialiseNewTask.isra.0/118 inlined loop depth: 0 freq:0.29 size: 8 time: 17callee size:31 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 pxPortInitialiseStack/99 function body not available loop depth: 0 freq:0.09 size: 5 time: 14 predicate: (op4 <= 4) memset/97 function body not available loop depth: 0 freq:0.09 size: 4 time: 13 predicate: (op4 <= 4) op1 is compile time invariant op2 is compile time invariant memset/97 function body not available loop depth: 0 freq:0.09 size: 4 time: 13 predicate: (op4 <= 4) op1 is compile time invariant op2 is compile time invariant vListInitialiseItem/98 function body not available loop depth: 0 freq:0.09 size: 2 time: 11 predicate: (op4 <= 4) vListInitialiseItem/98 function body not available loop depth: 0 freq:0.09 size: 2 time: 11 predicate: (op4 <= 4) memset/97 function body not available loop depth: 0 freq:0.29 size: 4 time: 13 op1 is compile time invariant vPortFree/96 function body not available loop depth: 0 freq:0.09 size: 2 time: 11 pvPortMalloc/95 function body not available loop depth: 0 freq:0.53 size: 3 time: 12 op0 is compile time invariant pvPortMalloc/95 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 Symbol table: prvTaskCheckFreeStackSpace/180 (prvTaskCheckFreeStackSpace) @05f48540 Type: function definition analyzed Visibility: next sharing asm name: 74 References: Referring: Function prvTaskCheckFreeStackSpace/180 is inline copy in uxTaskGetStackHighWaterMark/75 Clone of prvTaskCheckFreeStackSpace/74 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: uxTaskGetStackHighWaterMark/75 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: prvDeleteTCB/179 (prvDeleteTCB) @0602bc40 Type: function definition analyzed Visibility: next sharing asm name: 76 References: Referring: Function prvDeleteTCB/179 is inline copy in prvIdleTask/69 Clone of prvDeleteTCB/76 Availability: local Function flags: count:8687547529 (estimated locally) body local optimize_size Called by: prvCheckTasksWaitingTermination/71 (inlined) (8687547529 (estimated locally),137133.55 per call) Calls: vPortFree/96 (8687547529 (estimated locally),137133.55 per call) vPortFree/96 (8687547529 (estimated locally),137133.55 per call) CSWTCH.225/163 (CSWTCH.225) @064b2798 Type: variable definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: vTaskList/84 (read) Availability: available Varpool flags: initialized read-only const-value-known prvListTasksWithinSingleList.part.0/158 (prvListTasksWithinSingleList.part.0) @062b7b60 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Function prvListTasksWithinSingleList.part.0/158 is inline copy in prvListTasksWithinSingleList/73 Availability: local Function flags: count:118111600 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvListTasksWithinSingleList/73 (inlined) (118111600 (estimated locally),0.50 per call) Calls: vTaskGetInfo/72 (1073741824 (estimated locally),4.55 per call) vTaskSwitchContext.part.0/146 (vTaskSwitchContext.part.0) @0640c2a0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Function vTaskSwitchContext.part.0/146 is inline copy in vTaskSwitchContext/57 Availability: local Function flags: count:107374 (estimated locally) first_run:1 body local split_part optimize_size Called by: vTaskSwitchContext/57 (inlined) (107374 (estimated locally),0.24 per call) Calls: xTaskResumeAll.part.0/137 (xTaskResumeAll.part.0) @0640c620 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write)uxSchedulerSuspended/28 (read)uxCurrentNumberOfTasks/17 (read)xPendingReadyList/13 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write)xPendingReadyList/13 (read)xPendedTicks/21 (read)xYieldPending/22 (write)xPendedTicks/21 (write)xYieldPending/22 (read) Referring: Function xTaskResumeAll.part.0/137 is inline copy in xTaskResumeAll/46 Availability: local Function flags: count:52886 (estimated locally) first_run:1 body local split_part optimize_size Called by: xTaskResumeAll/46 (inlined) (52886 (estimated locally),0.33 per call) Calls: vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) prvResetNextTaskUnblockTime/77 (7070 (estimated locally),0.04 per call) xTaskIncrementTick/56 (60098 (estimated locally),0.38 per call) vPortExitCritical/101 (52886 (estimated locally),0.33 per call) xTaskIncrementTick.part.0/135 (xTaskIncrementTick.part.0) @0640c540 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: xTickCount/18 (read)xTickCount/18 (write)pxDelayedTaskList/11 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)pxDelayedTaskList/11 (write)pxOverflowDelayedTaskList/12 (write)xNumOfOverflows/23 (read)xNumOfOverflows/23 (write)xNextTaskUnblockTime/25 (read)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (read)xYieldPending/22 (read) Referring: Function xTaskIncrementTick.part.0/135 is inline copy in xTaskIncrementTick/56 Availability: local Function flags: count:320520 (estimated locally) first_run:1 body local split_part optimize_size Called by: xTaskIncrementTick/56 (inlined) (320520 (estimated locally),0.50 per call) Calls: prvResetNextTaskUnblockTime/77 (52886 (estimated locally),0.08 per call) eTaskGetState.part.0/122 (eTaskGetState.part.0) @062b79a0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Function eTaskGetState.part.0/122 is inline copy in eTaskGetState/35 Availability: local Function flags: count:11759 (estimated locally) first_run:1 body local split_part optimize_size Called by: eTaskGetState/35 (inlined) (11759 (estimated locally),0.03 per call) Calls: prvAddCurrentTaskToDelayedList.part.0/119 (prvAddCurrentTaskToDelayedList.part.0) @0601d540 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: xSuspendedTaskList/16 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSuspendedTaskList/16 (read)xSuspendedTaskList/16 (write) Referring: Function prvAddCurrentTaskToDelayedList.part.0/119 is inline copy in prvAddCurrentTaskToDelayedList/94 Availability: local Function flags: count:182536110 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvAddCurrentTaskToDelayedList/94 (inlined) (182536110 (estimated locally),0.17 per call) Calls: prvInitialiseNewTask.isra.0/118 (prvInitialiseNewTask.isra.0) @0601d2a0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Function prvInitialiseNewTask.isra.0/118 is inline copy in xTaskCreate/29 Availability: local Function flags: count:306987179 (estimated locally) body local optimize_size Called by: xTaskCreate/29 (inlined) (306987179 (estimated locally),0.29 per call) Calls: pxPortInitialiseStack/99 (101306152 (estimated locally),0.09 per call) memset/97 (101306152 (estimated locally),0.09 per call) memset/97 (101306152 (estimated locally),0.09 per call) vListInitialiseItem/98 (101306152 (estimated locally),0.09 per call) vListInitialiseItem/98 (101306152 (estimated locally),0.09 per call) memset/97 (306987179 (estimated locally),0.29 per call) prvResetNextTaskUnblockTime.part.0/115 (prvResetNextTaskUnblockTime.part.0) @06015e00 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write) Referring: Function prvResetNextTaskUnblockTime.part.0/115 is inline copy in prvResetNextTaskUnblockTime/77 Availability: local Function flags: count:536870912 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvResetNextTaskUnblockTime/77 (inlined) (536870912 (estimated locally),0.50 per call) Calls: prvTaskIsTaskSuspended.part.0/114 (prvTaskIsTaskSuspended.part.0) @05f482a0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: xPendingReadyList/13 (addr) Referring: Function prvTaskIsTaskSuspended.part.0/114 is inline copy in prvTaskIsTaskSuspended/40 Availability: local Function flags: count:75162 (estimated locally) first_run:1 body local split_part optimize_size Called by: prvTaskIsTaskSuspended/40 (inlined) (75162 (estimated locally),0.21 per call) Calls: strcpy/112 (strcpy) @06243000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvWriteNameToBuffer/83 (955630226 (estimated locally),4.33 per call) Calls: sprintf/111 (sprintf) @06221ee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskList/84 (955630226 (estimated locally),4.33 per call) Calls: strlen/110 (strlen) @061c69a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskList/84 (955630226 (estimated locally),4.33 per call) xTaskGetHandle/52 (160260 (estimated locally),1.00 per call) prvWriteNameToBuffer/83 (955630226 (estimated locally),4.33 per call) Calls: vPortEndScheduler/109 (vPortEndScheduler) @061c6000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskEndScheduler/44 (1073741824 (estimated locally),1.00 per call) Calls: xPortStartScheduler/108 (xPortStartScheduler) @0260ac40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskStartScheduler/43 (80139 (estimated locally),0.20 per call) Calls: xTimerCreateTimerTask/107 (xTimerCreateTimerTask) @0260ab60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskStartScheduler/43 (80139 (estimated locally),0.20 per call) Calls: vPortValidateInterruptPriority/106 (vPortValidateInterruptPriority) @025f3e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskGenericNotifyGiveFromISR/91 (52886 (estimated locally),0.23 per call) xTaskGenericNotifyFromISR/90 (52886 (estimated locally),0.23 per call) xTaskGetTickCountFromISR/48 (1073741824 (estimated locally),1.00 per call) xTaskResumeFromISR/42 (123389 (estimated locally),0.53 per call) uxTaskPriorityGetFromISR/37 (1073741824 (estimated locally),1.00 per call) Calls: vListInsert/105 (vListInsert) @025f37e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskPlaceOnEventList/58 (123389 (estimated locally),0.53 per call) prvAddCurrentTaskToDelayedList/94 (445602856 (estimated locally),0.41 per call) prvAddCurrentTaskToDelayedList/94 (445602856 (estimated locally),0.41 per call) Calls: vListInsertEnd/104 (vListInsertEnd) @025f30e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskSuspend/39 (1431653 (estimated locally),1.00 per call) xTaskResumeFromISR/42 (20359 (estimated locally),0.09 per call) vTaskDelete/32 (429496 (estimated locally),0.30 per call) Calls: uxListRemove/103 (uxListRemove) @025f3000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskPriorityDisinheritAfterTimeout/82 (2940 (estimated locally),0.01 per call) xTaskPriorityDisinherit/81 (5011 (estimated locally),0.02 per call) xTaskPriorityInherit/80 (65503620 (estimated locally),0.06 per call) vTaskSuspend/39 (765505 (estimated locally),0.53 per call) vTaskSuspend/39 (1431653 (estimated locally),1.00 per call) xTaskAbortDelay/55 (13354 (estimated locally),0.06 per call) xTaskAbortDelay/55 (24974 (estimated locally),0.11 per call) xTaskResumeFromISR/42 (41335 (estimated locally),0.18 per call) vTaskResume/41 (44208 (estimated locally),0.12 per call) vTaskPrioritySet/38 (6084 (estimated locally),0.04 per call) vTaskDelete/32 (765505 (estimated locally),0.53 per call) vTaskDelete/32 (1431653 (estimated locally),1.00 per call) prvAddCurrentTaskToDelayedList/94 (1073741823 (estimated locally),1.00 per call) prvCheckTasksWaitingTermination/71 (8687547529 (estimated locally),137133.55 per call) Calls: vListInitialise/102 (vListInitialise) @061a6ee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseTaskLists/70 (18640261 (estimated locally),0.02 per call) prvInitialiseTaskLists/70 (18640261 (estimated locally),0.02 per call) prvInitialiseTaskLists/70 (18640261 (estimated locally),0.02 per call) prvInitialiseTaskLists/70 (18640261 (estimated locally),0.02 per call) prvInitialiseTaskLists/70 (18640261 (estimated locally),0.02 per call) prvInitialiseTaskLists/70 (93178941 (estimated locally),0.09 per call) Calls: vPortExitCritical/101 (vPortExitCritical) @061a6d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: ulTaskGenericNotifyValueClear/93 (1073741824 (estimated locally),1.00 per call) xTaskGenericNotifyStateClear/92 (107374 (estimated locally),0.50 per call) xTaskGenericNotify/89 (33803 (estimated locally),0.16 per call) xTaskGenericNotifyWait/88 (52886 (estimated locally),0.33 per call) xTaskGenericNotifyWait/88 (52886 (estimated locally),0.33 per call) ulTaskGenericNotifyTake/87 (52886 (estimated locally),0.33 per call) ulTaskGenericNotifyTake/87 (52886 (estimated locally),0.33 per call) xTaskCheckForTimeOut/65 (123389 (estimated locally),0.37 per call) vTaskSetTimeOutState/63 (123389 (estimated locally),0.53 per call) vTaskSuspend/39 (472446 (estimated locally),0.33 per call) vTaskSuspend/39 (1431653 (estimated locally),1.00 per call) xTaskAbortDelay/55 (24974 (estimated locally),0.11 per call) xTaskResumeAll.part.0/137 (52886 (estimated locally),0.33 per call) vTaskResume/41 (133963 (estimated locally),0.37 per call) vTaskPrioritySet/38 (52886 (estimated locally),0.33 per call) uxTaskPriorityGet/36 (1073741824 (estimated locally),1.00 per call) eTaskGetState/35 (133963 (estimated locally),0.37 per call) vTaskDelete/32 (1431653 (estimated locally),1.00 per call) prvCheckTasksWaitingTermination/71 (8687547529 (estimated locally),137133.55 per call) prvAddNewTaskToReadyList/31 (306987180 (estimated locally),0.29 per call) Calls: vPortEnterCritical/100 (vPortEnterCritical) @061a6b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: ulTaskGenericNotifyValueClear/93 (1073741824 (estimated locally),1.00 per call) xTaskGenericNotifyStateClear/92 (107374 (estimated locally),0.50 per call) xTaskGenericNotify/89 (57413 (estimated locally),0.27 per call) xTaskGenericNotifyWait/88 (52886 (estimated locally),0.33 per call) xTaskGenericNotifyWait/88 (52886 (estimated locally),0.33 per call) ulTaskGenericNotifyTake/87 (52886 (estimated locally),0.33 per call) ulTaskGenericNotifyTake/87 (52886 (estimated locally),0.33 per call) xTaskCheckForTimeOut/65 (123389 (estimated locally),0.37 per call) vTaskSetTimeOutState/63 (123389 (estimated locally),0.53 per call) vTaskSuspend/39 (472446 (estimated locally),0.33 per call) vTaskSuspend/39 (1431653 (estimated locally),1.00 per call) xTaskAbortDelay/55 (24974 (estimated locally),0.11 per call) xTaskResumeAll.part.0/137 (52886 (estimated locally),0.33 per call) vTaskResume/41 (133963 (estimated locally),0.37 per call) vTaskPrioritySet/38 (52886 (estimated locally),0.33 per call) uxTaskPriorityGet/36 (1073741824 (estimated locally),1.00 per call) eTaskGetState/35 (133963 (estimated locally),0.37 per call) vTaskDelete/32 (1431653 (estimated locally),1.00 per call) prvCheckTasksWaitingTermination/71 (8687547529 (estimated locally),137133.55 per call) prvAddNewTaskToReadyList/31 (306987179 (estimated locally),0.29 per call) Calls: pxPortInitialiseStack/99 (pxPortInitialiseStack) @061a68c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTask.isra.0/118 (101306152 (estimated locally),0.09 per call) Calls: vListInitialiseItem/98 (vListInitialiseItem) @061a67e0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTask.isra.0/118 (101306152 (estimated locally),0.09 per call) prvInitialiseNewTask.isra.0/118 (101306152 (estimated locally),0.09 per call) Calls: memset/97 (memset) @061a6700 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvInitialiseNewTask.isra.0/118 (101306152 (estimated locally),0.09 per call) prvInitialiseNewTask.isra.0/118 (101306152 (estimated locally),0.09 per call) prvInitialiseNewTask.isra.0/118 (306987179 (estimated locally),0.29 per call) Calls: vPortFree/96 (vPortFree) @061a6540 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvDeleteTCB/179 (8687547529 (estimated locally),137133.55 per call) prvDeleteTCB/179 (8687547529 (estimated locally),137133.55 per call) vTaskList/84 (118111601 (estimated locally),0.53 per call) xTaskCreate/29 (100070816 (estimated locally),0.09 per call) prvDeleteTCB/76 (1002157 (estimated locally),0.70 per call) prvDeleteTCB/76 (1002157 (estimated locally),0.70 per call) Calls: pvPortMalloc/95 (pvPortMalloc) @061a6460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vTaskList/84 (220893212 (estimated locally),1.00 per call) xTaskCreate/29 (574129754 (estimated locally),0.53 per call) xTaskCreate/29 (1073741824 (estimated locally),1.00 per call) Calls: prvAddCurrentTaskToDelayedList/94 (prvAddCurrentTaskToDelayedList) @061a6000 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxOverflowDelayedTaskList/12 (read)pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxCurrentTCB/7 (read)xNextTaskUnblockTime/25 (read)xNextTaskUnblockTime/25 (write) Referring: Availability: local Function flags: count:1073741823 (estimated locally) body local optimize_size Called by: xTaskGenericNotifyWait/88 (11519 (estimated locally),0.07 per call) ulTaskGenericNotifyTake/87 (8726 (estimated locally),0.05 per call) vTaskPlaceOnEventListRestricted/60 (250539 (estimated locally),0.70 per call) vTaskPlaceOnUnorderedEventList/59 (52886 (estimated locally),0.23 per call) vTaskPlaceOnEventList/58 (123389 (estimated locally),0.53 per call) vTaskDelay/34 (52886 (estimated locally),0.17 per call) xTaskDelayUntil/33 (17717 (estimated locally),0.06 per call) Calls: vListInsert/105 (445602856 (estimated locally),0.41 per call) vListInsert/105 (445602856 (estimated locally),0.41 per call) prvAddCurrentTaskToDelayedList.part.0/119 (inlined) (182536110 (estimated locally),0.17 per call) uxListRemove/103 (1073741823 (estimated locally),1.00 per call) ulTaskGenericNotifyValueClear/93 (ulTaskGenericNotifyValueClear) @0616c540 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/100 (1073741824 (estimated locally),1.00 per call) xTaskGenericNotifyStateClear/92 (xTaskGenericNotifyStateClear) @0616cd20 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:214748 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (107374 (estimated locally),0.50 per call) vPortEnterCritical/100 (107374 (estimated locally),0.50 per call) vTaskGenericNotifyGiveFromISR/91 (vTaskGenericNotifyGiveFromISR) @0616c8c0 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: count:228942 (estimated locally) body optimize_size Called by: Calls: vPortValidateInterruptPriority/106 (52886 (estimated locally),0.23 per call) xTaskGenericNotifyFromISR/90 (xTaskGenericNotifyFromISR) @0616c460 Type: function definition analyzed Visibility: externally_visible public References: xTickCount/18 (read)uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: count:228942 (estimated locally) body optimize_size Called by: Calls: vPortValidateInterruptPriority/106 (52886 (estimated locally),0.23 per call) xTaskGenericNotify/89 (xTaskGenericNotify) @0615ee00 Type: function definition analyzed Visibility: externally_visible public References: xTickCount/18 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:214748 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (33803 (estimated locally),0.16 per call) vPortEnterCritical/100 (57413 (estimated locally),0.27 per call) xTaskGenericNotifyWait/88 (xTaskGenericNotifyWait) @0615ed20 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (52886 (estimated locally),0.33 per call) vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) vPortExitCritical/101 (52886 (estimated locally),0.33 per call) prvAddCurrentTaskToDelayedList/94 (11519 (estimated locally),0.07 per call) vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) ulTaskGenericNotifyTake/87 (ulTaskGenericNotifyTake) @0615e8c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (52886 (estimated locally),0.33 per call) vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) vPortExitCritical/101 (52886 (estimated locally),0.33 per call) prvAddCurrentTaskToDelayedList/94 (8726 (estimated locally),0.05 per call) vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) pvTaskIncrementMutexHeldCount/86 (pvTaskIncrementMutexHeldCount) @0615e460 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxTaskResetEventItemValue/85 (uxTaskResetEventItemValue) @0615e1c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vTaskList/84 (vTaskList) @0613fc40 Type: function definition analyzed Visibility: externally_visible public References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (read)CSWTCH.225/163 (read) Referring: Availability: available Function flags: count:220893212 (estimated locally) body optimize_size Called by: Calls: vPortFree/96 (118111601 (estimated locally),0.53 per call) strlen/110 (955630226 (estimated locally),4.33 per call) sprintf/111 (955630226 (estimated locally),4.33 per call) prvWriteNameToBuffer/83 (inlined) (955630226 (estimated locally),4.33 per call) uxTaskGetSystemState/53 (118111600 (estimated locally),0.53 per call) pvPortMalloc/95 (220893212 (estimated locally),1.00 per call) prvWriteNameToBuffer/83 (prvWriteNameToBuffer) @0613f540 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Function prvWriteNameToBuffer/83 is inline copy in vTaskList/84 Availability: local Function flags: count:955630226 (estimated locally) body local optimize_size Called by: vTaskList/84 (inlined) (955630226 (estimated locally),4.33 per call) Calls: strlen/110 (955630226 (estimated locally),4.33 per call) strcpy/112 (955630226 (estimated locally),4.33 per call) vTaskPriorityDisinheritAfterTimeout/82 (vTaskPriorityDisinheritAfterTimeout) @0613f000 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: count:306783 (estimated locally) body optimize_size Called by: Calls: uxListRemove/103 (2940 (estimated locally),0.01 per call) xTaskPriorityDisinherit/81 (xTaskPriorityDisinherit) @0613fb60 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: count:219131 (estimated locally) body optimize_size Called by: Calls: uxListRemove/103 (5011 (estimated locally),0.02 per call) xTaskPriorityInherit/80 (xTaskPriorityInherit) @0613f700 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxListRemove/103 (65503620 (estimated locally),0.06 per call) xTaskGetSchedulerState/79 (xTaskGetSchedulerState) @0613f460 Type: function definition analyzed Visibility: externally_visible public References: xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTaskGetCurrentTaskHandle/78 (xTaskGetCurrentTaskHandle) @0613f1c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvResetNextTaskUnblockTime/77 (prvResetNextTaskUnblockTime) @06133c40 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxDelayedTaskList/11 (read)xNextTaskUnblockTime/25 (write) Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: vTaskSuspend/39 (472446 (estimated locally),0.33 per call) xTaskResumeAll.part.0/137 (7070 (estimated locally),0.04 per call) xTaskIncrementTick.part.0/135 (52886 (estimated locally),0.08 per call) vTaskDelete/32 (1002157 (estimated locally),0.70 per call) Calls: prvResetNextTaskUnblockTime.part.0/115 (inlined) (536870912 (estimated locally),0.50 per call) prvDeleteTCB/76 (prvDeleteTCB) @06133380 Type: function definition analyzed Visibility: prevailing_def_ironly previous sharing asm name: 179 References: Referring: Function prvDeleteTCB/76 is inline copy in vTaskDelete/32 Availability: local Function flags: count:1002157 (estimated locally) body local optimize_size Called by: vTaskDelete/32 (inlined) (1002157 (estimated locally),0.70 per call) Calls: vPortFree/96 (1002157 (estimated locally),0.70 per call) vPortFree/96 (1002157 (estimated locally),0.70 per call) uxTaskGetStackHighWaterMark/75 (uxTaskGetStackHighWaterMark) @06133ee0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvTaskCheckFreeStackSpace/180 (inlined) (1073741824 (estimated locally),1.00 per call) prvTaskCheckFreeStackSpace/74 (prvTaskCheckFreeStackSpace) @06133b60 Type: function definition analyzed Visibility: prevailing_def_ironly previous sharing asm name: 180 References: Referring: Function prvTaskCheckFreeStackSpace/74 is inline copy in vTaskGetInfo/72 Availability: local Function flags: count:354334802 (estimated locally) body local optimize_size Called by: vTaskGetInfo/72 (inlined) (354334802 (estimated locally),0.33 per call) Calls: prvListTasksWithinSingleList/73 (prvListTasksWithinSingleList) @061338c0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:236223200 (estimated locally) body local optimize_size Called by: uxTaskGetSystemState/53 (214748365 (estimated locally),0.50 per call) uxTaskGetSystemState/53 (214748365 (estimated locally),0.50 per call) uxTaskGetSystemState/53 (214748365 (estimated locally),0.50 per call) uxTaskGetSystemState/53 (214748365 (estimated locally),0.50 per call) uxTaskGetSystemState/53 (1073741824 (estimated locally),2.50 per call) Calls: prvListTasksWithinSingleList.part.0/158 (inlined) (118111600 (estimated locally),0.50 per call) vTaskGetInfo/72 (vTaskGetInfo) @06133620 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: prvListTasksWithinSingleList.part.0/158 (1073741824 (estimated locally),4.55 per call) Calls: prvTaskCheckFreeStackSpace/74 (inlined) (354334802 (estimated locally),0.33 per call) eTaskGetState/35 (217325345 (estimated locally),0.20 per call) xTaskResumeAll/46 (121337087 (estimated locally),0.11 per call) vTaskSuspendAll/45 (121337087 (estimated locally),0.11 per call) prvCheckTasksWaitingTermination/71 (prvCheckTasksWaitingTermination) @061332a0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xTasksWaitingTermination/14 (read)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxDeletedTasksWaitingCleanUp/15 (read) Referring: Function prvCheckTasksWaitingTermination/71 is inline copy in prvIdleTask/69 Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: prvIdleTask/69 (inlined) (1073741824 (estimated locally),16949.09 per call) Calls: prvDeleteTCB/179 (inlined) (8687547529 (estimated locally),137133.55 per call) vPortExitCritical/101 (8687547529 (estimated locally),137133.55 per call) uxListRemove/103 (8687547529 (estimated locally),137133.55 per call) vPortEnterCritical/100 (8687547529 (estimated locally),137133.55 per call) prvInitialiseTaskLists/70 (prvInitialiseTaskLists) @0612fee0 Type: function definition analyzed Visibility: prevailing_def_ironly References: pxReadyTasksLists/8 (addr)xDelayedTaskList1/9 (addr)xDelayedTaskList2/10 (addr)xPendingReadyList/13 (addr)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr)pxDelayedTaskList/11 (write)xDelayedTaskList1/9 (addr)pxOverflowDelayedTaskList/12 (write)xDelayedTaskList2/10 (addr) Referring: Function prvInitialiseTaskLists/70 is inline copy in xTaskCreate/29 Availability: local Function flags: count:18640261 (estimated locally) body local optimize_size Called by: prvAddNewTaskToReadyList/31 (inlined) (18640261 (estimated locally),0.02 per call) Calls: vListInitialise/102 (18640261 (estimated locally),0.02 per call) vListInitialise/102 (18640261 (estimated locally),0.02 per call) vListInitialise/102 (18640261 (estimated locally),0.02 per call) vListInitialise/102 (18640261 (estimated locally),0.02 per call) vListInitialise/102 (18640261 (estimated locally),0.02 per call) vListInitialise/102 (93178941 (estimated locally),0.09 per call) prvIdleTask/69 (prvIdleTask) @0612f9a0 Type: function definition analyzed Visibility: prevailing_def_ironly Address is taken. References: pxReadyTasksLists/8 (read) Referring: vTaskStartScheduler/43 (addr) Availability: available Function flags: count:63351 (estimated locally) body executed_once optimize_size Called by: Calls: prvCheckTasksWaitingTermination/71 (inlined) (1073741824 (estimated locally),16949.09 per call) vTaskSetTaskNumber/68 (vTaskSetTaskNumber) @0612fe00 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxTaskGetTaskNumber/67 (uxTaskGetTaskNumber) @0612fb60 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vTaskMissedYield/66 (vTaskMissedYield) @0612f8c0 Type: function definition analyzed Visibility: externally_visible public References: xYieldPending/22 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTaskCheckForTimeOut/65 (xTaskCheckForTimeOut) @0612f620 Type: function definition analyzed Visibility: externally_visible public References: xTickCount/18 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)xNumOfOverflows/23 (read) Referring: Availability: available Function flags: count:329661 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (123389 (estimated locally),0.37 per call) vTaskInternalSetTimeOutState/64 (9003 (estimated locally),0.03 per call) vPortEnterCritical/100 (123389 (estimated locally),0.37 per call) vTaskInternalSetTimeOutState/64 (vTaskInternalSetTimeOutState) @0612f1c0 Type: function definition analyzed Visibility: externally_visible public References: xNumOfOverflows/23 (read)xTickCount/18 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: xTaskCheckForTimeOut/65 (9003 (estimated locally),0.03 per call) Calls: vTaskSetTimeOutState/63 (vTaskSetTimeOutState) @06092b60 Type: function definition analyzed Visibility: externally_visible public References: xNumOfOverflows/23 (read)xTickCount/18 (read) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (123389 (estimated locally),0.53 per call) vPortEnterCritical/100 (123389 (estimated locally),0.53 per call) vTaskRemoveFromUnorderedEventList/62 (vTaskRemoveFromUnorderedEventList) @06092ee0 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: count:214748 (estimated locally) body optimize_size Called by: Calls: xTaskRemoveFromEventList/61 (xTaskRemoveFromEventList) @06092a80 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (read)xPendingReadyList/13 (addr)xPendingReadyList/13 (read)xPendingReadyList/13 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: vTaskPlaceOnEventListRestricted/60 (vTaskPlaceOnEventListRestricted) @06092620 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: prvAddCurrentTaskToDelayedList/94 (250539 (estimated locally),0.70 per call) vTaskPlaceOnUnorderedEventList/59 (vTaskPlaceOnUnorderedEventList) @060922a0 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:228942 (estimated locally) body optimize_size Called by: Calls: prvAddCurrentTaskToDelayedList/94 (52886 (estimated locally),0.23 per call) vTaskPlaceOnEventList/58 (vTaskPlaceOnEventList) @06082a80 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: prvAddCurrentTaskToDelayedList/94 (123389 (estimated locally),0.53 per call) vListInsert/105 (123389 (estimated locally),0.53 per call) vTaskSwitchContext/57 (vTaskSwitchContext) @06082e00 Type: function definition analyzed Visibility: force_output externally_visible public References: uxSchedulerSuspended/28 (read)xYieldPending/22 (write)xYieldPending/22 (write)uxTopReadyPriority/19 (read)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (write)pxReadyTasksLists/8 (read)pxCurrentTCB/7 (write)uxTopReadyPriority/19 (write) Referring: Availability: available Function flags: count:441995 (estimated locally) body optimize_size Called by: vTaskSuspend/39 (104969 (estimated locally),0.07 per call) Calls: vTaskSwitchContext.part.0/146 (inlined) (107374 (estimated locally),0.24 per call) xTaskIncrementTick/56 (xTaskIncrementTick) @060829a0 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)xPendedTicks/21 (read)xPendedTicks/21 (write) Referring: Availability: available Function flags: count:641039 (estimated locally) body optimize_size Called by: xTaskResumeAll.part.0/137 (60098 (estimated locally),0.38 per call) Calls: xTaskIncrementTick.part.0/135 (inlined) (320520 (estimated locally),0.50 per call) xTaskAbortDelay/55 (xTaskAbortDelay) @06082380 Type: function definition analyzed Visibility: externally_visible public References: uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read)xYieldPending/22 (write) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (123389 (estimated locally),0.53 per call) vPortExitCritical/101 (24974 (estimated locally),0.11 per call) uxListRemove/103 (13354 (estimated locally),0.06 per call) vPortEnterCritical/100 (24974 (estimated locally),0.11 per call) uxListRemove/103 (24974 (estimated locally),0.11 per call) eTaskGetState/35 (123389 (estimated locally),0.53 per call) vTaskSuspendAll/45 (123389 (estimated locally),0.53 per call) xTaskCatchUpTicks/54 (xTaskCatchUpTicks) @06082000 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)xPendedTicks/21 (read)xPendedTicks/21 (write) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (52886 (estimated locally),0.33 per call) vTaskSuspendAll/45 (52886 (estimated locally),0.33 per call) uxTaskGetSystemState/53 (uxTaskGetSystemState) @060777e0 Type: function definition analyzed Visibility: externally_visible public References: uxCurrentNumberOfTasks/17 (read)pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xTasksWaitingTermination/14 (addr)xSuspendedTaskList/16 (addr) Referring: Availability: available Function flags: count:429496728 (estimated locally) body optimize_size Called by: vTaskList/84 (118111600 (estimated locally),0.53 per call) Calls: xTaskResumeAll/46 (429496729 (estimated locally),1.00 per call) prvListTasksWithinSingleList/73 (214748365 (estimated locally),0.50 per call) prvListTasksWithinSingleList/73 (214748365 (estimated locally),0.50 per call) prvListTasksWithinSingleList/73 (214748365 (estimated locally),0.50 per call) prvListTasksWithinSingleList/73 (214748365 (estimated locally),0.50 per call) prvListTasksWithinSingleList/73 (1073741824 (estimated locally),2.50 per call) vTaskSuspendAll/45 (429496728 (estimated locally),1.00 per call) xTaskGetHandle/52 (xTaskGetHandle) @060772a0 Type: function definition analyzed Visibility: externally_visible public References: pxReadyTasksLists/8 (addr)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (52886 (estimated locally),0.33 per call) prvSearchForNameWithinSingleList/51 (9218 (estimated locally),0.06 per call) prvSearchForNameWithinSingleList/51 (9218 (estimated locally),0.06 per call) prvSearchForNameWithinSingleList/51 (9218 (estimated locally),0.06 per call) prvSearchForNameWithinSingleList/51 (9218 (estimated locally),0.06 per call) prvSearchForNameWithinSingleList/51 (216745 (estimated locally),1.35 per call) vTaskSuspendAll/45 (52886 (estimated locally),0.33 per call) strlen/110 (160260 (estimated locally),1.00 per call) prvSearchForNameWithinSingleList/51 (prvSearchForNameWithinSingleList) @06077e00 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:25274560 (estimated locally) body local optimize_size Called by: xTaskGetHandle/52 (9218 (estimated locally),0.06 per call) xTaskGetHandle/52 (9218 (estimated locally),0.06 per call) xTaskGetHandle/52 (9218 (estimated locally),0.06 per call) xTaskGetHandle/52 (9218 (estimated locally),0.06 per call) xTaskGetHandle/52 (216745 (estimated locally),1.35 per call) Calls: pcTaskGetName/50 (pcTaskGetName) @06077b60 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: uxTaskGetNumberOfTasks/49 (uxTaskGetNumberOfTasks) @06077700 Type: function definition analyzed Visibility: externally_visible public References: uxCurrentNumberOfTasks/17 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTaskGetTickCountFromISR/48 (xTaskGetTickCountFromISR) @06077460 Type: function definition analyzed Visibility: externally_visible public References: xTickCount/18 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vPortValidateInterruptPriority/106 (1073741824 (estimated locally),1.00 per call) xTaskGetTickCount/47 (xTaskGetTickCount) @060771c0 Type: function definition analyzed Visibility: externally_visible public References: xTickCount/18 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (xTaskResumeAll) @06060e00 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: uxTaskGetSystemState/53 (429496729 (estimated locally),1.00 per call) vTaskGetInfo/72 (121337087 (estimated locally),0.11 per call) xTaskAbortDelay/55 (123389 (estimated locally),0.53 per call) xTaskCatchUpTicks/54 (52886 (estimated locally),0.33 per call) xTaskGetHandle/52 (52886 (estimated locally),0.33 per call) vTaskDelay/34 (52886 (estimated locally),0.17 per call) xTaskDelayUntil/33 (35433 (estimated locally),0.12 per call) Calls: xTaskResumeAll.part.0/137 (inlined) (52886 (estimated locally),0.33 per call) vTaskSuspendAll/45 (vTaskSuspendAll) @06060d20 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)uxSchedulerSuspended/28 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: uxTaskGetSystemState/53 (429496728 (estimated locally),1.00 per call) vTaskGetInfo/72 (121337087 (estimated locally),0.11 per call) xTaskAbortDelay/55 (123389 (estimated locally),0.53 per call) xTaskCatchUpTicks/54 (52886 (estimated locally),0.33 per call) xTaskGetHandle/52 (52886 (estimated locally),0.33 per call) vTaskDelay/34 (52886 (estimated locally),0.17 per call) xTaskDelayUntil/33 (35433 (estimated locally),0.12 per call) Calls: vTaskEndScheduler/44 (vTaskEndScheduler) @06060a80 Type: function definition analyzed Visibility: externally_visible public References: xSchedulerRunning/20 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vPortEndScheduler/109 (1073741824 (estimated locally),1.00 per call) vTaskStartScheduler/43 (vTaskStartScheduler) @060607e0 Type: function definition analyzed Visibility: externally_visible public References: prvIdleTask/69 (addr)xIdleTaskHandle/26 (addr)xNextTaskUnblockTime/25 (write)xSchedulerRunning/20 (write)xTickCount/18 (write)uxTopUsedPriority/27 (read) Referring: Availability: available Function flags: count:395945 (estimated locally) body optimize_size Called by: Calls: xPortStartScheduler/108 (80139 (estimated locally),0.20 per call) xTimerCreateTimerTask/107 (80139 (estimated locally),0.20 per call) xTaskCreate/29 (395945 (estimated locally),1.00 per call) xTaskResumeFromISR/42 (xTaskResumeFromISR) @06060540 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)pxCurrentTCB/7 (read)xYieldPending/22 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xPendingReadyList/13 (addr) Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vListInsertEnd/104 (20359 (estimated locally),0.09 per call) uxListRemove/103 (41335 (estimated locally),0.18 per call) prvTaskIsTaskSuspended/40 (123389 (estimated locally),0.53 per call) vPortValidateInterruptPriority/106 (123389 (estimated locally),0.53 per call) vTaskResume/41 (vTaskResume) @060601c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (133963 (estimated locally),0.37 per call) uxListRemove/103 (44208 (estimated locally),0.12 per call) prvTaskIsTaskSuspended/40 (133963 (estimated locally),0.37 per call) vPortEnterCritical/100 (133963 (estimated locally),0.37 per call) prvTaskIsTaskSuspended/40 (prvTaskIsTaskSuspended) @060529a0 Type: function definition analyzed Visibility: prevailing_def_ironly References: xSuspendedTaskList/16 (addr) Referring: Availability: local Function flags: count:357913 (estimated locally) body local optimize_size Called by: xTaskResumeFromISR/42 (123389 (estimated locally),0.53 per call) vTaskResume/41 (133963 (estimated locally),0.37 per call) Calls: prvTaskIsTaskSuspended.part.0/114 (inlined) (75162 (estimated locally),0.21 per call) vTaskSuspend/39 (vTaskSuspend) @06052e00 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)xSuspendedTaskList/16 (addr)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)xSchedulerRunning/20 (read)uxSchedulerSuspended/28 (read)xSuspendedTaskList/16 (read)uxCurrentNumberOfTasks/17 (read)pxCurrentTCB/7 (write) Referring: Availability: available Function flags: count:1431653 (estimated locally) body optimize_size Called by: Calls: vTaskSwitchContext/57 (104969 (estimated locally),0.07 per call) vPortExitCritical/101 (472446 (estimated locally),0.33 per call) prvResetNextTaskUnblockTime/77 (472446 (estimated locally),0.33 per call) vPortEnterCritical/100 (472446 (estimated locally),0.33 per call) vPortExitCritical/101 (1431653 (estimated locally),1.00 per call) vListInsertEnd/104 (1431653 (estimated locally),1.00 per call) uxListRemove/103 (765505 (estimated locally),0.53 per call) uxListRemove/103 (1431653 (estimated locally),1.00 per call) vPortEnterCritical/100 (1431653 (estimated locally),1.00 per call) vTaskPrioritySet/38 (vTaskPrioritySet) @060528c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (read)pxReadyTasksLists/8 (addr)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write) Referring: Availability: available Function flags: count:160260 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (52886 (estimated locally),0.33 per call) uxListRemove/103 (6084 (estimated locally),0.04 per call) vPortEnterCritical/100 (52886 (estimated locally),0.33 per call) uxTaskPriorityGetFromISR/37 (uxTaskPriorityGetFromISR) @06052380 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vPortValidateInterruptPriority/106 (1073741824 (estimated locally),1.00 per call) uxTaskPriorityGet/36 (uxTaskPriorityGet) @06052000 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/100 (1073741824 (estimated locally),1.00 per call) eTaskGetState/35 (eTaskGetState) @0603d2a0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)pxDelayedTaskList/11 (read)pxOverflowDelayedTaskList/12 (read)xSuspendedTaskList/16 (addr)xTasksWaitingTermination/14 (addr) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: vTaskGetInfo/72 (217325345 (estimated locally),0.20 per call) xTaskAbortDelay/55 (123389 (estimated locally),0.53 per call) Calls: eTaskGetState.part.0/122 (inlined) (11759 (estimated locally),0.03 per call) vPortExitCritical/101 (133963 (estimated locally),0.37 per call) vPortEnterCritical/100 (133963 (estimated locally),0.37 per call) vTaskDelay/34 (vTaskDelay) @0603dc40 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: count:320519 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (52886 (estimated locally),0.17 per call) prvAddCurrentTaskToDelayedList/94 (52886 (estimated locally),0.17 per call) vTaskSuspendAll/45 (52886 (estimated locally),0.17 per call) xTaskDelayUntil/33 (xTaskDelayUntil) @0603d7e0 Type: function definition analyzed Visibility: externally_visible public References: uxSchedulerSuspended/28 (read)xTickCount/18 (read) Referring: Availability: available Function flags: count:306783 (estimated locally) body optimize_size Called by: Calls: xTaskResumeAll/46 (35433 (estimated locally),0.12 per call) prvAddCurrentTaskToDelayedList/94 (17717 (estimated locally),0.06 per call) vTaskSuspendAll/45 (35433 (estimated locally),0.12 per call) vTaskDelete/32 (vTaskDelete) @0603d1c0 Type: function definition analyzed Visibility: externally_visible public References: pxCurrentTCB/7 (read)uxTaskNumber/24 (read)uxTaskNumber/24 (write)pxCurrentTCB/7 (read)xTasksWaitingTermination/14 (addr)uxDeletedTasksWaitingCleanUp/15 (read)uxDeletedTasksWaitingCleanUp/15 (write)uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)uxSchedulerSuspended/28 (read) Referring: Availability: available Function flags: count:1431653 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/101 (1431653 (estimated locally),1.00 per call) prvResetNextTaskUnblockTime/77 (1002157 (estimated locally),0.70 per call) prvDeleteTCB/76 (inlined) (1002157 (estimated locally),0.70 per call) vListInsertEnd/104 (429496 (estimated locally),0.30 per call) uxListRemove/103 (765505 (estimated locally),0.53 per call) uxListRemove/103 (1431653 (estimated locally),1.00 per call) vPortEnterCritical/100 (1431653 (estimated locally),1.00 per call) prvAddNewTaskToReadyList/31 (prvAddNewTaskToReadyList) @0602b540 Type: function definition analyzed Visibility: prevailing_def_ironly References: uxCurrentNumberOfTasks/17 (read)uxCurrentNumberOfTasks/17 (write)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxCurrentNumberOfTasks/17 (read)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read)pxCurrentTCB/7 (write)uxTaskNumber/24 (read)uxTaskNumber/24 (write)uxTopReadyPriority/19 (read)uxTopReadyPriority/19 (write)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (addr)pxReadyTasksLists/8 (read)pxReadyTasksLists/8 (write)xSchedulerRunning/20 (read)pxCurrentTCB/7 (read) Referring: Function prvAddNewTaskToReadyList/31 is inline copy in xTaskCreate/29 Availability: local Function flags: count:306987179 (estimated locally) body local optimize_size Called by: xTaskCreate/29 (inlined) (306987179 (estimated locally),0.29 per call) Calls: vPortExitCritical/101 (306987180 (estimated locally),0.29 per call) prvInitialiseTaskLists/70 (inlined) (18640261 (estimated locally),0.02 per call) vPortEnterCritical/100 (306987179 (estimated locally),0.29 per call) xTaskCreate/29 (xTaskCreate) @0602b700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: vTaskStartScheduler/43 (395945 (estimated locally),1.00 per call) Calls: prvAddNewTaskToReadyList/31 (inlined) (306987179 (estimated locally),0.29 per call) prvInitialiseNewTask.isra.0/118 (inlined) (306987179 (estimated locally),0.29 per call) vPortFree/96 (100070816 (estimated locally),0.09 per call) pvPortMalloc/95 (574129754 (estimated locally),0.53 per call) pvPortMalloc/95 (1073741824 (estimated locally),1.00 per call) uxSchedulerSuspended/28 (uxSchedulerSuspended) @060235a0 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskGetSchedulerState/79 (read)xTaskIncrementTick/56 (read)xTaskResumeAll/46 (read)xTaskCatchUpTicks/54 (read)xTaskGenericNotifyFromISR/90 (read)vTaskRemoveFromUnorderedEventList/62 (read)vTaskDelete/32 (read)vTaskPlaceOnUnorderedEventList/59 (read)xTaskRemoveFromEventList/61 (read)vTaskSuspendAll/45 (read)vTaskSuspendAll/45 (write)xTaskDelayUntil/33 (read)xTaskResumeFromISR/42 (read)vTaskDelay/34 (read)vTaskSwitchContext/57 (read)vTaskSuspend/39 (read)xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (write)vTaskGenericNotifyGiveFromISR/91 (read) Availability: available Varpool flags: initialized uxTopUsedPriority/27 (uxTopUsedPriority) @06023510 Type: variable definition analyzed Visibility: force_output externally_visible public References: Referring: vTaskStartScheduler/43 (read) Availability: available Varpool flags: initialized read-only xIdleTaskHandle/26 (xIdleTaskHandle) @06023480 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: vTaskStartScheduler/43 (addr) Availability: available Varpool flags: initialized xNextTaskUnblockTime/25 (xNextTaskUnblockTime) @060233f0 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: prvResetNextTaskUnblockTime.part.0/115 (write)prvAddCurrentTaskToDelayedList/94 (write)prvAddCurrentTaskToDelayedList/94 (read)vTaskStartScheduler/43 (write)prvResetNextTaskUnblockTime/77 (write)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (write)xTaskIncrementTick.part.0/135 (write) Availability: available Varpool flags: initialized uxTaskNumber/24 (uxTaskNumber) @06023360 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)vTaskDelete/32 (read)vTaskDelete/32 (write) Availability: available Varpool flags: initialized xNumOfOverflows/23 (xNumOfOverflows) @06023318 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskIncrementTick.part.0/135 (write)vTaskSetTimeOutState/63 (read)vTaskInternalSetTimeOutState/64 (read)xTaskIncrementTick.part.0/135 (read)xTaskCheckForTimeOut/65 (read) Availability: available Varpool flags: initialized xYieldPending/22 (xYieldPending) @060232d0 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: vTaskMissedYield/66 (write)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (write)xTaskResumeFromISR/42 (write)xTaskIncrementTick.part.0/135 (read)xTaskGenericNotifyFromISR/90 (write)xTaskResumeAll.part.0/137 (write)xTaskResumeAll.part.0/137 (read)xTaskAbortDelay/55 (write)vTaskSwitchContext/57 (write)xTaskResumeAll.part.0/137 (write)vTaskSwitchContext/57 (write)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: initialized xPendedTicks/21 (xPendedTicks) @06023240 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (write)xTaskIncrementTick/56 (read)xTaskIncrementTick/56 (write)xTaskCatchUpTicks/54 (read)xTaskCatchUpTicks/54 (write) Availability: available Varpool flags: initialized xSchedulerRunning/20 (xSchedulerRunning) @060231b0 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: vTaskDelete/32 (read)vTaskEndScheduler/44 (write)vTaskSuspend/39 (read)prvAddNewTaskToReadyList/31 (read)vTaskStartScheduler/43 (write)prvAddNewTaskToReadyList/31 (read)vTaskSuspend/39 (read)xTaskGetSchedulerState/79 (read) Availability: available Varpool flags: initialized uxTopReadyPriority/19 (uxTopReadyPriority) @06023120 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (write)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (write)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)vTaskSwitchContext/57 (read)vTaskSwitchContext/57 (write)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (write)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (write)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: initialized xTickCount/18 (xTickCount) @060230d8 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskGetTickCountFromISR/48 (read)xTaskCheckForTimeOut/65 (read)xTaskGenericNotify/89 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskStartScheduler/43 (write)vTaskInternalSetTimeOutState/64 (read)xTaskGetTickCount/47 (read)xTaskIncrementTick.part.0/135 (write)xTaskDelayUntil/33 (read)vTaskSetTimeOutState/63 (read)xTaskIncrementTick.part.0/135 (read)xTaskGenericNotifyFromISR/90 (read) Availability: available Varpool flags: initialized uxCurrentNumberOfTasks/17 (uxCurrentNumberOfTasks) @06023090 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskResumeAll.part.0/137 (read)prvCheckTasksWaitingTermination/71 (read)vTaskSuspend/39 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)uxTaskGetNumberOfTasks/49 (read)vTaskDelete/32 (read)uxTaskGetSystemState/53 (read)vTaskDelete/32 (write)prvCheckTasksWaitingTermination/71 (write)prvAddNewTaskToReadyList/31 (read)vTaskList/84 (read)vTaskList/84 (read) Availability: available Varpool flags: initialized xSuspendedTaskList/16 (xSuspendedTaskList) @0601ff78 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: vTaskSuspend/39 (read)eTaskGetState/35 (addr)xTaskGetHandle/52 (addr)prvAddCurrentTaskToDelayedList.part.0/119 (write)prvTaskIsTaskSuspended/40 (addr)prvInitialiseTaskLists/70 (addr)prvAddCurrentTaskToDelayedList.part.0/119 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)prvAddCurrentTaskToDelayedList.part.0/119 (addr)vTaskSuspend/39 (addr)uxTaskGetSystemState/53 (addr) Availability: available Varpool flags: uxDeletedTasksWaitingCleanUp/15 (uxDeletedTasksWaitingCleanUp) @0601fee8 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: prvCheckTasksWaitingTermination/71 (write)prvCheckTasksWaitingTermination/71 (read)prvCheckTasksWaitingTermination/71 (read)vTaskDelete/32 (read)vTaskDelete/32 (write) Availability: available Varpool flags: initialized xTasksWaitingTermination/14 (xTasksWaitingTermination) @0601fe58 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: eTaskGetState/35 (addr)prvInitialiseTaskLists/70 (addr)prvCheckTasksWaitingTermination/71 (read)xTaskGetHandle/52 (addr)vTaskDelete/32 (addr)uxTaskGetSystemState/53 (addr) Availability: available Varpool flags: xPendingReadyList/13 (xPendingReadyList) @0601fdc8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: xTaskGenericNotifyFromISR/90 (write)xTaskRemoveFromEventList/61 (write)prvTaskIsTaskSuspended.part.0/114 (addr)xTaskRemoveFromEventList/61 (read)prvInitialiseTaskLists/70 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskResumeFromISR/42 (addr)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (read)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: pxOverflowDelayedTaskList/12 (pxOverflowDelayedTaskList) @0601fd38 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: prvAddCurrentTaskToDelayedList/94 (read)xTaskGetHandle/52 (read)prvInitialiseTaskLists/70 (write)eTaskGetState/35 (read)xTaskIncrementTick.part.0/135 (write)xTaskIncrementTick.part.0/135 (read)uxTaskGetSystemState/53 (read) Availability: available Varpool flags: pxDelayedTaskList/11 (pxDelayedTaskList) @0601fcf0 Type: variable definition analyzed Visibility: force_output prevailing_def_ironly References: Referring: xTaskGetHandle/52 (read)prvResetNextTaskUnblockTime.part.0/115 (read)prvAddCurrentTaskToDelayedList/94 (read)prvResetNextTaskUnblockTime/77 (read)prvInitialiseTaskLists/70 (write)eTaskGetState/35 (read)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (write)xTaskIncrementTick.part.0/135 (read)uxTaskGetSystemState/53 (read) Availability: available Varpool flags: xDelayedTaskList2/10 (xDelayedTaskList2) @0601fca8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr) Availability: available Varpool flags: xDelayedTaskList1/9 (xDelayedTaskList1) @0601fc18 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: prvInitialiseTaskLists/70 (addr)prvInitialiseTaskLists/70 (addr) Availability: available Varpool flags: pxReadyTasksLists/8 (pxReadyTasksLists) @0601fb88 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: xTaskGenericNotify/89 (read)xTaskGenericNotify/89 (addr)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (write)xTaskGenericNotify/89 (write)vTaskPriorityDisinheritAfterTimeout/82 (write)xTaskGenericNotifyFromISR/90 (read)xTaskGenericNotifyFromISR/90 (addr)xTaskGenericNotifyFromISR/90 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (addr)prvAddNewTaskToReadyList/31 (read)prvIdleTask/69 (read)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (addr)vTaskPrioritySet/38 (read)vTaskPrioritySet/38 (write)prvInitialiseTaskLists/70 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (addr)xTaskResumeFromISR/42 (read)xTaskResumeFromISR/42 (write)xTaskIncrementTick.part.0/135 (read)xTaskRemoveFromEventList/61 (write)xTaskIncrementTick.part.0/135 (addr)xTaskIncrementTick.part.0/135 (read)xTaskIncrementTick.part.0/135 (write)xTaskResumeAll.part.0/137 (write)xTaskPriorityInherit/80 (addr)vTaskResume/41 (read)vTaskResume/41 (addr)vTaskResume/41 (read)vTaskResume/41 (write)xTaskResumeAll.part.0/137 (read)xTaskGetHandle/52 (addr)xTaskResumeAll.part.0/137 (read)xTaskResumeAll.part.0/137 (addr)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (write)vTaskSwitchContext/57 (write)vTaskSwitchContext/57 (addr)vTaskSwitchContext/57 (write)vTaskSwitchContext/57 (read)vTaskPrioritySet/38 (addr)xTaskRemoveFromEventList/61 (read)xTaskRemoveFromEventList/61 (addr)xTaskRemoveFromEventList/61 (read)vTaskRemoveFromUnorderedEventList/62 (write)vTaskRemoveFromUnorderedEventList/62 (read)vTaskRemoveFromUnorderedEventList/62 (addr)vTaskRemoveFromUnorderedEventList/62 (read)uxTaskGetSystemState/53 (addr)vTaskSwitchContext/57 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (addr)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (write)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (addr)xTaskPriorityDisinherit/81 (read)xTaskPriorityDisinherit/81 (write)vTaskPriorityDisinheritAfterTimeout/82 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskPriorityDisinheritAfterTimeout/82 (read)xTaskIncrementTick.part.0/135 (read)xTaskAbortDelay/55 (read)xTaskAbortDelay/55 (addr)vTaskSwitchContext/57 (read)vTaskPriorityDisinheritAfterTimeout/82 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (addr)vTaskGenericNotifyGiveFromISR/91 (read)vTaskGenericNotifyGiveFromISR/91 (write) Availability: available Varpool flags: pxCurrentTCB/7 (pxCurrentTCB) @0601fb40 Type: variable definition analyzed Visibility: force_output externally_visible public References: Referring: ulTaskGenericNotifyTake/87 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotify/89 (read)xTaskGenericNotifyFromISR/90 (read)vTaskGenericNotifyGiveFromISR/91 (read)prvAddNewTaskToReadyList/31 (read)prvAddNewTaskToReadyList/31 (write)prvAddNewTaskToReadyList/31 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)pvTaskIncrementMutexHeldCount/86 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)ulTaskGenericNotifyTake/87 (read)xTaskGenericNotifyStateClear/92 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskDelete/32 (read)eTaskGetState/35 (read)prvAddNewTaskToReadyList/31 (write)prvAddCurrentTaskToDelayedList/94 (read)prvAddCurrentTaskToDelayedList/94 (read)uxTaskPriorityGet/36 (read)vTaskDelete/32 (read)vTaskResume/41 (read)xTaskAbortDelay/55 (read)vTaskDelete/32 (read)uxTaskPriorityGetFromISR/37 (read)vTaskPrioritySet/38 (read)pcTaskGetName/50 (read)vTaskResume/41 (read)xTaskIncrementTick.part.0/135 (read)vTaskPrioritySet/38 (read)xTaskResumeFromISR/42 (read)xTaskResumeAll.part.0/137 (read)vTaskSwitchContext/57 (write)ulTaskGenericNotifyTake/87 (read)prvAddNewTaskToReadyList/31 (read)prvAddCurrentTaskToDelayedList/94 (read)vTaskPrioritySet/38 (read)xTaskIncrementTick.part.0/135 (read)vTaskSuspend/39 (write)prvAddCurrentTaskToDelayedList/94 (read)vTaskPrioritySet/38 (read)vTaskSuspend/39 (read)vTaskSuspend/39 (read)vTaskPlaceOnEventList/58 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnUnorderedEventList/59 (read)xTaskRemoveFromEventList/61 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskRemoveFromUnorderedEventList/62 (read)xTaskCheckForTimeOut/65 (read)vTaskGetInfo/72 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)vTaskPlaceOnUnorderedEventList/59 (read)xTaskCheckForTimeOut/65 (read)uxTaskGetStackHighWaterMark/75 (read)xTaskGetCurrentTaskHandle/78 (read)xTaskPriorityInherit/80 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskGetInfo/72 (read)xTaskPriorityDisinherit/81 (read)xTaskPriorityInherit/80 (read)xTaskPriorityInherit/80 (read)vTaskPriorityDisinheritAfterTimeout/82 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)vTaskPlaceOnEventListRestricted/60 (read)vTaskPlaceOnEventListRestricted/60 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)uxTaskResetEventItemValue/85 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)vTaskPlaceOnUnorderedEventList/59 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)prvAddCurrentTaskToDelayedList.part.0/119 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)xTaskGenericNotifyWait/88 (read)ulTaskGenericNotifyValueClear/93 (read) Availability: available Varpool flags: initialized ;; Function prvSearchForNameWithinSingleList (prvSearchForNameWithinSingleList, funcdef_no=29, decl_uid=6957, cgraph_uid=30, symbol_order=51) prvSearchForNameWithinSingleList (struct List_t * pxList, const char * pcNameToQuery) { char cNextChar; UBaseType_t x; struct TCB_t * pxReturn; struct TCB_t * pxFirstTCB; struct TCB_t * pxNextTCB; long unsigned int _1; struct ListItem_t * _2; struct xLIST_ITEM * _3; struct MiniListItem_t * _4; struct xLIST_ITEM * _5; struct ListItem_t * _6; struct ListItem_t * _7; struct xLIST_ITEM * _8; struct xLIST_ITEM * _9; struct ListItem_t * _10; const char * _11; char _12; [local count: 25274560]: # DEBUG BEGIN_STMT # DEBUG pxReturn => 0B # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 ={v} pxList_23(D)->uxNumberOfItems; if (_1 != 0) goto ; [71.00%] else goto ; [29.00%] [local count: 17944938]: # DEBUG BEGIN_STMT # DEBUG pxConstList => pxList_23(D) # DEBUG BEGIN_STMT _2 = pxList_23(D)->pxIndex; _3 = _2->pxNext; pxList_23(D)->pxIndex = _3; # DEBUG BEGIN_STMT _4 = &pxList_23(D)->xListEnd; if (_3 == _4) goto ; [30.00%] else goto ; [70.00%] [local count: 5383481]: # DEBUG BEGIN_STMT _5 = MEM[(struct ListItem_t *)_3].pxNext; pxList_23(D)->pxIndex = _5; [local count: 17944938]: # DEBUG BEGIN_STMT _6 = pxList_23(D)->pxIndex; pxFirstTCB_26 = _6->pvOwner; # DEBUG pxFirstTCB => pxFirstTCB_26 [local count: 167748888]: # pxReturn_13 = PHI <0B(5), 0B(16)> # DEBUG pxReturn => pxReturn_13 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxConstList => pxList_23(D) # DEBUG BEGIN_STMT _7 = pxList_23(D)->pxIndex; _8 = _7->pxNext; pxList_23(D)->pxIndex = _8; # DEBUG BEGIN_STMT if (_4 == _8) goto ; [30.00%] else goto ; [70.00%] [local count: 50324666]: # DEBUG BEGIN_STMT _9 = MEM[(struct ListItem_t *)_8].pxNext; pxList_23(D)->pxIndex = _9; [local count: 167748888]: # DEBUG BEGIN_STMT _10 = pxList_23(D)->pxIndex; pxNextTCB_29 = _10->pvOwner; # DEBUG pxNextTCB => pxNextTCB_29 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xBreakLoop => 0 # DEBUG BEGIN_STMT # DEBUG x => 0 goto ; [100.00%] [local count: 976138693]: # DEBUG BEGIN_STMT cNextChar_30 = pxNextTCB_29->pcTaskName[x_17]; # DEBUG cNextChar => cNextChar_30 # DEBUG BEGIN_STMT _11 = pcNameToQuery_31(D) + x_17; _12 = *_11; if (_12 != cNextChar_30) goto ; [3.66%] else goto ; [96.34%] [local count: 940412017]: # DEBUG BEGIN_STMT if (cNextChar_30 == 0) goto ; [3.66%] else goto ; [96.34%] [local count: 905992937]: # DEBUG xBreakLoop => 0 # DEBUG pxReturn => pxReturn_14 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT x_32 = x_17 + 1; # DEBUG x => x_32 [local count: 1073741824]: # pxReturn_14 = PHI # x_17 = PHI <0(8), x_32(11)> # DEBUG xBreakLoop => 0 # DEBUG x => x_17 # DEBUG pxReturn => pxReturn_14 # DEBUG BEGIN_STMT if (x_17 != 10) goto ; [90.91%] else goto ; [9.09%] [local count: 167748888]: # pxReturn_15 = PHI # DEBUG xBreakLoop => NULL # DEBUG pxReturn => pxReturn_15 # DEBUG BEGIN_STMT if (pxReturn_15 != 0B) goto ; [5.50%] else goto ; [94.50%] [local count: 158522699]: # DEBUG BEGIN_STMT if (pxFirstTCB_26 != pxNextTCB_29) goto ; [94.50%] else goto ; [5.50%] [local count: 149803950]: goto ; [100.00%] [local count: 25274560]: # pxReturn_16 = PHI <0B(2), 0B(14), pxReturn_15(13)> # DEBUG pxReturn => pxReturn_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return pxReturn_16; } ;; Function prvTaskIsTaskSuspended (prvTaskIsTaskSuspended, funcdef_no=18, decl_uid=6939, cgraph_uid=19, symbol_order=40) Symbols to be put in SSA form { D.8238 D.8549 } Incremental SSA update started at block: 0 Number of blocks in CFG: 15 Number of blocks to update: 14 ( 93%) Merging blocks 4 and 8 Removing basic block 6 Removing basic block 10 Merging blocks 14 and 9 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 ;; ;; Loop 1 ;; header 4, latch 4 ;; depth 1, outer 0 ;; nodes: 4 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 4 } ;; 5 succs { 6 10 } ;; 6 succs { 7 9 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 10 } ;; 10 succs { 1 } prvTaskIsTaskSuspended (struct tskTaskControlBlock * const xTask) { BaseType_t xReturn; BaseType_t D.8549; uint32_t ulNewBASEPRI; BaseType_t xReturn; struct xLIST * _1; struct xLIST * _10; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT # DEBUG pxTCB => xTask_5(D) # DEBUG BEGIN_STMT if (xTask_5(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_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: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = MEM[(const struct TCB_t *)xTask_5(D)].xStateListItem.pvContainer; if (_1 == &xSuspendedTaskList) goto ; [30.00%] else goto ; [70.00%] [local count: 75162]: # DEBUG xTask => xTask_5(D) # DEBUG INLINE_ENTRY prvTaskIsTaskSuspended # DEBUG BEGIN_STMT _10 = MEM[(const struct TCB_t *)xTask_5(D)].xEventListItem.pvContainer; if (_10 != &xPendingReadyList) goto ; [70.00%] else goto ; [30.00%] [local count: 52613]: # DEBUG BEGIN_STMT if (_10 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 15784]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 75162]: # xReturn_11 = PHI <0(6), 0(7), 1(8)> # DEBUG xReturn => xReturn_11 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _12 = xReturn_11; # DEBUG xTask => NULL # DEBUG xReturn => NULL # DEBUG pxTCB => NULL # DEBUG ulNewBASEPRI => NULL xReturn_2 = _12; [local count: 250539]: # xReturn_3 = PHI <0(5), xReturn_2(9)> # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_3; } ;; Function prvResetNextTaskUnblockTime (prvResetNextTaskUnblockTime, funcdef_no=55, decl_uid=6961, cgraph_uid=56, symbol_order=77) Symbols to be put in SSA form { D.8241 } Incremental SSA update started at block: 0 Number of blocks in CFG: 10 Number of blocks to update: 9 ( 90%) Removing basic block 4 Removing basic block 6 Removing basic block 7 Merging blocks 8 and 9 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 ;; 2 succs { 3 4 } ;; 3 succs { 5 } ;; 4 succs { 5 } ;; 5 succs { 1 } prvResetNextTaskUnblockTime () { struct List_t * pxDelayedTaskList.20_1; long unsigned int _2; struct List_t * pxDelayedTaskList.21_7; struct xLIST_ITEM * _8; long unsigned int _9; [local count: 1073741824]: # DEBUG BEGIN_STMT pxDelayedTaskList.20_1 ={v} pxDelayedTaskList; _2 ={v} pxDelayedTaskList.20_1->uxNumberOfItems; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT xNextTaskUnblockTime ={v} 4294967295; goto ; [100.00%] [local count: 536870913]: # DEBUG INLINE_ENTRY prvResetNextTaskUnblockTime # DEBUG BEGIN_STMT pxDelayedTaskList.21_7 ={v} pxDelayedTaskList; _8 = pxDelayedTaskList.21_7->xListEnd.pxNext; _9 = _8->xItemValue; xNextTaskUnblockTime ={v} _9; [local count: 1073741824]: return; } ;; Function prvAddCurrentTaskToDelayedList (prvAddCurrentTaskToDelayedList, funcdef_no=72, decl_uid=6950, cgraph_uid=73, symbol_order=94) Symbols to be put in SSA form { D.8248 } Incremental SSA update started at block: 0 Number of blocks in CFG: 14 Number of blocks to update: 13 ( 93%) Removing basic block 4 Removing basic block 10 Removing basic block 11 Merging blocks 12 and 13 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 ;; 2 succs { 3 5 } ;; 3 succs { 4 5 } ;; 4 succs { 9 } ;; 5 succs { 6 7 } ;; 6 succs { 9 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 1 } prvAddCurrentTaskToDelayedList (TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely) { struct ListItem_t * const pxIndex; const TickType_t xConstTickCount; TickType_t xTimeToWake; struct TCB_t * pxCurrentTCB.23_1; struct TCB_t * pxCurrentTCB.24_2; struct ListItem_t * _3; struct TCB_t * pxCurrentTCB.30_5; struct List_t * pxOverflowDelayedTaskList.31_6; struct TCB_t * pxCurrentTCB.32_7; struct ListItem_t * _8; struct List_t * pxDelayedTaskList.33_9; struct TCB_t * pxCurrentTCB.34_10; struct ListItem_t * _11; long unsigned int xNextTaskUnblockTime.35_12; struct TCB_t * pxCurrentTCB.25_26; struct TCB_t * pxCurrentTCB.26_27; struct xLIST_ITEM * _28; struct TCB_t * pxCurrentTCB.27_29; struct xLIST_ITEM * _30; struct ListItem_t * _31; struct TCB_t * pxCurrentTCB.28_32; struct ListItem_t * _33; struct TCB_t * pxCurrentTCB.29_34; long unsigned int _35; long unsigned int _36; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xConstTickCount_14 ={v} xTickCount; # DEBUG xConstTickCount => xConstTickCount_14 # DEBUG BEGIN_STMT pxCurrentTCB.23_1 ={v} pxCurrentTCB; pxCurrentTCB.23_1->ucDelayAborted = 0; # DEBUG BEGIN_STMT pxCurrentTCB.24_2 ={v} pxCurrentTCB; _3 = &pxCurrentTCB.24_2->xStateListItem; uxListRemove (_3); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTicksToWait_17(D) == 4294967295) goto ; [34.00%] else goto ; [66.00%] [local count: 365072220]: if (xCanBlockIndefinitely_18(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 182536110]: # DEBUG D#2 => xTicksToWait_17(D) # DEBUG D#3 => xCanBlockIndefinitely_18(D) # DEBUG INLINE_ENTRY prvAddCurrentTaskToDelayedList # DEBUG D#5 => D#2 # DEBUG xTicksToWait => D#5 # DEBUG D#4 => D#3 # DEBUG xCanBlockIndefinitely => D#4 # DEBUG BEGIN_STMT pxIndex_25 = xSuspendedTaskList.pxIndex; # DEBUG pxIndex => pxIndex_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.25_26 ={v} pxCurrentTCB; pxCurrentTCB.25_26->xStateListItem.pxNext = pxIndex_25; # DEBUG BEGIN_STMT pxCurrentTCB.26_27 ={v} pxCurrentTCB; _28 = pxIndex_25->pxPrevious; pxCurrentTCB.26_27->xStateListItem.pxPrevious = _28; # DEBUG BEGIN_STMT pxCurrentTCB.27_29 ={v} pxCurrentTCB; _30 = pxIndex_25->pxPrevious; _31 = &pxCurrentTCB.27_29->xStateListItem; _30->pxNext = _31; # DEBUG BEGIN_STMT pxCurrentTCB.28_32 ={v} pxCurrentTCB; _33 = &pxCurrentTCB.28_32->xStateListItem; pxIndex_25->pxPrevious = _33; # DEBUG BEGIN_STMT pxCurrentTCB.29_34 ={v} pxCurrentTCB; pxCurrentTCB.29_34->xStateListItem.pvContainer = &xSuspendedTaskList; # DEBUG BEGIN_STMT _35 ={v} xSuspendedTaskList.uxNumberOfItems; _36 = _35 + 1; xSuspendedTaskList.uxNumberOfItems ={v} _36; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 891205713]: # DEBUG BEGIN_STMT xTimeToWake_19 = xConstTickCount_14 + xTicksToWait_17(D); # DEBUG xTimeToWake => xTimeToWake_19 # DEBUG BEGIN_STMT pxCurrentTCB.30_5 ={v} pxCurrentTCB; pxCurrentTCB.30_5->xStateListItem.xItemValue = xTimeToWake_19; # DEBUG BEGIN_STMT if (xConstTickCount_14 > xTimeToWake_19) goto ; [50.00%] else goto ; [50.00%] [local count: 445602856]: # DEBUG BEGIN_STMT pxOverflowDelayedTaskList.31_6 ={v} pxOverflowDelayedTaskList; pxCurrentTCB.32_7 ={v} pxCurrentTCB; _8 = &pxCurrentTCB.32_7->xStateListItem; vListInsert (pxOverflowDelayedTaskList.31_6, _8); goto ; [100.00%] [local count: 445602856]: # DEBUG BEGIN_STMT pxDelayedTaskList.33_9 ={v} pxDelayedTaskList; pxCurrentTCB.34_10 ={v} pxCurrentTCB; _11 = &pxCurrentTCB.34_10->xStateListItem; vListInsert (pxDelayedTaskList.33_9, _11); # DEBUG BEGIN_STMT xNextTaskUnblockTime.35_12 ={v} xNextTaskUnblockTime; if (xNextTaskUnblockTime.35_12 > xTimeToWake_19) goto ; [50.00%] else goto ; [50.00%] [local count: 222801428]: # DEBUG BEGIN_STMT xNextTaskUnblockTime ={v} xTimeToWake_19; [local count: 1073741824]: # DEBUG xTimeToWake => NULL # DEBUG xConstTickCount => NULL # DEBUG pxIndex => NULL # DEBUG xTicksToWait => NULL # DEBUG xCanBlockIndefinitely => NULL # DEBUG BEGIN_STMT return; } ;; Function prvIdleTask (prvIdleTask, funcdef_no=47, decl_uid=6943, cgraph_uid=48, symbol_order=69) (executed once) Symbols to be put in SSA form { D.8247 } Incremental SSA update started at block: 0 Number of blocks in CFG: 14 Number of blocks to update: 13 ( 93%) Merging blocks 4 and 8 Removing basic block 6 Merging blocks 9 and 13 Removing basic block 11 Removing basic block 12 ;; 4 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 ;; ;; Loop 1 ;; header 3, latch 8 ;; depth 1, outer 0 ;; nodes: 3 8 7 6 4 5 ;; ;; Loop 2 ;; header 4, latch 7 ;; depth 2, outer 1 ;; nodes: 4 7 6 5 ;; ;; Loop 3 ;; header 6, latch 5 ;; depth 3, outer 2 ;; nodes: 6 5 ;; 2 succs { 3 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 5 succs { 6 } ;; 6 succs { 5 7 } ;; 7 succs { 8 4 } ;; 8 succs { 3 } prvIdleTask (void * pvParameters) { struct TCB_t * pxTCB; long unsigned int _1; struct xLIST_ITEM * _9; struct ListItem_t * _11; long unsigned int uxCurrentNumberOfTasks.58_12; long unsigned int _13; long unsigned int uxDeletedTasksWaitingCleanUp.59_14; long unsigned int _15; long unsigned int uxDeletedTasksWaitingCleanUp.60_16; StackType_t * _17; [local count: 6969]: [local count: 69685844]: [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY prvCheckTasksWaitingTermination # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630225]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _9 = xTasksWaitingTermination.xListEnd.pxNext; pxTCB_10 = _9->pvOwner; # DEBUG pxTCB => pxTCB_10 # DEBUG BEGIN_STMT _11 = &pxTCB_10->xStateListItem; uxListRemove (_11); # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.58_12 ={v} uxCurrentNumberOfTasks; _13 = uxCurrentNumberOfTasks.58_12 + 4294967295; uxCurrentNumberOfTasks ={v} _13; # DEBUG BEGIN_STMT uxDeletedTasksWaitingCleanUp.59_14 ={v} uxDeletedTasksWaitingCleanUp; _15 = uxDeletedTasksWaitingCleanUp.59_14 + 4294967295; uxDeletedTasksWaitingCleanUp ={v} _15; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG pxTCB => pxTCB_10 # DEBUG INLINE_ENTRY prvDeleteTCB # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _17 = pxTCB_10->pxStack; vPortFree (_17); # DEBUG BEGIN_STMT vPortFree (pxTCB_10); [local count: 1073741824]: # DEBUG pxTCB => NULL # DEBUG BEGIN_STMT uxDeletedTasksWaitingCleanUp.60_16 ={v} uxDeletedTasksWaitingCleanUp; if (uxDeletedTasksWaitingCleanUp.60_16 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # DEBUG pxTCB => NULL # DEBUG BEGIN_STMT _1 ={v} pxReadyTasksLists[0].uxNumberOfItems; if (_1 > 1) goto ; [59.00%] else goto ; [41.00%] [local count: 69685844]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] } ;; Function xTaskCreate (xTaskCreate, funcdef_no=7, decl_uid=6139, cgraph_uid=8, symbol_order=29) Symbols to be put in SSA form { D.8250 } Incremental SSA update started at block: 0 Number of blocks in CFG: 44 Number of blocks to update: 42 ( 95%) Removing basic block 8 Removing basic block 10 Removing basic block 13 Removing basic block 23 Removing basic block 24 Removing basic block 26 Merging blocks 34 and 35 Merging blocks 38 and 11 Removing basic block 39 Removing basic block 40 ;; 4 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 ;; ;; Loop 1 ;; header 15, latch 15 ;; depth 1, outer 0 ;; nodes: 15 ;; ;; Loop 3 ;; header 21, latch 20 ;; depth 1, outer 0 ;; nodes: 21 20 ;; ;; Loop 2 ;; header 10, latch 9 ;; depth 1, outer 0 ;; nodes: 10 9 8 ;; 2 succs { 3 32 } ;; 3 succs { 4 5 } ;; 4 succs { 6 } ;; 5 succs { 6 } ;; 6 succs { 7 32 } ;; 7 succs { 10 12 } ;; 8 succs { 11 9 } ;; 9 succs { 10 } ;; 10 succs { 8 11 } ;; 11 succs { 13 } ;; 12 succs { 13 } ;; 13 succs { 14 16 } ;; 14 succs { 15 } ;; 15 succs { 15 } ;; 16 succs { 17 18 } ;; 17 succs { 18 } ;; 18 succs { 19 23 } ;; 19 succs { 21 26 } ;; 20 succs { 21 } ;; 21 succs { 20 22 } ;; 22 succs { 26 } ;; 23 succs { 24 26 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 27 28 } ;; 27 succs { 28 } ;; 28 succs { 29 31 } ;; 29 succs { 30 31 } ;; 30 succs { 31 } ;; 31 succs { 32 } ;; 32 succs { 1 } xTaskCreate (void (*TaskFunction_t) (void *) pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, struct tskTaskControlBlock * * const pxCreatedTask) { UBaseType_t uxPriority; uint32_t ulNewBASEPRI; UBaseType_t x; StackType_t * pxTopOfStack; struct ListItem_t * const pxIndex; StackType_t * pxStack; BaseType_t xReturn; struct TCB_t * pxNewTCB; unsigned int _1; unsigned int _2; long unsigned int uxCurrentNumberOfTasks.2_21; long unsigned int _22; struct TCB_t * pxCurrentTCB.3_23; long unsigned int uxCurrentNumberOfTasks.4_24; long int xSchedulerRunning.5_25; struct TCB_t * pxCurrentTCB.6_26; long unsigned int _27; long unsigned int _28; long unsigned int uxTaskNumber.7_29; long unsigned int _30; long unsigned int _31; long unsigned int uxTopReadyPriority.9_32; struct xLIST_ITEM * _34; struct xLIST_ITEM * _35; struct ListItem_t * _36; struct List_t * _37; long unsigned int _38; long unsigned int _39; long int xSchedulerRunning.10_40; struct TCB_t * pxCurrentTCB.11_41; long unsigned int _42; long unsigned int _43; StackType_t * _44; unsigned int _45; StackType_t * _46; sizetype _47; sizetype _48; long unsigned int pxTopOfStack.0_50; long unsigned int _51; const char * _54; char _55; char _56; struct ListItem_t * _59; struct ListItem_t * _60; long unsigned int _61; volatile uint32_t * _62; volatile uint8_t * _63; StackType_t * _64; struct List_t * _66; [local count: 560537]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = (unsigned int) usStackDepth_6(D); _2 = _1 * 4; pxStack_9 = pvPortMalloc (_2); # DEBUG pxStack => pxStack_9 # DEBUG BEGIN_STMT if (pxStack_9 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 299719]: # DEBUG BEGIN_STMT pxNewTCB_11 = pvPortMalloc (88); # DEBUG pxNewTCB => pxNewTCB_11 # DEBUG BEGIN_STMT if (pxNewTCB_11 != 0B) goto ; [82.57%] else goto ; [17.43%] [local count: 247478]: # DEBUG BEGIN_STMT pxNewTCB_11->pxStack = pxStack_9; goto ; [100.00%] [local count: 52241]: # DEBUG BEGIN_STMT vPortFree (pxStack_9); [local count: 299719]: # DEBUG pxNewTCB => pxNewTCB_11 # DEBUG BEGIN_STMT if (pxNewTCB_11 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG D#1 => 0B # DEBUG pxTaskCode => pxTaskCode_14(D) # DEBUG pcName => pcName_15(D) # DEBUG ulStackDepth => _1 # DEBUG pvParameters => pvParameters_16(D) # DEBUG uxPriority => uxPriority_17(D) # DEBUG pxCreatedTask => pxCreatedTask_18(D) # DEBUG pxNewTCB => pxNewTCB_11 # DEBUG INLINE_ENTRY prvInitialiseNewTask # DEBUG xRegions => D#1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _44 = pxNewTCB_11->pxStack; _45 = _1 * 4; memset (_44, 165, _45); # DEBUG BEGIN_STMT _46 = pxNewTCB_11->pxStack; _47 = _1 + 1073741823; _48 = _47 * 4; pxTopOfStack_49 = _46 + _48; # DEBUG pxTopOfStack => pxTopOfStack_49 # DEBUG BEGIN_STMT pxTopOfStack.0_50 = (long unsigned int) pxTopOfStack_49; _51 = pxTopOfStack.0_50 & 4294967288; pxTopOfStack_52 = (StackType_t *) _51; # DEBUG pxTopOfStack => pxTopOfStack_52 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pcName_15(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 723805]: # DEBUG BEGIN_STMT _54 = pcName_15(D) + x_53; _55 = *_54; pxNewTCB_11->pcTaskName[x_53] = _55; # DEBUG BEGIN_STMT _56 = *_54; if (_56 == 0) goto ; [5.50%] else goto ; [94.50%] [local count: 683996]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT x_57 = x_53 + 1; # DEBUG x => x_57 [local count: 796177]: # x_53 = PHI <0(7), x_57(9)> # DEBUG x => x_53 # DEBUG BEGIN_STMT if (x_53 != 10) goto ; [90.91%] else goto ; [9.09%] [local count: 112182]: # DEBUG BEGIN_STMT pxNewTCB_11->pcTaskName[9] = 0; goto ; [100.00%] [local count: 48078]: # DEBUG BEGIN_STMT pxNewTCB_11->pcTaskName[0] = 0; [local count: 160260]: # DEBUG BEGIN_STMT if (uxPriority_17(D) > 4) 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_58 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_58 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxPriority => uxPriority_17(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxNewTCB_11->uxPriority = uxPriority_17(D); # DEBUG BEGIN_STMT pxNewTCB_11->uxBasePriority = uxPriority_17(D); # DEBUG BEGIN_STMT pxNewTCB_11->uxMutexesHeld = 0; # DEBUG BEGIN_STMT _59 = &pxNewTCB_11->xStateListItem; vListInitialiseItem (_59); # DEBUG BEGIN_STMT _60 = &pxNewTCB_11->xEventListItem; vListInitialiseItem (_60); # DEBUG BEGIN_STMT pxNewTCB_11->xStateListItem.pvOwner = pxNewTCB_11; # DEBUG BEGIN_STMT _61 = 5 - uxPriority_17(D); pxNewTCB_11->xEventListItem.xItemValue = _61; # DEBUG BEGIN_STMT pxNewTCB_11->xEventListItem.pvOwner = pxNewTCB_11; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _62 = &pxNewTCB_11->ulNotifiedValue[0]; memset (_62, 0, 4); # DEBUG BEGIN_STMT _63 = &pxNewTCB_11->ucNotifyState[0]; memset (_63, 0, 1); # DEBUG BEGIN_STMT pxNewTCB_11->ucDelayAborted = 0; # DEBUG BEGIN_STMT _64 = pxPortInitialiseStack (pxTopOfStack_52, pxTaskCode_14(D), pvParameters_16(D)); pxNewTCB_11->pxTopOfStack = _64; # DEBUG BEGIN_STMT if (pxCreatedTask_18(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 37020]: # DEBUG BEGIN_STMT *pxCreatedTask_18(D) = pxNewTCB_11; [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG pxTaskCode => NULL # DEBUG pcName => NULL # DEBUG ulStackDepth => NULL # DEBUG pvParameters => NULL # DEBUG uxPriority => NULL # DEBUG pxCreatedTask => NULL # DEBUG pxNewTCB => NULL # DEBUG pxTopOfStack => NULL # DEBUG x => NULL # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG pxNewTCB => pxNewTCB_11 # DEBUG INLINE_ENTRY prvAddNewTaskToReadyList # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.2_21 ={v} uxCurrentNumberOfTasks; _22 = uxCurrentNumberOfTasks.2_21 + 1; uxCurrentNumberOfTasks ={v} _22; # DEBUG BEGIN_STMT pxCurrentTCB.3_23 ={v} pxCurrentTCB; if (pxCurrentTCB.3_23 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 15866]: # DEBUG BEGIN_STMT pxCurrentTCB ={v} pxNewTCB_11; # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.4_24 ={v} uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.4_24 == 1) goto ; [20.24%] else goto ; [79.76%] [local count: 16052]: # DEBUG BEGIN_STMT _66 = &pxReadyTasksLists[uxPriority_65]; vListInitialise (_66); # DEBUG BEGIN_STMT uxPriority_67 = uxPriority_65 + 1; # DEBUG uxPriority => uxPriority_67 [local count: 19263]: # uxPriority_65 = PHI <0(19), uxPriority_67(20)> # DEBUG uxPriority => NULL # DEBUG uxPriority => uxPriority_65 # DEBUG BEGIN_STMT if (uxPriority_65 != 5) goto ; [83.33%] else goto ; [16.67%] [local count: 3211]: # DEBUG BEGIN_STMT vListInitialise (&xDelayedTaskList1); # DEBUG BEGIN_STMT vListInitialise (&xDelayedTaskList2); # DEBUG BEGIN_STMT vListInitialise (&xPendingReadyList); # DEBUG BEGIN_STMT vListInitialise (&xTasksWaitingTermination); # DEBUG BEGIN_STMT vListInitialise (&xSuspendedTaskList); # DEBUG BEGIN_STMT pxDelayedTaskList ={v} &xDelayedTaskList1; # DEBUG BEGIN_STMT pxOverflowDelayedTaskList ={v} &xDelayedTaskList2; goto ; [100.00%] [local count: 37020]: # DEBUG BEGIN_STMT xSchedulerRunning.5_25 ={v} xSchedulerRunning; if (xSchedulerRunning.5_25 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 18510]: # DEBUG BEGIN_STMT pxCurrentTCB.6_26 ={v} pxCurrentTCB; _27 = pxCurrentTCB.6_26->uxPriority; _28 = pxNewTCB_11->uxPriority; if (_27 <= _28) goto ; [50.00%] else goto ; [50.00%] [local count: 9255]: # DEBUG BEGIN_STMT pxCurrentTCB ={v} pxNewTCB_11; [local count: 52886]: # DEBUG uxPriority => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTaskNumber.7_29 = uxTaskNumber; _30 = uxTaskNumber.7_29 + 1; uxTaskNumber = _30; # DEBUG BEGIN_STMT pxNewTCB_11->uxTCBNumber = _30; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _31 = pxNewTCB_11->uxPriority; uxTopReadyPriority.9_32 ={v} uxTopReadyPriority; if (_31 > uxTopReadyPriority.9_32) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _31; [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_33 = pxReadyTasksLists[_31].pxIndex; # DEBUG pxIndex => pxIndex_33 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxNewTCB_11->xStateListItem.pxNext = pxIndex_33; # DEBUG BEGIN_STMT _34 = pxIndex_33->pxPrevious; pxNewTCB_11->xStateListItem.pxPrevious = _34; # DEBUG BEGIN_STMT _35 = pxIndex_33->pxPrevious; _36 = &pxNewTCB_11->xStateListItem; _35->pxNext = _36; # DEBUG BEGIN_STMT pxIndex_33->pxPrevious = _36; # DEBUG BEGIN_STMT _37 = &pxReadyTasksLists[_31]; pxNewTCB_11->xStateListItem.pvContainer = _37; # DEBUG BEGIN_STMT _38 ={v} pxReadyTasksLists[_31].uxNumberOfItems; _39 = _38 + 1; pxReadyTasksLists[_31].uxNumberOfItems ={v} _39; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT xSchedulerRunning.10_40 ={v} xSchedulerRunning; if (xSchedulerRunning.10_40 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: # DEBUG BEGIN_STMT pxCurrentTCB.11_41 ={v} pxCurrentTCB; _42 = pxCurrentTCB.11_41->uxPriority; _43 = pxNewTCB_11->uxPriority; if (_42 < _43) goto ; [50.00%] else goto ; [50.00%] [local count: 13221]: # 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: 52886]: # DEBUG BEGIN_STMT [local count: 453163]: # xReturn_3 = PHI <1(31), -1(6), -1(2)> # DEBUG pxNewTCB => NULL # DEBUG pxIndex => NULL # DEBUG xReturn => NULL # DEBUG pxNewTCB => NULL # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT return xReturn_3; } ;; Function vTaskDelete (vTaskDelete, funcdef_no=10, decl_uid=6144, cgraph_uid=11, symbol_order=32) Symbols to be put in SSA form { D.8251 } Incremental SSA update started at block: 0 Number of blocks in CFG: 19 Number of blocks to update: 18 ( 95%) Merging blocks 8 and 18 Merging blocks 13 and 16 Merging blocks 8 and 17 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ;; ;; Loop 1 ;; header 13, latch 13 ;; depth 1, outer 0 ;; nodes: 13 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 5 6 } ;; 5 succs { 6 } ;; 6 succs { 7 8 } ;; 7 succs { 9 } ;; 8 succs { 9 } ;; 9 succs { 10 15 } ;; 10 succs { 11 15 } ;; 11 succs { 12 14 } ;; 12 succs { 13 } ;; 13 succs { 13 } ;; 14 succs { 15 } ;; 15 succs { 1 } vTaskDelete (struct tskTaskControlBlock * xTaskToDelete) { uint32_t ulNewBASEPRI; struct ListItem_t * _1; struct xLIST * _2; struct ListItem_t * _3; long unsigned int uxTaskNumber.13_4; long unsigned int _5; struct TCB_t * pxCurrentTCB.14_6; long unsigned int uxDeletedTasksWaitingCleanUp.15_7; long unsigned int _8; long unsigned int uxCurrentNumberOfTasks.16_9; long unsigned int _10; long int xSchedulerRunning.17_11; struct TCB_t * pxCurrentTCB.18_12; long unsigned int uxSchedulerSuspended.19_13; struct TCB_t * iftmp.12_14; struct TCB_t * iftmp.12_21; StackType_t * _36; [local count: 1431653]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (xTaskToDelete_20(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 429496]: iftmp.12_21 ={v} pxCurrentTCB; [local count: 1431653]: # iftmp.12_14 = PHI # DEBUG pxTCB => iftmp.12_14 # DEBUG BEGIN_STMT _1 = &iftmp.12_14->xStateListItem; uxListRemove (_1); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = iftmp.12_14->xEventListItem.pvContainer; if (_2 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 765505]: # DEBUG BEGIN_STMT _3 = &iftmp.12_14->xEventListItem; uxListRemove (_3); [local count: 1431653]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTaskNumber.13_4 = uxTaskNumber; _5 = uxTaskNumber.13_4 + 1; uxTaskNumber = _5; # DEBUG BEGIN_STMT pxCurrentTCB.14_6 ={v} pxCurrentTCB; if (pxCurrentTCB.14_6 == iftmp.12_14) goto ; [30.00%] else goto ; [70.00%] [local count: 429496]: # DEBUG BEGIN_STMT vListInsertEnd (&xTasksWaitingTermination, _1); # DEBUG BEGIN_STMT uxDeletedTasksWaitingCleanUp.15_7 ={v} uxDeletedTasksWaitingCleanUp; _8 = uxDeletedTasksWaitingCleanUp.15_7 + 1; uxDeletedTasksWaitingCleanUp ={v} _8; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1002157]: # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.16_9 ={v} uxCurrentNumberOfTasks; _10 = uxCurrentNumberOfTasks.16_9 + 4294967295; uxCurrentNumberOfTasks ={v} _10; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxTCB => iftmp.12_14 # DEBUG INLINE_ENTRY prvDeleteTCB # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _36 = iftmp.12_14->pxStack; vPortFree (_36); # DEBUG BEGIN_STMT vPortFree (iftmp.12_14); # DEBUG pxTCB => NULL # DEBUG BEGIN_STMT prvResetNextTaskUnblockTime (); [local count: 1431653]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT xSchedulerRunning.17_11 ={v} xSchedulerRunning; if (xSchedulerRunning.17_11 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 715827]: # DEBUG BEGIN_STMT pxCurrentTCB.18_12 ={v} pxCurrentTCB; if (pxCurrentTCB.18_12 == iftmp.12_14) goto ; [30.00%] else goto ; [70.00%] [local count: 214748]: # DEBUG BEGIN_STMT uxSchedulerSuspended.19_13 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.19_13 != 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_34 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_34 [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 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: 1324279]: # DEBUG BEGIN_STMT return; } ;; Function eTaskGetState (eTaskGetState, funcdef_no=13, decl_uid=6157, cgraph_uid=14, symbol_order=35) Symbols to be put in SSA form { D.8252 D.8609 } Incremental SSA update started at block: 0 Number of blocks in CFG: 22 Number of blocks to update: 21 ( 95%) Merging blocks 4 and 15 Merging blocks 10 and 17 Removing basic block 19 Merging blocks 21 and 16 ;; 4 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 2 ;; header 4, latch 4 ;; depth 1, outer 0 ;; nodes: 4 ;; ;; Loop 3 ;; header 12, latch 11 ;; depth 1, outer 0 ;; nodes: 12 11 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 4 } ;; 5 succs { 17 6 } ;; 6 succs { 17 7 } ;; 7 succs { 17 8 } ;; 8 succs { 9 14 } ;; 9 succs { 10 17 } ;; 10 succs { 12 } ;; 11 succs { 13 12 } ;; 12 succs { 11 13 } ;; 13 succs { 17 } ;; 14 succs { 17 15 } ;; 15 succs { 17 16 } ;; 16 succs { 17 } ;; 17 succs { 1 } eTaskGetState (struct tskTaskControlBlock * xTask) { BaseType_t x; eTaskState eReturn; eTaskState D.8609; uint32_t ulNewBASEPRI; BaseType_t x; const struct List_t * pxOverflowedDelayedList; const struct List_t * pxDelayedList; const struct List_t * pxStateList; eTaskState eReturn; struct TCB_t * pxCurrentTCB.37_1; struct xLIST * _2; unsigned char _17; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxTCB => xTask_5(D) # DEBUG BEGIN_STMT if (xTask_5(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_15 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_15 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.37_1 ={v} pxCurrentTCB; if (pxCurrentTCB.37_1 == xTask_5(D)) goto ; [46.53%] else goto ; [53.47%] [local count: 133963]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT pxStateList_9 = MEM[(const struct TCB_t *)xTask_5(D)].xStateListItem.pvContainer; # DEBUG pxStateList => pxStateList_9 # DEBUG BEGIN_STMT pxDelayedList_10 ={v} pxDelayedTaskList; # DEBUG pxDelayedList => pxDelayedList_10 # DEBUG BEGIN_STMT pxOverflowedDelayedList_11 ={v} pxOverflowDelayedTaskList; # DEBUG pxOverflowedDelayedList => pxOverflowedDelayedList_11 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT if (pxStateList_9 == pxDelayedList_10) goto ; [18.75%] else goto ; [81.25%] [local count: 108845]: if (pxStateList_9 == pxOverflowedDelayedList_11) goto ; [18.75%] else goto ; [81.25%] [local count: 88437]: # DEBUG BEGIN_STMT if (pxStateList_9 == &xSuspendedTaskList) goto ; [30.00%] else goto ; [70.00%] [local count: 26531]: # DEBUG BEGIN_STMT _2 = MEM[(const struct TCB_t *)xTask_5(D)].xEventListItem.pvContainer; if (_2 == 0B) goto ; [44.32%] else goto ; [55.68%] [local count: 11759]: # x_4 = PHI <0(9)> # DEBUG xTask => xTask_5(D) # DEBUG INLINE_ENTRY eTaskGetState goto ; [100.00%] [local count: 11146]: # DEBUG BEGIN_STMT _17 ={v} MEM[(const struct TCB_t *)xTask_5(D)].ucNotifyState[0]; if (_17 == 1) goto ; [5.50%] else goto ; [94.50%] [local count: 22291]: # x_18 = PHI <0(10), 1(11)> # DEBUG eReturn => NULL # DEBUG x => x_18 # DEBUG BEGIN_STMT if (x_18 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 11759]: # eReturn_19 = PHI <2(11), 3(12)> # DEBUG eReturn => eReturn_19 # DEBUG BEGIN_STMT _20 = eReturn_19; # DEBUG xTask => NULL # DEBUG eReturn => NULL # DEBUG pxStateList => NULL # DEBUG pxDelayedList => NULL # DEBUG pxOverflowedDelayedList => NULL # DEBUG pxTCB => NULL # DEBUG x => NULL # DEBUG ulNewBASEPRI => NULL eReturn_13 = _20; goto ; [100.00%] [local count: 61906]: # DEBUG BEGIN_STMT if (pxStateList_9 == &xTasksWaitingTermination) goto ; [18.75%] else goto ; [81.25%] [local count: 50298]: if (pxStateList_9 == 0B) goto ; [18.75%] else goto ; [81.25%] [local count: 40867]: # DEBUG BEGIN_STMT # DEBUG eReturn => 1 [local count: 250539]: # eReturn_3 = PHI <0(5), 2(7), 2(9), 4(15), 1(16), 4(14), eReturn_13(13), 2(6)> # DEBUG eReturn => eReturn_3 # DEBUG BEGIN_STMT return eReturn_3; } ;; Function uxTaskPriorityGet (uxTaskPriorityGet, funcdef_no=14, decl_uid=6153, cgraph_uid=15, symbol_order=36) uxTaskPriorityGet (struct tskTaskControlBlock * const xTask) { UBaseType_t uxReturn; const struct TCB_t * iftmp.38_1; const struct TCB_t * iftmp.38_5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (xTask_4(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 322122547]: iftmp.38_5 ={v} pxCurrentTCB; [local count: 1073741824]: # iftmp.38_1 = PHI # DEBUG pxTCB => iftmp.38_1 # DEBUG BEGIN_STMT uxReturn_6 = iftmp.38_1->uxPriority; # DEBUG uxReturn => uxReturn_6 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return uxReturn_6; } ;; Function uxTaskPriorityGetFromISR (uxTaskPriorityGetFromISR, funcdef_no=15, decl_uid=6155, cgraph_uid=16, symbol_order=37) uxTaskPriorityGetFromISR (struct tskTaskControlBlock * const xTask) { uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; UBaseType_t uxReturn; const struct TCB_t * iftmp.39_1; const struct TCB_t * iftmp.39_5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_7, "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_7 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptState => ulOriginalBASEPRI_7 # DEBUG BEGIN_STMT if (xTask_4(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 322122547]: iftmp.39_5 ={v} pxCurrentTCB; [local count: 1073741824]: # iftmp.39_1 = PHI # DEBUG pxTCB => iftmp.39_1 # DEBUG BEGIN_STMT uxReturn_6 = iftmp.39_1->uxPriority; # DEBUG uxReturn => uxReturn_6 # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_7 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_7 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return uxReturn_6; } ;; Function vTaskPrioritySet (vTaskPrioritySet, funcdef_no=16, decl_uid=6165, cgraph_uid=17, symbol_order=38) vTaskPrioritySet (struct tskTaskControlBlock * xTask, UBaseType_t uxNewPriority) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xYieldRequired; UBaseType_t uxPriorityUsedOnEntry; UBaseType_t uxCurrentBasePriority; struct TCB_t * pxCurrentTCB.41_1; struct TCB_t * pxCurrentTCB.42_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.43_4; long unsigned int _5; signed int _6; long unsigned int _7; struct xLIST * _8; struct List_t * _9; struct ListItem_t * _10; long unsigned int _11; long unsigned int uxTopReadyPriority.44_12; struct xLIST_ITEM * _13; struct xLIST_ITEM * _14; struct List_t * _15; long unsigned int _16; long unsigned int _17; struct TCB_t * iftmp.40_19; struct TCB_t * iftmp.40_29; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xYieldRequired => 0 # DEBUG BEGIN_STMT if (uxNewPriority_25(D) > 4) 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_48 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_48 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxNewPriority => uxNewPriority_25(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (xTask_28(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 15866]: iftmp.40_29 ={v} pxCurrentTCB; [local count: 52886]: # iftmp.40_19 = PHI # DEBUG pxTCB => iftmp.40_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxCurrentBasePriority_30 = iftmp.40_19->uxBasePriority; # DEBUG uxCurrentBasePriority => uxCurrentBasePriority_30 # DEBUG BEGIN_STMT if (uxNewPriority_25(D) != uxCurrentBasePriority_30) goto ; [66.00%] else goto ; [34.00%] [local count: 34905]: # DEBUG BEGIN_STMT if (uxNewPriority_25(D) > uxCurrentBasePriority_30) goto ; [50.00%] else goto ; [50.00%] [local count: 17452]: # DEBUG BEGIN_STMT pxCurrentTCB.41_1 ={v} pxCurrentTCB; if (pxCurrentTCB.41_1 != iftmp.40_19) goto ; [70.00%] else goto ; [30.00%] [local count: 12217]: # DEBUG BEGIN_STMT pxCurrentTCB.42_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.42_2->uxPriority; if (_3 <= uxNewPriority_25(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 6108]: # DEBUG BEGIN_STMT # DEBUG xYieldRequired => 1 goto ; [100.00%] [local count: 17452]: # DEBUG BEGIN_STMT pxCurrentTCB.43_4 ={v} pxCurrentTCB; if (pxCurrentTCB.43_4 == iftmp.40_19) goto ; [30.00%] else goto ; [70.00%] [local count: 5236]: # DEBUG BEGIN_STMT # DEBUG xYieldRequired => 1 [local count: 34905]: # xYieldRequired_18 = PHI <1(11), 0(12), 1(13), 0(9), 0(10)> # DEBUG xYieldRequired => xYieldRequired_18 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxPriorityUsedOnEntry_31 = iftmp.40_19->uxPriority; # DEBUG uxPriorityUsedOnEntry => uxPriorityUsedOnEntry_31 # DEBUG BEGIN_STMT if (uxCurrentBasePriority_30 == uxPriorityUsedOnEntry_31) goto ; [34.00%] else goto ; [66.00%] [local count: 11868]: # DEBUG BEGIN_STMT iftmp.40_19->uxPriority = uxNewPriority_25(D); [local count: 34905]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT iftmp.40_19->uxBasePriority = uxNewPriority_25(D); # DEBUG BEGIN_STMT _5 = iftmp.40_19->xEventListItem.xItemValue; _6 = (signed int) _5; if (_6 >= 0) goto ; [59.00%] else goto ; [41.00%] [local count: 20594]: # DEBUG BEGIN_STMT _7 = 5 - uxNewPriority_25(D); iftmp.40_19->xEventListItem.xItemValue = _7; [local count: 34905]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _8 = iftmp.40_19->xStateListItem.pvContainer; _9 = &pxReadyTasksLists[uxPriorityUsedOnEntry_31]; if (_8 == _9) goto ; [17.43%] else goto ; [82.57%] [local count: 6084]: # DEBUG BEGIN_STMT _10 = &iftmp.40_19->xStateListItem; uxListRemove (_10); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _11 = iftmp.40_19->uxPriority; uxTopReadyPriority.44_12 ={v} uxTopReadyPriority; if (_11 > uxTopReadyPriority.44_12) goto ; [50.00%] else goto ; [50.00%] [local count: 3042]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _11; [local count: 6084]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_37 = pxReadyTasksLists[_11].pxIndex; # DEBUG pxIndex => pxIndex_37 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT iftmp.40_19->xStateListItem.pxNext = pxIndex_37; # DEBUG BEGIN_STMT _13 = pxIndex_37->pxPrevious; iftmp.40_19->xStateListItem.pxPrevious = _13; # DEBUG BEGIN_STMT _14 = pxIndex_37->pxPrevious; _14->pxNext = _10; # DEBUG BEGIN_STMT pxIndex_37->pxPrevious = _10; # DEBUG BEGIN_STMT _15 = &pxReadyTasksLists[_11]; iftmp.40_19->xStateListItem.pvContainer = _15; # DEBUG BEGIN_STMT _16 ={v} pxReadyTasksLists[_11].uxNumberOfItems; _17 = _16 + 1; pxReadyTasksLists[_11].uxNumberOfItems ={v} _17; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 34905]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xYieldRequired_18 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 17452]: # 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: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); return; } ;; Function vTaskResume (vTaskResume, funcdef_no=19, decl_uid=6169, cgraph_uid=20, symbol_order=41) vTaskResume (struct tskTaskControlBlock * xTaskToResume) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct TCB_t * pxCurrentTCB.51_1; long int _2; struct ListItem_t * _3; long unsigned int _4; long unsigned int uxTopReadyPriority.52_5; struct xLIST_ITEM * _6; struct xLIST_ITEM * _7; struct List_t * _8; long unsigned int _9; long unsigned int _10; struct TCB_t * pxCurrentTCB.53_11; long unsigned int _12; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG pxTCB => xTaskToResume_16(D) # DEBUG BEGIN_STMT if (xTaskToResume_16(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_33 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_33 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.51_1 ={v} pxCurrentTCB; if (pxCurrentTCB.51_1 != xTaskToResume_16(D)) goto ; [53.47%] else goto ; [46.53%] [local count: 133963]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _2 = prvTaskIsTaskSuspended (xTaskToResume_16(D)); if (_2 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 44208]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = &MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem; uxListRemove (_3); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = MEM[(struct TCB_t *)xTaskToResume_16(D)].uxPriority; uxTopReadyPriority.52_5 ={v} uxTopReadyPriority; if (_4 > uxTopReadyPriority.52_5) goto ; [50.00%] else goto ; [50.00%] [local count: 22104]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _4; [local count: 44208]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_22 = pxReadyTasksLists[_4].pxIndex; # DEBUG pxIndex => pxIndex_22 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pxNext = pxIndex_22; # DEBUG BEGIN_STMT _6 = pxIndex_22->pxPrevious; MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pxPrevious = _6; # DEBUG BEGIN_STMT _7 = pxIndex_22->pxPrevious; _7->pxNext = _3; # DEBUG BEGIN_STMT pxIndex_22->pxPrevious = _3; # DEBUG BEGIN_STMT _8 = &pxReadyTasksLists[_4]; MEM[(struct TCB_t *)xTaskToResume_16(D)].xStateListItem.pvContainer = _8; # DEBUG BEGIN_STMT _9 ={v} pxReadyTasksLists[_4].uxNumberOfItems; _10 = _9 + 1; pxReadyTasksLists[_4].uxNumberOfItems ={v} _10; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.53_11 ={v} pxCurrentTCB; _12 = pxCurrentTCB.53_11->uxPriority; if (_4 >= _12) goto ; [50.00%] else goto ; [50.00%] [local count: 22104]: # 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: 133963]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); [local count: 250539]: # DEBUG BEGIN_STMT return; } ;; Function xTaskResumeFromISR (xTaskResumeFromISR, funcdef_no=20, decl_uid=6171, cgraph_uid=21, symbol_order=42) xTaskResumeFromISR (struct tskTaskControlBlock * xTaskToResume) { uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xYieldRequired; long int _1; long unsigned int uxSchedulerSuspended.54_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.55_4; long unsigned int _5; struct ListItem_t * _6; long unsigned int _7; long unsigned int uxTopReadyPriority.56_8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct List_t * _11; long unsigned int _12; long unsigned int _13; struct ListItem_t * _14; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG xYieldRequired => 0 # DEBUG BEGIN_STMT # DEBUG pxTCB => xTaskToResume_20(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTaskToResume_20(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_35 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_35 [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 vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_36, "=r" ulNewBASEPRI_37 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_37 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_36 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_36 # DEBUG BEGIN_STMT _1 = prvTaskIsTaskSuspended (xTaskToResume_20(D)); if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.54_2 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.54_2 == 0) goto ; [67.00%] else goto ; [33.00%] [local count: 41335]: # DEBUG BEGIN_STMT _3 = MEM[(struct TCB_t *)xTaskToResume_20(D)].uxPriority; pxCurrentTCB.55_4 ={v} pxCurrentTCB; _5 = pxCurrentTCB.55_4->uxPriority; if (_3 >= _5) goto ; [50.00%] else goto ; [50.00%] [local count: 20668]: # DEBUG BEGIN_STMT # DEBUG xYieldRequired => 1 # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 41335]: # xYieldRequired_15 = PHI <0(7), 1(8)> # DEBUG xYieldRequired => xYieldRequired_15 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _6 = &MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem; uxListRemove (_6); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _7 = MEM[(struct TCB_t *)xTaskToResume_20(D)].uxPriority; uxTopReadyPriority.56_8 ={v} uxTopReadyPriority; if (_7 > uxTopReadyPriority.56_8) goto ; [50.00%] else goto ; [50.00%] [local count: 20668]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _7; [local count: 41335]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_28 = pxReadyTasksLists[_7].pxIndex; # DEBUG pxIndex => pxIndex_28 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pxNext = pxIndex_28; # DEBUG BEGIN_STMT _9 = pxIndex_28->pxPrevious; MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pxPrevious = _9; # DEBUG BEGIN_STMT _10 = pxIndex_28->pxPrevious; _10->pxNext = _6; # DEBUG BEGIN_STMT pxIndex_28->pxPrevious = _6; # DEBUG BEGIN_STMT _11 = &pxReadyTasksLists[_7]; MEM[(struct TCB_t *)xTaskToResume_20(D)].xStateListItem.pvContainer = _11; # DEBUG BEGIN_STMT _12 ={v} pxReadyTasksLists[_7].uxNumberOfItems; _13 = _12 + 1; pxReadyTasksLists[_7].uxNumberOfItems ={v} _13; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 20359]: # DEBUG BEGIN_STMT _14 = &MEM[(struct TCB_t *)xTaskToResume_20(D)].xEventListItem; vListInsertEnd (&xPendingReadyList, _14); [local count: 123389]: # xYieldRequired_16 = PHI <0(5), 0(12), xYieldRequired_15(11)> # DEBUG xYieldRequired => xYieldRequired_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_36 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_36 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xYieldRequired_16; } ;; Function vTaskStartScheduler (vTaskStartScheduler, funcdef_no=21, decl_uid=6173, cgraph_uid=22, symbol_order=43) vTaskStartScheduler () { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; BaseType_t xReturn; long unsigned int vol.57_13; [local count: 395945]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_6 = xTaskCreate (prvIdleTask, "IDLE", 90, 0B, 0, &xIdleTaskHandle); # DEBUG xReturn => xReturn_6 # DEBUG BEGIN_STMT if (xReturn_6 == 1) goto ; [20.24%] else goto ; [79.76%] [local count: 80139]: # DEBUG BEGIN_STMT xReturn_8 = xTimerCreateTimerTask (); # DEBUG xReturn => xReturn_8 [local count: 395945]: # xReturn_1 = PHI # DEBUG xReturn => xReturn_1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xReturn_1 == 1) goto ; [20.24%] else goto ; [79.76%] [local count: 80139]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT xNextTaskUnblockTime ={v} 4294967295; # DEBUG BEGIN_STMT xSchedulerRunning ={v} 1; # DEBUG BEGIN_STMT xTickCount ={v} 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xPortStartScheduler (); goto ; [100.00%] [local count: 315806]: # DEBUG BEGIN_STMT if (xReturn_1 == -1) goto ; [34.00%] else goto ; [66.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_15 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_15 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 288571]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vol.57_13 ={v} uxTopUsedPriority; return; } ;; Function vTaskEndScheduler (vTaskEndScheduler, funcdef_no=22, decl_uid=6175, cgraph_uid=23, symbol_order=44) vTaskEndScheduler () { uint32_t ulNewBASEPRI; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT xSchedulerRunning ={v} 0; # DEBUG BEGIN_STMT vPortEndScheduler (); return; } ;; Function vTaskSuspendAll (vTaskSuspendAll, funcdef_no=23, decl_uid=6177, cgraph_uid=24, symbol_order=45) vTaskSuspendAll () { long unsigned int uxSchedulerSuspended.61_1; long unsigned int _2; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.61_1 ={v} uxSchedulerSuspended; _2 = uxSchedulerSuspended.61_1 + 1; uxSchedulerSuspended ={v} _2; # DEBUG BEGIN_STMT __asm__ __volatile__("" : : : "memory"); return; } ;; Function xTaskGetTickCount (xTaskGetTickCount, funcdef_no=25, decl_uid=6181, cgraph_uid=26, symbol_order=47) xTaskGetTickCount () { TickType_t xTicks; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTicks_2 ={v} xTickCount; # DEBUG xTicks => xTicks_2 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xTicks_2; } ;; Function xTaskGetTickCountFromISR (xTaskGetTickCountFromISR, funcdef_no=26, decl_uid=6183, cgraph_uid=27, symbol_order=48) xTaskGetTickCountFromISR () { TickType_t xReturn; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG uxSavedInterruptStatus => 0 # DEBUG BEGIN_STMT xReturn_3 ={v} xTickCount; # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_3; } ;; Function uxTaskGetNumberOfTasks (uxTaskGetNumberOfTasks, funcdef_no=27, decl_uid=6185, cgraph_uid=28, symbol_order=49) uxTaskGetNumberOfTasks () { UBaseType_t _2; [local count: 1073741824]: # DEBUG BEGIN_STMT _2 ={v} uxCurrentNumberOfTasks; return _2; } ;; Function pcTaskGetName (pcTaskGetName, funcdef_no=28, decl_uid=6187, cgraph_uid=29, symbol_order=50) pcTaskGetName (struct tskTaskControlBlock * xTaskToQuery) { uint32_t ulNewBASEPRI; struct TCB_t * iftmp.69_1; struct TCB_t * iftmp.69_4; char * _5; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTaskToQuery_2(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: iftmp.69_4 ={v} pxCurrentTCB; [local count: 357913]: # iftmp.69_1 = PHI # DEBUG pxTCB => iftmp.69_1 # DEBUG BEGIN_STMT if (iftmp.69_1 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_6 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_6 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = &iftmp.69_1->pcTaskName[0]; return _5; } ;; Function xTaskIncrementTick (xTaskIncrementTick, funcdef_no=34, decl_uid=6251, cgraph_uid=35, symbol_order=56) Symbols to be put in SSA form { D.8265 D.8659 } Incremental SSA update started at block: 0 Number of blocks in CFG: 36 Number of blocks to update: 35 ( 97%) Removing basic block 3 Removing basic block 7 Merging blocks 11 and 12 Removing basic block 15 Merging blocks 35 and 6 ;; 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 ;; ;; Loop 3 ;; header 6, latch 6 ;; depth 1, outer 0 ;; nodes: 6 ;; ;; Loop 4 ;; header 10, latch 9 ;; depth 1, outer 0 ;; nodes: 10 9 22 23 20 21 16 19 17 18 14 15 12 ;; 2 succs { 3 29 } ;; 3 succs { 4 8 } ;; 4 succs { 5 7 } ;; 5 succs { 6 } ;; 6 succs { 6 } ;; 7 succs { 8 } ;; 8 succs { 10 24 } ;; 9 succs { 10 } ;; 10 succs { 11 12 } ;; 11 succs { 24 } ;; 12 succs { 13 14 } ;; 13 succs { 24 } ;; 14 succs { 15 16 } ;; 15 succs { 16 } ;; 16 succs { 17 20 } ;; 17 succs { 18 19 } ;; 18 succs { 19 } ;; 19 succs { 20 } ;; 20 succs { 21 22 } ;; 21 succs { 22 } ;; 22 succs { 23 9 } ;; 23 succs { 9 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 27 28 } ;; 27 succs { 28 } ;; 28 succs { 30 } ;; 29 succs { 30 } ;; 30 succs { 1 } xTaskIncrementTick () { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * pxTemp; const TickType_t xConstTickCount; BaseType_t xSwitchRequired; TickType_t xItemValue; struct TCB_t * pxTCB; BaseType_t D.8659; BaseType_t xSwitchRequired; long unsigned int uxSchedulerSuspended.79_1; long unsigned int xPendedTicks.91_5; long unsigned int _6; long unsigned int xTickCount.80_10; struct List_t * pxDelayedTaskList.81_12; long unsigned int _13; struct List_t * pxOverflowDelayedTaskList.82_16; long int xNumOfOverflows.83_17; long int _18; long unsigned int xNextTaskUnblockTime.84_19; struct List_t * pxDelayedTaskList.85_20; long unsigned int _21; struct List_t * pxDelayedTaskList.86_22; struct xLIST_ITEM * _23; struct xLIST_ITEM * _28; struct xLIST_ITEM * _29; struct ListItem_t * _30; struct ListItem_t * _31; long unsigned int _32; long unsigned int _33; struct xLIST * _34; struct xLIST_ITEM * _35; struct xLIST_ITEM * _36; struct xLIST_ITEM * _37; struct ListItem_t * _38; struct ListItem_t * _39; long unsigned int _40; long unsigned int _41; long unsigned int _42; long unsigned int uxTopReadyPriority.87_43; struct xLIST_ITEM * _45; struct xLIST_ITEM * _46; struct List_t * _47; long unsigned int _48; long unsigned int _49; struct TCB_t * pxCurrentTCB.88_50; long unsigned int _51; struct TCB_t * pxCurrentTCB.89_52; long unsigned int _53; long unsigned int _54; long int xYieldPending.90_55; [local count: 641039]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xSwitchRequired => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.79_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.79_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 320519]: # DEBUG INLINE_ENTRY xTaskIncrementTick # DEBUG BEGIN_STMT xTickCount.80_10 ={v} xTickCount; xConstTickCount_11 = xTickCount.80_10 + 1; # DEBUG xConstTickCount => xConstTickCount_11 # DEBUG BEGIN_STMT xTickCount ={v} xConstTickCount_11; # DEBUG BEGIN_STMT if (xConstTickCount_11 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxDelayedTaskList.81_12 ={v} pxDelayedTaskList; _13 ={v} pxDelayedTaskList.81_12->uxNumberOfItems; if (_13 != 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_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_14 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxTemp_15 ={v} pxDelayedTaskList; # DEBUG pxTemp => pxTemp_15 # DEBUG BEGIN_STMT pxOverflowDelayedTaskList.82_16 ={v} pxOverflowDelayedTaskList; pxDelayedTaskList ={v} pxOverflowDelayedTaskList.82_16; # DEBUG BEGIN_STMT pxOverflowDelayedTaskList ={v} pxTemp_15; # DEBUG BEGIN_STMT xNumOfOverflows.83_17 ={v} xNumOfOverflows; _18 = xNumOfOverflows.83_17 + 1; xNumOfOverflows ={v} _18; # DEBUG BEGIN_STMT prvResetNextTaskUnblockTime (); # DEBUG BEGIN_STMT [local count: 213145]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xNextTaskUnblockTime.84_19 ={v} xNextTaskUnblockTime; if (xConstTickCount_11 >= xNextTaskUnblockTime.84_19) goto ; [50.00%] else goto ; [50.00%] [local count: 889667]: # xSwitchRequired_57 = PHI [local count: 996239]: # xSwitchRequired_58 = PHI <0(8), xSwitchRequired_57(9)> # DEBUG xSwitchRequired => xSwitchRequired_58 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxDelayedTaskList.85_20 ={v} pxDelayedTaskList; _21 ={v} pxDelayedTaskList.85_20->uxNumberOfItems; if (_21 == 0) goto ; [5.50%] else goto ; [94.50%] [local count: 54793]: # xSwitchRequired_59 = PHI # DEBUG BEGIN_STMT xNextTaskUnblockTime ={v} 4294967295; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 941446]: # DEBUG BEGIN_STMT pxDelayedTaskList.86_22 ={v} pxDelayedTaskList; _23 = pxDelayedTaskList.86_22->xListEnd.pxNext; pxTCB_24 = _23->pvOwner; # DEBUG pxTCB => pxTCB_24 # DEBUG BEGIN_STMT xItemValue_25 = pxTCB_24->xStateListItem.xItemValue; # DEBUG xItemValue => xItemValue_25 # DEBUG BEGIN_STMT if (xConstTickCount_11 < xItemValue_25) goto ; [5.50%] else goto ; [94.50%] [local count: 51780]: # xSwitchRequired_60 = PHI # xItemValue_26 = PHI # DEBUG BEGIN_STMT xNextTaskUnblockTime ={v} xItemValue_26; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 889667]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxList_27 = pxTCB_24->xStateListItem.pvContainer; # DEBUG pxList => pxList_27 # DEBUG BEGIN_STMT _28 = pxTCB_24->xStateListItem.pxNext; _29 = pxTCB_24->xStateListItem.pxPrevious; _28->pxPrevious = _29; # DEBUG BEGIN_STMT _29->pxNext = _28; # DEBUG BEGIN_STMT _30 = pxList_27->pxIndex; _31 = &pxTCB_24->xStateListItem; if (_30 == _31) goto ; [30.00%] else goto ; [70.00%] [local count: 266900]: # DEBUG BEGIN_STMT pxList_27->pxIndex = _29; [local count: 889667]: # DEBUG BEGIN_STMT pxTCB_24->xStateListItem.pvContainer = 0B; # DEBUG BEGIN_STMT _32 ={v} pxList_27->uxNumberOfItems; _33 = _32 + 4294967295; pxList_27->uxNumberOfItems ={v} _33; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _34 = pxTCB_24->xEventListItem.pvContainer; if (_34 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 622767]: # DEBUG BEGIN_STMT # DEBUG pxList => _34 # DEBUG BEGIN_STMT _35 = pxTCB_24->xEventListItem.pxNext; _36 = pxTCB_24->xEventListItem.pxPrevious; _35->pxPrevious = _36; # DEBUG BEGIN_STMT _37 = pxTCB_24->xEventListItem.pxPrevious; _37->pxNext = _35; # DEBUG BEGIN_STMT _38 = MEM[(struct List_t *)_34].pxIndex; _39 = &pxTCB_24->xEventListItem; if (_38 == _39) goto ; [30.00%] else goto ; [70.00%] [local count: 186830]: # DEBUG BEGIN_STMT MEM[(struct List_t *)_34].pxIndex = _37; [local count: 622767]: # DEBUG BEGIN_STMT pxTCB_24->xEventListItem.pvContainer = 0B; # DEBUG BEGIN_STMT _40 ={v} MEM[(struct List_t *)_34].uxNumberOfItems; _41 = _40 + 4294967295; MEM[(struct List_t *)_34].uxNumberOfItems ={v} _41; # DEBUG BEGIN_STMT [local count: 889667]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _42 = pxTCB_24->uxPriority; uxTopReadyPriority.87_43 ={v} uxTopReadyPriority; if (_42 > uxTopReadyPriority.87_43) goto ; [50.00%] else goto ; [50.00%] [local count: 444833]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _42; [local count: 889667]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_44 = pxReadyTasksLists[_42].pxIndex; # DEBUG pxIndex => pxIndex_44 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxTCB_24->xStateListItem.pxNext = pxIndex_44; # DEBUG BEGIN_STMT _45 = pxIndex_44->pxPrevious; pxTCB_24->xStateListItem.pxPrevious = _45; # DEBUG BEGIN_STMT _46 = pxIndex_44->pxPrevious; _46->pxNext = _31; # DEBUG BEGIN_STMT pxIndex_44->pxPrevious = _31; # DEBUG BEGIN_STMT _47 = &pxReadyTasksLists[_42]; pxTCB_24->xStateListItem.pvContainer = _47; # DEBUG BEGIN_STMT _48 ={v} pxReadyTasksLists[_42].uxNumberOfItems; _49 = _48 + 1; pxReadyTasksLists[_42].uxNumberOfItems ={v} _49; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.88_50 ={v} pxCurrentTCB; _51 = pxCurrentTCB.88_50->uxPriority; if (_42 >= _51) goto ; [50.00%] else goto ; [50.00%] [local count: 444833]: # DEBUG BEGIN_STMT # DEBUG xSwitchRequired => 1 goto ; [100.00%] [local count: 213145]: # xSwitchRequired_61 = PHI <0(8), xSwitchRequired_59(11), xSwitchRequired_60(13)> # DEBUG xSwitchRequired => xSwitchRequired_61 # DEBUG BEGIN_STMT pxCurrentTCB.89_52 ={v} pxCurrentTCB; _53 = pxCurrentTCB.89_52->uxPriority; _54 ={v} pxReadyTasksLists[_53].uxNumberOfItems; if (_54 > 1) goto ; [59.00%] else goto ; [41.00%] [local count: 125756]: # DEBUG BEGIN_STMT # DEBUG xSwitchRequired => 1 [local count: 213145]: # xSwitchRequired_62 = PHI # DEBUG xSwitchRequired => xSwitchRequired_62 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xYieldPending.90_55 ={v} xYieldPending; if (xYieldPending.90_55 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 106573]: # DEBUG BEGIN_STMT # DEBUG xSwitchRequired => 1 [local count: 213145]: # xSwitchRequired_56 = PHI # DEBUG xSwitchRequired => xSwitchRequired_56 # DEBUG BEGIN_STMT _95 = xSwitchRequired_56; # DEBUG pxTCB => NULL # DEBUG xItemValue => NULL # DEBUG xSwitchRequired => NULL # DEBUG xConstTickCount => NULL # DEBUG pxTemp => NULL # DEBUG pxList => NULL # DEBUG pxList => NULL # DEBUG pxIndex => NULL # DEBUG ulNewBASEPRI => NULL xSwitchRequired_2 = _95; goto ; [100.00%] [local count: 320519]: # DEBUG BEGIN_STMT xPendedTicks.91_5 ={v} xPendedTicks; _6 = xPendedTicks.91_5 + 1; xPendedTicks ={v} _6; [local count: 533665]: # xSwitchRequired_7 = PHI # DEBUG xSwitchRequired => xSwitchRequired_7 # DEBUG BEGIN_STMT return xSwitchRequired_7; } ;; Function xTaskResumeAll (xTaskResumeAll, funcdef_no=24, decl_uid=6179, cgraph_uid=25, symbol_order=46) Symbols to be put in SSA form { D.8266 D.8670 } Incremental SSA update started at block: 0 Number of blocks in CFG: 34 Number of blocks to update: 33 ( 97%) Merging blocks 4 and 6 Removing basic block 5 Removing basic block 8 Removing basic block 11 Removing basic block 25 Removing basic block 29 Merging blocks 33 and 7 ;; 6 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ;; ;; Loop 3 ;; header 4, latch 4 ;; depth 1, outer 0 ;; nodes: 4 ;; ;; Loop 4 ;; header 20, latch 22 ;; depth 1, outer 0 ;; nodes: 20 22 21 ;; ;; Loop 5 ;; header 16, latch 15 ;; depth 1, outer 0 ;; nodes: 16 15 13 14 11 12 9 10 7 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 4 } ;; 5 succs { 6 26 } ;; 6 succs { 16 26 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 10 11 } ;; 10 succs { 11 } ;; 11 succs { 12 13 } ;; 12 succs { 13 } ;; 13 succs { 14 15 } ;; 14 succs { 15 } ;; 15 succs { 16 } ;; 16 succs { 7 17 } ;; 17 succs { 18 19 } ;; 18 succs { 19 } ;; 19 succs { 20 24 } ;; 20 succs { 21 22 } ;; 21 succs { 22 } ;; 22 succs { 20 23 } ;; 23 succs { 24 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 1 } xTaskResumeAll () { TickType_t xPendedCounts; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; BaseType_t xAlreadyYielded; struct TCB_t * pxTCB; BaseType_t D.8670; BaseType_t D.8425; uint32_t ulNewBASEPRI; long unsigned int uxSchedulerSuspended.62_1; long unsigned int uxSchedulerSuspended.63_7; long unsigned int _8; long unsigned int uxSchedulerSuspended.64_9; long unsigned int uxCurrentNumberOfTasks.65_10; struct xLIST_ITEM * _11; struct xLIST_ITEM * _14; struct xLIST_ITEM * _15; struct xLIST_ITEM * _16; struct ListItem_t * _17; struct ListItem_t * _18; long unsigned int _19; long unsigned int _20; struct xLIST_ITEM * _22; struct xLIST_ITEM * _23; struct ListItem_t * _24; struct ListItem_t * _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; long unsigned int uxTopReadyPriority.66_29; struct xLIST_ITEM * _31; struct xLIST_ITEM * _32; struct List_t * _33; long unsigned int _34; long unsigned int _35; struct TCB_t * pxCurrentTCB.67_36; long unsigned int _37; long unsigned int _38; long int _41; long int xYieldPending.68_44; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG pxTCB => 0B # DEBUG BEGIN_STMT # DEBUG xAlreadyYielded => 0 # DEBUG BEGIN_STMT uxSchedulerSuspended.62_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.62_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_5 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_5 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 52886]: # DEBUG INLINE_ENTRY xTaskResumeAll # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxSchedulerSuspended.63_7 ={v} uxSchedulerSuspended; _8 = uxSchedulerSuspended.63_7 + 4294967295; uxSchedulerSuspended ={v} _8; # DEBUG BEGIN_STMT uxSchedulerSuspended.64_9 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.64_9 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.65_10 ={v} uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.65_10 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 106973]: # DEBUG BEGIN_STMT _11 = xPendingReadyList.xListEnd.pxNext; pxTCB_12 = _11->pvOwner; # DEBUG pxTCB => pxTCB_12 # DEBUG BEGIN_STMT pxList_13 = pxTCB_12->xEventListItem.pvContainer; # DEBUG pxList => pxList_13 # DEBUG BEGIN_STMT _14 = pxTCB_12->xEventListItem.pxNext; _15 = pxTCB_12->xEventListItem.pxPrevious; _14->pxPrevious = _15; # DEBUG BEGIN_STMT _16 = pxTCB_12->xEventListItem.pxPrevious; _16->pxNext = _14; # DEBUG BEGIN_STMT _17 = pxList_13->pxIndex; _18 = &pxTCB_12->xEventListItem; if (_17 == _18) goto ; [30.00%] else goto ; [70.00%] [local count: 32092]: # DEBUG BEGIN_STMT pxList_13->pxIndex = _15; [local count: 106973]: # DEBUG BEGIN_STMT pxTCB_12->xEventListItem.pvContainer = 0B; # DEBUG BEGIN_STMT _19 ={v} pxList_13->uxNumberOfItems; _20 = _19 + 4294967295; pxList_13->uxNumberOfItems ={v} _20; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__("" : : : "memory"); # DEBUG BEGIN_STMT pxList_21 = pxTCB_12->xStateListItem.pvContainer; # DEBUG pxList => pxList_21 # DEBUG BEGIN_STMT _22 = pxTCB_12->xStateListItem.pxNext; _23 = pxTCB_12->xStateListItem.pxPrevious; _22->pxPrevious = _23; # DEBUG BEGIN_STMT _23->pxNext = _22; # DEBUG BEGIN_STMT _24 = pxList_21->pxIndex; _25 = &pxTCB_12->xStateListItem; if (_24 == _25) goto ; [30.00%] else goto ; [70.00%] [local count: 32092]: # DEBUG BEGIN_STMT pxList_21->pxIndex = _23; [local count: 106973]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _26 ={v} pxList_21->uxNumberOfItems; _27 = _26 + 4294967295; pxList_21->uxNumberOfItems ={v} _27; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _28 = pxTCB_12->uxPriority; uxTopReadyPriority.66_29 ={v} uxTopReadyPriority; if (_28 > uxTopReadyPriority.66_29) goto ; [50.00%] else goto ; [50.00%] [local count: 53487]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _28; [local count: 106973]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_30 = pxReadyTasksLists[_28].pxIndex; # DEBUG pxIndex => pxIndex_30 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxTCB_12->xStateListItem.pxNext = pxIndex_30; # DEBUG BEGIN_STMT _31 = pxIndex_30->pxPrevious; pxTCB_12->xStateListItem.pxPrevious = _31; # DEBUG BEGIN_STMT _32 = pxIndex_30->pxPrevious; _32->pxNext = _25; # DEBUG BEGIN_STMT pxIndex_30->pxPrevious = _25; # DEBUG BEGIN_STMT _33 = &pxReadyTasksLists[_28]; pxTCB_12->xStateListItem.pvContainer = _33; # DEBUG BEGIN_STMT _34 ={v} pxReadyTasksLists[_28].uxNumberOfItems; _35 = _34 + 1; pxReadyTasksLists[_28].uxNumberOfItems ={v} _35; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.67_36 ={v} pxCurrentTCB; _37 = pxCurrentTCB.67_36->uxPriority; if (_28 >= _37) goto ; [50.00%] else goto ; [50.00%] [local count: 53487]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 106973]: # pxTCB_46 = PHI [local count: 120195]: # pxTCB_47 = PHI <0B(6), pxTCB_46(15)> # DEBUG pxTCB => pxTCB_47 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _38 ={v} xPendingReadyList.uxNumberOfItems; if (_38 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 13221]: # pxTCB_39 = PHI # DEBUG BEGIN_STMT if (pxTCB_39 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 7069]: # DEBUG BEGIN_STMT prvResetNextTaskUnblockTime (); [local count: 13221]: # DEBUG BEGIN_STMT xPendedCounts_40 ={v} xPendedTicks; # DEBUG xPendedCounts => xPendedCounts_40 # DEBUG BEGIN_STMT if (xPendedCounts_40 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 60097]: # xPendedCounts_42 = PHI # DEBUG xPendedCounts => xPendedCounts_42 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _41 = xTaskIncrementTick (); if (_41 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 30049]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 60097]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xPendedCounts_43 = xPendedCounts_42 + 4294967295; # DEBUG xPendedCounts => xPendedCounts_43 # DEBUG BEGIN_STMT if (xPendedCounts_43 != 0) goto ; [89.00%] else goto ; [11.00%] [local count: 6611]: # DEBUG BEGIN_STMT xPendedTicks ={v} 0; [local count: 13221]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xYieldPending.68_44 ={v} xYieldPending; if (xYieldPending.68_44 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 6611]: # DEBUG BEGIN_STMT # DEBUG xAlreadyYielded => 1 # 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: 52886]: # xAlreadyYielded_45 = PHI <0(5), 0(6), 0(24), 1(25)> # DEBUG xAlreadyYielded => xAlreadyYielded_45 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _86 = xAlreadyYielded_45; # DEBUG pxTCB => NULL # DEBUG xAlreadyYielded => NULL # DEBUG pxList => NULL # DEBUG pxList => NULL # DEBUG pxIndex => NULL # DEBUG xPendedCounts => NULL # DEBUG ulNewBASEPRI => NULL _2 = _86; return _2; } ;; Function xTaskDelayUntil (xTaskDelayUntil, funcdef_no=11, decl_uid=6149, cgraph_uid=12, symbol_order=33) xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const TickType_t xConstTickCount; BaseType_t xShouldDelay; BaseType_t xAlreadyYielded; TickType_t xTimeToWake; long unsigned int uxSchedulerSuspended.22_1; long unsigned int _2; long unsigned int _3; [local count: 306783]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xShouldDelay => 0 # DEBUG BEGIN_STMT if (pxPreviousWakeTime_7(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_21 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_21 [local count: 920350133]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 920350133]: goto ; [100.00%] [local count: 214748]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTimeIncrement_8(D) == 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_22 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_22 [local count: 1073741823]: # 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 uxSchedulerSuspended.22_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.22_1 != 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_23 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_23 [local count: 719407021]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 719407021]: goto ; [100.00%] [local count: 35433]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT xConstTickCount_11 ={v} xTickCount; # DEBUG xConstTickCount => xConstTickCount_11 # DEBUG BEGIN_STMT _2 = *pxPreviousWakeTime_7(D); xTimeToWake_12 = _2 + xTimeIncrement_8(D); # DEBUG xTimeToWake => xTimeToWake_12 # DEBUG BEGIN_STMT if (_2 > xConstTickCount_11) goto ; [50.00%] else goto ; [50.00%] [local count: 17717]: # DEBUG BEGIN_STMT if (_2 > xTimeToWake_12) goto ; [50.00%] else goto ; [50.00%] [local count: 8858]: # DEBUG xShouldDelay => 0 # DEBUG BEGIN_STMT *pxPreviousWakeTime_7(D) = xTimeToWake_12; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 8858]: if (xConstTickCount_11 < xTimeToWake_12) goto ; [50.00%] else goto ; [50.00%] [local count: 4429]: # DEBUG xShouldDelay => 0 # DEBUG BEGIN_STMT *pxPreviousWakeTime_7(D) = xTimeToWake_12; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 4429]: # DEBUG BEGIN_STMT # DEBUG xShouldDelay => 1 # DEBUG BEGIN_STMT *pxPreviousWakeTime_7(D) = xTimeToWake_12; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 17717]: # DEBUG BEGIN_STMT if (_2 > xTimeToWake_12) goto ; [50.00%] else goto ; [50.00%] [local count: 8858]: if (xConstTickCount_11 < xTimeToWake_12) goto ; [50.00%] else goto ; [50.00%] [local count: 13288]: # DEBUG BEGIN_STMT # DEBUG xShouldDelay => 1 # DEBUG BEGIN_STMT *pxPreviousWakeTime_7(D) = xTimeToWake_12; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 4429]: # DEBUG xShouldDelay => 0 # DEBUG BEGIN_STMT *pxPreviousWakeTime_7(D) = xTimeToWake_12; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 17717]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = xTimeToWake_12 - xConstTickCount_11; prvAddCurrentTaskToDelayedList (_3, 0); [local count: 35433]: # xShouldDelay_29 = PHI <0(20), 1(21), 0(15), 0(13)> # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xAlreadyYielded_16 = xTaskResumeAll (); # DEBUG xAlreadyYielded => xAlreadyYielded_16 # DEBUG BEGIN_STMT if (xAlreadyYielded_16 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 17717]: # 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: 35433]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xShouldDelay_29; } ;; Function vTaskDelay (vTaskDelay, funcdef_no=12, decl_uid=6146, cgraph_uid=13, symbol_order=34) vTaskDelay (const TickType_t xTicksToDelay) { uint32_t ulNewBASEPRI; BaseType_t xAlreadyYielded; long unsigned int uxSchedulerSuspended.36_1; [local count: 320519]: # DEBUG BEGIN_STMT # DEBUG xAlreadyYielded => 0 # DEBUG BEGIN_STMT if (xTicksToDelay_3(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 160260]: # DEBUG BEGIN_STMT uxSchedulerSuspended.36_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.36_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_13 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_13 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToDelay_3(D), 0); # DEBUG BEGIN_STMT xAlreadyYielded_8 = xTaskResumeAll (); # DEBUG xAlreadyYielded => xAlreadyYielded_8 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xAlreadyYielded_8 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 186703]: # DEBUG xAlreadyYielded => NULL # 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: 213145]: # DEBUG BEGIN_STMT return; } ;; Function xTaskGetHandle (xTaskGetHandle, funcdef_no=30, decl_uid=6189, cgraph_uid=31, symbol_order=52) Merging blocks 4 and 17 Removing basic block 18 xTaskGetHandle (const char * pcNameToQuery) { uint32_t ulNewBASEPRI; struct TCB_t * pxTCB; UBaseType_t uxQueue; unsigned int _1; struct List_t * _2; struct List_t * pxDelayedTaskList.70_3; struct List_t * pxOverflowDelayedTaskList.71_4; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG uxQueue => 5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = strlen (pcNameToQuery_17(D)); if (_1 > 9) 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_31 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_31 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskSuspendAll (); [local count: 216745]: # uxQueue_5 = PHI <5(5), uxQueue_19(7)> # DEBUG uxQueue => uxQueue_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxQueue_19 = uxQueue_5 + 4294967295; # DEBUG uxQueue => uxQueue_19 # DEBUG BEGIN_STMT _2 = &pxReadyTasksLists[uxQueue_19]; pxTCB_21 = prvSearchForNameWithinSingleList (_2, pcNameToQuery_17(D)); # DEBUG pxTCB => pxTCB_21 # DEBUG BEGIN_STMT if (pxTCB_21 != 0B) goto ; [5.50%] else goto ; [94.50%] [local count: 204824]: # DEBUG BEGIN_STMT if (uxQueue_19 != 0) goto ; [80.00%] else goto ; [20.00%] [local count: 52886]: # pxTCB_15 = PHI # DEBUG BEGIN_STMT if (pxTCB_15 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 9218]: # DEBUG BEGIN_STMT pxDelayedTaskList.70_3 ={v} pxDelayedTaskList; pxTCB_23 = prvSearchForNameWithinSingleList (pxDelayedTaskList.70_3, pcNameToQuery_17(D)); # DEBUG pxTCB => pxTCB_23 [local count: 52886]: # pxTCB_6 = PHI # DEBUG pxTCB => pxTCB_6 # DEBUG BEGIN_STMT if (pxTCB_6 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 9218]: # DEBUG BEGIN_STMT pxOverflowDelayedTaskList.71_4 ={v} pxOverflowDelayedTaskList; pxTCB_25 = prvSearchForNameWithinSingleList (pxOverflowDelayedTaskList.71_4, pcNameToQuery_17(D)); # DEBUG pxTCB => pxTCB_25 [local count: 52886]: # pxTCB_7 = PHI # DEBUG pxTCB => pxTCB_7 # DEBUG BEGIN_STMT if (pxTCB_7 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 9218]: # DEBUG BEGIN_STMT pxTCB_27 = prvSearchForNameWithinSingleList (&xSuspendedTaskList, pcNameToQuery_17(D)); # DEBUG pxTCB => pxTCB_27 [local count: 52886]: # pxTCB_8 = PHI # DEBUG pxTCB => pxTCB_8 # DEBUG BEGIN_STMT if (pxTCB_8 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 9218]: # DEBUG BEGIN_STMT pxTCB_29 = prvSearchForNameWithinSingleList (&xTasksWaitingTermination, pcNameToQuery_17(D)); # DEBUG pxTCB => pxTCB_29 [local count: 52886]: # pxTCB_9 = PHI # DEBUG pxTCB => pxTCB_9 # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT return pxTCB_9; } ;; Function xTaskCatchUpTicks (xTaskCatchUpTicks, funcdef_no=32, decl_uid=6249, cgraph_uid=33, symbol_order=54) xTaskCatchUpTicks (TickType_t xTicksToCatchUp) { uint32_t ulNewBASEPRI; BaseType_t xYieldOccurred; long unsigned int uxSchedulerSuspended.75_1; long unsigned int xPendedTicks.76_2; long unsigned int _3; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.75_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.75_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_10 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_10 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT xPendedTicks.76_2 ={v} xPendedTicks; _3 = xPendedTicks.76_2 + xTicksToCatchUp_6(D); xPendedTicks ={v} _3; # DEBUG BEGIN_STMT xYieldOccurred_9 = xTaskResumeAll (); # DEBUG xYieldOccurred => xYieldOccurred_9 # DEBUG BEGIN_STMT return xYieldOccurred_9; } ;; Function xTaskAbortDelay (xTaskAbortDelay, funcdef_no=33, decl_uid=6151, cgraph_uid=34, symbol_order=55) xTaskAbortDelay (struct tskTaskControlBlock * xTask) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xReturn; _1; struct ListItem_t * _2; struct xLIST * _3; struct ListItem_t * _4; long unsigned int _5; long unsigned int uxTopReadyPriority.77_6; struct xLIST_ITEM * _7; struct xLIST_ITEM * _8; struct List_t * _9; long unsigned int _10; long unsigned int _11; struct TCB_t * pxCurrentTCB.78_12; long unsigned int _13; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxTCB => xTask_18(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_18(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_37 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_37 [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 vTaskSuspendAll (); # DEBUG BEGIN_STMT _1 = eTaskGetState (xTask_18(D)); if (_1 == 2) goto ; [20.24%] else goto ; [79.76%] [local count: 24974]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT _2 = &MEM[(struct TCB_t *)xTask_18(D)].xStateListItem; uxListRemove (_2); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _3 = MEM[(struct TCB_t *)xTask_18(D)].xEventListItem.pvContainer; if (_3 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 13354]: # DEBUG BEGIN_STMT _4 = &MEM[(struct TCB_t *)xTask_18(D)].xEventListItem; uxListRemove (_4); # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTask_18(D)].ucDelayAborted = 1; [local count: 24974]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = MEM[(struct TCB_t *)xTask_18(D)].uxPriority; uxTopReadyPriority.77_6 ={v} uxTopReadyPriority; if (_5 > uxTopReadyPriority.77_6) goto ; [50.00%] else goto ; [50.00%] [local count: 12487]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _5; [local count: 24974]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_28 = pxReadyTasksLists[_5].pxIndex; # DEBUG pxIndex => pxIndex_28 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pxNext = pxIndex_28; # DEBUG BEGIN_STMT _7 = pxIndex_28->pxPrevious; MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pxPrevious = _7; # DEBUG BEGIN_STMT _8 = pxIndex_28->pxPrevious; _8->pxNext = _2; # DEBUG BEGIN_STMT pxIndex_28->pxPrevious = _2; # DEBUG BEGIN_STMT _9 = &pxReadyTasksLists[_5]; MEM[(struct TCB_t *)xTask_18(D)].xStateListItem.pvContainer = _9; # DEBUG BEGIN_STMT _10 ={v} pxReadyTasksLists[_5].uxNumberOfItems; _11 = _10 + 1; pxReadyTasksLists[_5].uxNumberOfItems ={v} _11; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.78_12 ={v} pxCurrentTCB; _13 = pxCurrentTCB.78_12->uxPriority; if (_5 > _13) goto ; [50.00%] else goto ; [50.00%] [local count: 12487]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 123389]: # xReturn_14 = PHI <1(11), 0(5), 1(10)> # DEBUG xReturn => xReturn_14 # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT return xReturn_14; } ;; Function vTaskSwitchContext (vTaskSwitchContext, funcdef_no=35, decl_uid=6269, cgraph_uid=36, symbol_order=57) Removing basic block 13 Symbols to be put in SSA form { D.8272 } Incremental SSA update started at block: 0 Number of blocks in CFG: 18 Number of blocks to update: 16 ( 89%) Removing basic block 6 Removing basic block 14 Merging blocks 16 and 17 ;; 4 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 ;; ;; Loop 3 ;; header 7, latch 7 ;; depth 1, outer 0 ;; nodes: 7 ;; ;; Loop 1 ;; header 9, latch 8 ;; depth 1, outer 0 ;; nodes: 9 8 5 ;; 2 succs { 3 4 } ;; 3 succs { 13 } ;; 4 succs { 9 } ;; 5 succs { 6 8 } ;; 6 succs { 7 } ;; 7 succs { 7 } ;; 8 succs { 9 } ;; 9 succs { 5 10 } ;; 10 succs { 11 12 } ;; 11 succs { 12 } ;; 12 succs { 13 } ;; 13 succs { 1 } __attribute__((used)) vTaskSwitchContext () { uint32_t ulNewBASEPRI; UBaseType_t uxTopPriority; long unsigned int uxSchedulerSuspended.92_1; long unsigned int _2; struct ListItem_t * _3; struct xLIST_ITEM * _4; struct MiniListItem_t * _6; struct xLIST_ITEM * _8; struct ListItem_t * _9; void * _10; [local count: 441995]: # DEBUG BEGIN_STMT uxSchedulerSuspended.92_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.92_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 220997]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; goto ; [100.00%] [local count: 220997]: # DEBUG BEGIN_STMT xYieldPending ={v} 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTopPriority_15 ={v} uxTopReadyPriority; # DEBUG uxTopPriority => uxTopPriority_15 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1952255]: # DEBUG BEGIN_STMT if (uxTopPriority_11 == 0) goto ; [5.50%] else goto ; [94.50%] [local count: 107374]: # DEBUG INLINE_ENTRY vTaskSwitchContext # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_23 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_23 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1844881]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTopPriority_21 = uxTopPriority_11 + 4294967295; # DEBUG uxTopPriority => uxTopPriority_21 [local count: 2065878]: # uxTopPriority_11 = PHI # DEBUG uxTopPriority => uxTopPriority_11 # DEBUG BEGIN_STMT _2 ={v} pxReadyTasksLists[uxTopPriority_11].uxNumberOfItems; if (_2 == 0) goto ; [94.50%] else goto ; [5.50%] [local count: 113623]: # uxTopPriority_5 = PHI # DEBUG BEGIN_STMT # DEBUG D#6 => &pxReadyTasksLists[uxTopPriority_5] # DEBUG pxConstList => D#6 # DEBUG BEGIN_STMT _3 = MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex; _4 = _3->pxNext; MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex = _4; # DEBUG BEGIN_STMT _6 = &MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].xListEnd; if (_4 == _6) goto ; [30.00%] else goto ; [70.00%] [local count: 34087]: # DEBUG BEGIN_STMT _8 = MEM[(struct ListItem_t *)_4].pxNext; MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex = _8; [local count: 113623]: # DEBUG BEGIN_STMT _9 = MEM[(struct List_t *)&pxReadyTasksLists][uxTopPriority_5].pxIndex; _10 = _9->pvOwner; pxCurrentTCB ={v} _10; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTopReadyPriority ={v} uxTopPriority_5; [local count: 334621]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return; } ;; Function vTaskSuspend (vTaskSuspend, funcdef_no=17, decl_uid=6167, cgraph_uid=18, symbol_order=39) vTaskSuspend (struct tskTaskControlBlock * xTaskToSuspend) { uint32_t ulNewBASEPRI; BaseType_t x; struct ListItem_t * _1; struct xLIST * _2; struct ListItem_t * _3; unsigned char _4; long int xSchedulerRunning.46_5; struct TCB_t * pxCurrentTCB.47_6; long int xSchedulerRunning.48_7; long unsigned int uxSchedulerSuspended.49_8; long unsigned int _9; long unsigned int uxCurrentNumberOfTasks.50_10; struct TCB_t * iftmp.45_12; struct TCB_t * iftmp.45_21; [local count: 1431653]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (xTaskToSuspend_20(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 429496]: iftmp.45_21 ={v} pxCurrentTCB; [local count: 1431653]: # iftmp.45_12 = PHI # DEBUG pxTCB => iftmp.45_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = &iftmp.45_12->xStateListItem; uxListRemove (_1); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = iftmp.45_12->xEventListItem.pvContainer; if (_2 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 765505]: # DEBUG BEGIN_STMT _3 = &iftmp.45_12->xEventListItem; uxListRemove (_3); [local count: 1431653]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vListInsertEnd (&xSuspendedTaskList, _1); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG x => 0 goto ; [100.00%] [local count: 24598407]: # DEBUG BEGIN_STMT _4 ={v} iftmp.45_12->ucNotifyState[0]; if (_4 == 1) goto ; [67.00%] else goto ; [33.00%] [local count: 8117474]: goto ; [100.00%] [local count: 16480933]: # DEBUG BEGIN_STMT iftmp.45_12->ucNotifyState[0] ={v} 0; [local count: 17912586]: # x_14 = PHI <0(6), 1(8)> [local count: 26030061]: # x_11 = PHI # DEBUG x => x_11 # DEBUG BEGIN_STMT if (x_11 == 0) goto ; [94.50%] else goto ; [5.50%] [local count: 1431653]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT xSchedulerRunning.46_5 ={v} xSchedulerRunning; if (xSchedulerRunning.46_5 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 472446]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT prvResetNextTaskUnblockTime (); # DEBUG BEGIN_STMT vPortExitCritical (); [local count: 1431653]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.47_6 ={v} pxCurrentTCB; if (pxCurrentTCB.47_6 == iftmp.45_12) goto ; [30.00%] else goto ; [70.00%] [local count: 429496]: # DEBUG BEGIN_STMT xSchedulerRunning.48_7 ={v} xSchedulerRunning; if (xSchedulerRunning.48_7 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 214748]: # DEBUG BEGIN_STMT uxSchedulerSuspended.49_8 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.49_8 != 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_36 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_36 [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 MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748]: # DEBUG BEGIN_STMT _9 ={v} xSuspendedTaskList.uxNumberOfItems; uxCurrentNumberOfTasks.50_10 ={v} uxCurrentNumberOfTasks; if (_9 == uxCurrentNumberOfTasks.50_10) goto ; [51.12%] else goto ; [48.88%] [local count: 109779]: # DEBUG BEGIN_STMT pxCurrentTCB ={v} 0B; goto ; [100.00%] [local count: 104969]: # DEBUG BEGIN_STMT vTaskSwitchContext (); [local count: 1324279]: # DEBUG BEGIN_STMT return; } ;; Function vTaskPlaceOnEventList (vTaskPlaceOnEventList, funcdef_no=36, decl_uid=6254, cgraph_uid=37, symbol_order=58) vTaskPlaceOnEventList (struct List_t * const pxEventList, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; struct TCB_t * pxCurrentTCB.93_1; struct ListItem_t * _2; [local count: 230763]: # DEBUG BEGIN_STMT if (pxEventList_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.93_1 ={v} pxCurrentTCB; _2 = &pxCurrentTCB.93_1->xEventListItem; vListInsert (pxEventList_3(D), _2); # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToWait_6(D), 1); return; } ;; Function vTaskPlaceOnUnorderedEventList (vTaskPlaceOnUnorderedEventList, funcdef_no=37, decl_uid=6258, cgraph_uid=38, symbol_order=59) vTaskPlaceOnUnorderedEventList (struct List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; long unsigned int uxSchedulerSuspended.94_1; struct TCB_t * pxCurrentTCB.95_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.96_4; struct TCB_t * pxCurrentTCB.97_5; struct xLIST_ITEM * _6; struct TCB_t * pxCurrentTCB.98_7; struct xLIST_ITEM * _8; struct ListItem_t * _9; struct TCB_t * pxCurrentTCB.99_10; struct ListItem_t * _11; struct TCB_t * pxCurrentTCB.100_12; long unsigned int _13; long unsigned int _14; [local count: 228942]: # DEBUG BEGIN_STMT if (pxEventList_15(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_28 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_28 [local count: 686828460]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 686828460]: goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.94_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.94_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_29 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_29 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.95_2 ={v} pxCurrentTCB; _3 = xItemValue_17(D) | 2147483648; pxCurrentTCB.95_2->xEventListItem.xItemValue = _3; # DEBUG BEGIN_STMT pxIndex_19 = pxEventList_15(D)->pxIndex; # DEBUG pxIndex => pxIndex_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.96_4 ={v} pxCurrentTCB; pxCurrentTCB.96_4->xEventListItem.pxNext = pxIndex_19; # DEBUG BEGIN_STMT pxCurrentTCB.97_5 ={v} pxCurrentTCB; _6 = pxIndex_19->pxPrevious; pxCurrentTCB.97_5->xEventListItem.pxPrevious = _6; # DEBUG BEGIN_STMT pxCurrentTCB.98_7 ={v} pxCurrentTCB; _8 = pxIndex_19->pxPrevious; _9 = &pxCurrentTCB.98_7->xEventListItem; _8->pxNext = _9; # DEBUG BEGIN_STMT pxCurrentTCB.99_10 ={v} pxCurrentTCB; _11 = &pxCurrentTCB.99_10->xEventListItem; pxIndex_19->pxPrevious = _11; # DEBUG BEGIN_STMT pxCurrentTCB.100_12 ={v} pxCurrentTCB; pxCurrentTCB.100_12->xEventListItem.pvContainer = pxEventList_15(D); # DEBUG BEGIN_STMT _13 ={v} pxEventList_15(D)->uxNumberOfItems; _14 = _13 + 1; pxEventList_15(D)->uxNumberOfItems ={v} _14; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1); return; } ;; Function vTaskPlaceOnEventListRestricted (vTaskPlaceOnEventListRestricted, funcdef_no=38, decl_uid=6262, cgraph_uid=39, symbol_order=60) vTaskPlaceOnEventListRestricted (struct List_t * const pxEventList, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct TCB_t * pxCurrentTCB.101_1; struct TCB_t * pxCurrentTCB.102_2; struct xLIST_ITEM * _3; struct TCB_t * pxCurrentTCB.103_4; struct xLIST_ITEM * _5; struct ListItem_t * _6; struct TCB_t * pxCurrentTCB.104_7; struct ListItem_t * _8; struct TCB_t * pxCurrentTCB.105_9; long unsigned int _10; long unsigned int _11; [local count: 357913]: # DEBUG BEGIN_STMT if (pxEventList_13(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_25 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_25 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_15 = pxEventList_13(D)->pxIndex; # DEBUG pxIndex => pxIndex_15 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.101_1 ={v} pxCurrentTCB; pxCurrentTCB.101_1->xEventListItem.pxNext = pxIndex_15; # DEBUG BEGIN_STMT pxCurrentTCB.102_2 ={v} pxCurrentTCB; _3 = pxIndex_15->pxPrevious; pxCurrentTCB.102_2->xEventListItem.pxPrevious = _3; # DEBUG BEGIN_STMT pxCurrentTCB.103_4 ={v} pxCurrentTCB; _5 = pxIndex_15->pxPrevious; _6 = &pxCurrentTCB.103_4->xEventListItem; _5->pxNext = _6; # DEBUG BEGIN_STMT pxCurrentTCB.104_7 ={v} pxCurrentTCB; _8 = &pxCurrentTCB.104_7->xEventListItem; pxIndex_15->pxPrevious = _8; # DEBUG BEGIN_STMT pxCurrentTCB.105_9 ={v} pxCurrentTCB; pxCurrentTCB.105_9->xEventListItem.pvContainer = pxEventList_13(D); # DEBUG BEGIN_STMT _10 ={v} pxEventList_13(D)->uxNumberOfItems; _11 = _10 + 1; pxEventList_13(D)->uxNumberOfItems ={v} _11; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xWaitIndefinitely_22(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 125270]: # DEBUG BEGIN_STMT # DEBUG xTicksToWait => 4294967295 [local count: 250539]: # xTicksToWait_12 = PHI # DEBUG xTicksToWait => xTicksToWait_12 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToWait_12, xWaitIndefinitely_22(D)); return; } ;; Function xTaskRemoveFromEventList (xTaskRemoveFromEventList, funcdef_no=39, decl_uid=6264, cgraph_uid=40, symbol_order=61) xTaskRemoveFromEventList (const struct List_t * const pxEventList) { uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; BaseType_t xReturn; struct TCB_t * pxUnblockedTCB; struct xLIST_ITEM * _1; struct xLIST_ITEM * _2; struct xLIST_ITEM * _3; struct ListItem_t * _4; struct ListItem_t * _5; long unsigned int _6; long unsigned int _7; long unsigned int uxSchedulerSuspended.106_8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct xLIST_ITEM * _11; struct ListItem_t * _12; struct ListItem_t * _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; long unsigned int uxTopReadyPriority.107_17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct List_t * _20; long unsigned int _21; long unsigned int _22; struct xLIST_ITEM * _23; struct xLIST_ITEM * _24; long unsigned int _25; long unsigned int _26; long unsigned int _27; struct TCB_t * pxCurrentTCB.108_28; long unsigned int _29; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = pxEventList_37(D)->xListEnd.pxNext; pxUnblockedTCB_38 = _1->pvOwner; # DEBUG pxUnblockedTCB => pxUnblockedTCB_38 # DEBUG BEGIN_STMT if (pxUnblockedTCB_38 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_66 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxList_39 = pxUnblockedTCB_38->xEventListItem.pvContainer; # DEBUG pxList => pxList_39 # DEBUG BEGIN_STMT _2 = pxUnblockedTCB_38->xEventListItem.pxNext; _3 = pxUnblockedTCB_38->xEventListItem.pxPrevious; _2->pxPrevious = _3; # DEBUG BEGIN_STMT _3->pxNext = _2; # DEBUG BEGIN_STMT _4 = pxList_39->pxIndex; _5 = &pxUnblockedTCB_38->xEventListItem; if (_4 == _5) goto ; [30.00%] else goto ; [70.00%] [local count: 75162]: # DEBUG BEGIN_STMT pxList_39->pxIndex = _3; [local count: 250539]: # DEBUG BEGIN_STMT pxUnblockedTCB_38->xEventListItem.pvContainer = 0B; # DEBUG BEGIN_STMT _6 ={v} pxList_39->uxNumberOfItems; _7 = _6 + 4294967295; pxList_39->uxNumberOfItems ={v} _7; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.106_8 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.106_8 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 125270]: # DEBUG BEGIN_STMT pxList_52 = pxUnblockedTCB_38->xStateListItem.pvContainer; # DEBUG pxList => pxList_52 # DEBUG BEGIN_STMT _9 = pxUnblockedTCB_38->xStateListItem.pxNext; _10 = pxUnblockedTCB_38->xStateListItem.pxPrevious; _9->pxPrevious = _10; # DEBUG BEGIN_STMT _11 = pxUnblockedTCB_38->xStateListItem.pxPrevious; _11->pxNext = _9; # DEBUG BEGIN_STMT _12 = pxList_52->pxIndex; _13 = &pxUnblockedTCB_38->xStateListItem; if (_12 == _13) goto ; [30.00%] else goto ; [70.00%] [local count: 37581]: # DEBUG BEGIN_STMT pxList_52->pxIndex = _11; [local count: 125270]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 ={v} pxList_52->uxNumberOfItems; _15 = _14 + 4294967295; pxList_52->uxNumberOfItems ={v} _15; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _16 = pxUnblockedTCB_38->uxPriority; uxTopReadyPriority.107_17 ={v} uxTopReadyPriority; if (_16 > uxTopReadyPriority.107_17) goto ; [50.00%] else goto ; [50.00%] [local count: 62635]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _16; [local count: 125270]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_58 = pxReadyTasksLists[_16].pxIndex; # DEBUG pxIndex => pxIndex_58 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxUnblockedTCB_38->xStateListItem.pxNext = pxIndex_58; # DEBUG BEGIN_STMT _18 = pxIndex_58->pxPrevious; pxUnblockedTCB_38->xStateListItem.pxPrevious = _18; # DEBUG BEGIN_STMT _19 = pxIndex_58->pxPrevious; _19->pxNext = _13; # DEBUG BEGIN_STMT pxIndex_58->pxPrevious = _13; # DEBUG BEGIN_STMT _20 = &pxReadyTasksLists[_16]; pxUnblockedTCB_38->xStateListItem.pvContainer = _20; # DEBUG BEGIN_STMT _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems; _22 = _21 + 1; pxReadyTasksLists[_16].uxNumberOfItems ={v} _22; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 125270]: # DEBUG BEGIN_STMT pxIndex_45 = xPendingReadyList.pxIndex; # DEBUG pxIndex => pxIndex_45 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxUnblockedTCB_38->xEventListItem.pxNext = pxIndex_45; # DEBUG BEGIN_STMT _23 = pxIndex_45->pxPrevious; pxUnblockedTCB_38->xEventListItem.pxPrevious = _23; # DEBUG BEGIN_STMT _24 = pxIndex_45->pxPrevious; _24->pxNext = _5; # DEBUG BEGIN_STMT pxIndex_45->pxPrevious = _5; # DEBUG BEGIN_STMT pxUnblockedTCB_38->xEventListItem.pvContainer = &xPendingReadyList; # DEBUG BEGIN_STMT _25 ={v} xPendingReadyList.uxNumberOfItems; _26 = _25 + 1; xPendingReadyList.uxNumberOfItems ={v} _26; [local count: 250539]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _27 = pxUnblockedTCB_38->uxPriority; pxCurrentTCB.108_28 ={v} pxCurrentTCB; _29 = pxCurrentTCB.108_28->uxPriority; if (_27 > _29) goto ; [50.00%] else goto ; [50.00%] [local count: 125270]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 250539]: # xReturn_30 = PHI <1(15), 0(14)> # DEBUG xReturn => xReturn_30 # DEBUG BEGIN_STMT return xReturn_30; } ;; Function vTaskRemoveFromUnorderedEventList (vTaskRemoveFromUnorderedEventList, funcdef_no=40, decl_uid=6267, cgraph_uid=41, symbol_order=62) vTaskRemoveFromUnorderedEventList (struct ListItem_t * pxEventListItem, const TickType_t xItemValue) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; struct List_t * const pxList; struct TCB_t * pxUnblockedTCB; long unsigned int uxSchedulerSuspended.109_1; long unsigned int _2; struct xLIST_ITEM * _3; struct xLIST_ITEM * _4; struct xLIST_ITEM * _5; struct ListItem_t * _6; long unsigned int _7; long unsigned int _8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct xLIST_ITEM * _11; struct ListItem_t * _12; struct ListItem_t * _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; long unsigned int uxTopReadyPriority.110_17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct List_t * _20; long unsigned int _21; long unsigned int _22; struct TCB_t * pxCurrentTCB.111_23; long unsigned int _24; [local count: 214748]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.109_1 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.109_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_54 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_54 [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 _2 = xItemValue_30(D) | 2147483648; pxEventListItem_31(D)->xItemValue = _2; # DEBUG BEGIN_STMT pxUnblockedTCB_33 = pxEventListItem_31(D)->pvOwner; # DEBUG pxUnblockedTCB => pxUnblockedTCB_33 # DEBUG BEGIN_STMT if (pxUnblockedTCB_33 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 32212]: # 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_55 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_55 [local count: 322122547]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 322122547]: goto ; [100.00%] [local count: 75162]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxList_34 = pxEventListItem_31(D)->pvContainer; # DEBUG pxList => pxList_34 # DEBUG BEGIN_STMT _3 = pxEventListItem_31(D)->pxNext; _4 = pxEventListItem_31(D)->pxPrevious; _3->pxPrevious = _4; # DEBUG BEGIN_STMT _5 = pxEventListItem_31(D)->pxPrevious; _5->pxNext = _3; # DEBUG BEGIN_STMT _6 = pxList_34->pxIndex; if (_6 == pxEventListItem_31(D)) goto ; [30.00%] else goto ; [70.00%] [local count: 22549]: # DEBUG BEGIN_STMT pxList_34->pxIndex = _5; [local count: 75162]: # DEBUG BEGIN_STMT pxEventListItem_31(D)->pvContainer = 0B; # DEBUG BEGIN_STMT _7 ={v} pxList_34->uxNumberOfItems; _8 = _7 + 4294967295; pxList_34->uxNumberOfItems ={v} _8; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxList_40 = pxUnblockedTCB_33->xStateListItem.pvContainer; # DEBUG pxList => pxList_40 # DEBUG BEGIN_STMT _9 = pxUnblockedTCB_33->xStateListItem.pxNext; _10 = pxUnblockedTCB_33->xStateListItem.pxPrevious; _9->pxPrevious = _10; # DEBUG BEGIN_STMT _11 = pxUnblockedTCB_33->xStateListItem.pxPrevious; _11->pxNext = _9; # DEBUG BEGIN_STMT _12 = pxList_40->pxIndex; _13 = &pxUnblockedTCB_33->xStateListItem; if (_12 == _13) goto ; [30.00%] else goto ; [70.00%] [local count: 22549]: # DEBUG BEGIN_STMT pxList_40->pxIndex = _11; [local count: 75162]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 ={v} pxList_40->uxNumberOfItems; _15 = _14 + 4294967295; pxList_40->uxNumberOfItems ={v} _15; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _16 = pxUnblockedTCB_33->uxPriority; uxTopReadyPriority.110_17 ={v} uxTopReadyPriority; if (_16 > uxTopReadyPriority.110_17) goto ; [50.00%] else goto ; [50.00%] [local count: 37581]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _16; [local count: 75162]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_46 = pxReadyTasksLists[_16].pxIndex; # DEBUG pxIndex => pxIndex_46 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxUnblockedTCB_33->xStateListItem.pxNext = pxIndex_46; # DEBUG BEGIN_STMT _18 = pxIndex_46->pxPrevious; pxUnblockedTCB_33->xStateListItem.pxPrevious = _18; # DEBUG BEGIN_STMT _19 = pxIndex_46->pxPrevious; _19->pxNext = _13; # DEBUG BEGIN_STMT pxIndex_46->pxPrevious = _13; # DEBUG BEGIN_STMT _20 = &pxReadyTasksLists[_16]; pxUnblockedTCB_33->xStateListItem.pvContainer = _20; # DEBUG BEGIN_STMT _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems; _22 = _21 + 1; pxReadyTasksLists[_16].uxNumberOfItems ={v} _22; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.111_23 ={v} pxCurrentTCB; _24 = pxCurrentTCB.111_23->uxPriority; if (_16 > _24) goto ; [50.00%] else goto ; [50.00%] [local count: 37581]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 75162]: return; } ;; Function vTaskSetTimeOutState (vTaskSetTimeOutState, funcdef_no=41, decl_uid=6244, cgraph_uid=42, symbol_order=63) vTaskSetTimeOutState (struct TimeOut_t * const pxTimeOut) { uint32_t ulNewBASEPRI; long int xNumOfOverflows.112_1; long unsigned int xTickCount.113_2; [local count: 230763]: # DEBUG BEGIN_STMT if (pxTimeOut_3(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_9 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT xNumOfOverflows.112_1 ={v} xNumOfOverflows; pxTimeOut_3(D)->xOverflowCount = xNumOfOverflows.112_1; # DEBUG BEGIN_STMT xTickCount.113_2 ={v} xTickCount; pxTimeOut_3(D)->xTimeOnEntering = xTickCount.113_2; # DEBUG BEGIN_STMT vPortExitCritical (); return; } ;; Function vTaskInternalSetTimeOutState (vTaskInternalSetTimeOutState, funcdef_no=42, decl_uid=6297, cgraph_uid=43, symbol_order=64) vTaskInternalSetTimeOutState (struct TimeOut_t * const pxTimeOut) { long int xNumOfOverflows.114_1; long unsigned int xTickCount.115_2; [local count: 1073741824]: # DEBUG BEGIN_STMT xNumOfOverflows.114_1 ={v} xNumOfOverflows; pxTimeOut_4(D)->xOverflowCount = xNumOfOverflows.114_1; # DEBUG BEGIN_STMT xTickCount.115_2 ={v} xTickCount; pxTimeOut_4(D)->xTimeOnEntering = xTickCount.115_2; return; } ;; Function xTaskCheckForTimeOut (xTaskCheckForTimeOut, funcdef_no=43, decl_uid=6247, cgraph_uid=44, symbol_order=65) xTaskCheckForTimeOut (struct TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const TickType_t xElapsedTime; const TickType_t xConstTickCount; BaseType_t xReturn; long unsigned int _1; struct TCB_t * pxCurrentTCB.116_2; unsigned char _3; struct TCB_t * pxCurrentTCB.117_4; long unsigned int _5; long int _6; long int xNumOfOverflows.118_7; long unsigned int _8; long unsigned int _17; [local count: 329661]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pxTimeOut_11(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 98898]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_24 [local count: 988985746]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 988985746]: goto ; [100.00%] [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pxTicksToWait_12(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_25 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_25 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT xConstTickCount_15 ={v} xTickCount; # DEBUG xConstTickCount => xConstTickCount_15 # DEBUG BEGIN_STMT _1 = pxTimeOut_11(D)->xTimeOnEntering; xElapsedTime_16 = xConstTickCount_15 - _1; # DEBUG xElapsedTime => xElapsedTime_16 # DEBUG BEGIN_STMT pxCurrentTCB.116_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.116_2->ucDelayAborted; if (_3 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 61694]: # DEBUG BEGIN_STMT pxCurrentTCB.117_4 ={v} pxCurrentTCB; pxCurrentTCB.117_4->ucDelayAborted = 0; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 goto ; [100.00%] [local count: 61694]: # DEBUG BEGIN_STMT _5 = *pxTicksToWait_12(D); if (_5 == 4294967295) goto ; [34.00%] else goto ; [66.00%] [local count: 40718]: # DEBUG BEGIN_STMT _6 = pxTimeOut_11(D)->xOverflowCount; xNumOfOverflows.118_7 ={v} xNumOfOverflows; if (_6 != xNumOfOverflows.118_7) goto ; [66.00%] else goto ; [34.00%] [local count: 26874]: if (_1 <= xConstTickCount_15) goto ; [50.00%] else goto ; [50.00%] [local count: 13437]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT *pxTicksToWait_12(D) = 0; goto ; [100.00%] [local count: 27281]: # DEBUG BEGIN_STMT if (_5 > xElapsedTime_16) goto ; [33.00%] else goto ; [67.00%] [local count: 9003]: # DEBUG BEGIN_STMT _17 = _1 - xConstTickCount_15; _8 = _5 + _17; *pxTicksToWait_12(D) = _8; # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (pxTimeOut_11(D)); # DEBUG BEGIN_STMT # DEBUG xReturn => 0 goto ; [100.00%] [local count: 18278]: # DEBUG BEGIN_STMT *pxTicksToWait_12(D) = 0; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 123389]: # xReturn_9 = PHI <1(9), 0(10), 1(13), 0(15), 1(16)> # DEBUG xReturn => xReturn_9 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_9; } ;; Function vTaskMissedYield (vTaskMissedYield, funcdef_no=44, decl_uid=6275, cgraph_uid=45, symbol_order=66) vTaskMissedYield () { [local count: 1073741824]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; return; } ;; Function uxTaskGetTaskNumber (uxTaskGetTaskNumber, funcdef_no=45, decl_uid=6286, cgraph_uid=46, symbol_order=67) uxTaskGetTaskNumber (struct tskTaskControlBlock * xTask) { UBaseType_t uxReturn; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_2(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT # DEBUG pxTCB => xTask_2(D) # DEBUG BEGIN_STMT uxReturn_4 = MEM[(const struct TCB_t *)xTask_2(D)].uxTaskNumber; # DEBUG uxReturn => uxReturn_4 [local count: 1073741824]: # uxReturn_1 = PHI # DEBUG uxReturn => uxReturn_1 # DEBUG BEGIN_STMT return uxReturn_1; } ;; Function vTaskSetTaskNumber (vTaskSetTaskNumber, funcdef_no=46, decl_uid=6289, cgraph_uid=47, symbol_order=68) vTaskSetTaskNumber (struct tskTaskControlBlock * xTask, const UBaseType_t uxHandle) { [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_2(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT # DEBUG pxTCB => xTask_2(D) # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTask_2(D)].uxTaskNumber = uxHandle_4(D); [local count: 1073741824]: return; } ;; Function vTaskGetInfo (vTaskGetInfo, funcdef_no=50, decl_uid=6162, cgraph_uid=51, symbol_order=72) Symbols to be put in SSA form { D.8285 D.8753 } Incremental SSA update started at block: 0 Number of blocks in CFG: 21 Number of blocks to update: 20 ( 95%) Merging blocks 13 and 17 Merging blocks 20 and 16 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ;; ;; Loop 1 ;; header 15, latch 14 ;; depth 1, outer 0 ;; nodes: 15 14 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 5 11 } ;; 5 succs { 6 7 } ;; 6 succs { 12 } ;; 7 succs { 8 12 } ;; 8 succs { 9 10 } ;; 9 succs { 10 } ;; 10 succs { 12 } ;; 11 succs { 12 } ;; 12 succs { 13 17 } ;; 13 succs { 15 } ;; 14 succs { 15 } ;; 15 succs { 14 16 } ;; 16 succs { 18 } ;; 17 succs { 18 } ;; 18 succs { 1 } vTaskGetInfo (struct tskTaskControlBlock * xTask, struct TaskStatus_t * pxTaskStatus, BaseType_t xGetFreeStackSpace, eTaskState eState) { uint32_t ulCount; uint16_t D.8753; const uint8_t * pucStackByte; char * _1; long unsigned int _2; StackType_t * _3; long unsigned int _4; long unsigned int _5; struct TCB_t * pxCurrentTCB.120_6; struct xLIST * _7; _8; StackType_t * _9; short unsigned int _10; struct TCB_t * iftmp.119_11; struct TCB_t * iftmp.119_17; unsigned char _41; short unsigned int _44; [local count: 357913939]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_15(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 107374182]: iftmp.119_17 ={v} pxCurrentTCB; [local count: 357913939]: # iftmp.119_11 = PHI # DEBUG pxTCB => iftmp.119_11 # DEBUG BEGIN_STMT pxTaskStatus_18(D)->xHandle = iftmp.119_11; # DEBUG BEGIN_STMT _1 = &iftmp.119_11->pcTaskName[0]; pxTaskStatus_18(D)->pcTaskName = _1; # DEBUG BEGIN_STMT _2 = iftmp.119_11->uxPriority; pxTaskStatus_18(D)->uxCurrentPriority = _2; # DEBUG BEGIN_STMT _3 = iftmp.119_11->pxStack; pxTaskStatus_18(D)->pxStackBase = _3; # DEBUG BEGIN_STMT _4 = iftmp.119_11->uxTCBNumber; pxTaskStatus_18(D)->xTaskNumber = _4; # DEBUG BEGIN_STMT _5 = iftmp.119_11->uxBasePriority; pxTaskStatus_18(D)->uxBasePriority = _5; # DEBUG BEGIN_STMT pxTaskStatus_18(D)->ulRunTimeCounter = 0; # DEBUG BEGIN_STMT if (eState_26(D) != 5) goto ; [79.76%] else goto ; [20.24%] [local count: 285472158]: # DEBUG BEGIN_STMT pxCurrentTCB.120_6 ={v} pxCurrentTCB; if (pxCurrentTCB.120_6 == iftmp.119_11) goto ; [30.00%] else goto ; [70.00%] [local count: 85641647]: # DEBUG BEGIN_STMT pxTaskStatus_18(D)->eCurrentState = 0; goto ; [100.00%] [local count: 199830511]: # DEBUG BEGIN_STMT pxTaskStatus_18(D)->eCurrentState = eState_26(D); # DEBUG BEGIN_STMT if (eState_26(D) == 3) goto ; [20.24%] else goto ; [79.76%] [local count: 40445695]: # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT _7 = iftmp.119_11->xEventListItem.pvContainer; if (_7 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 28311987]: # DEBUG BEGIN_STMT pxTaskStatus_18(D)->eCurrentState = 2; [local count: 40445695]: # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [100.00%] [local count: 72441781]: # DEBUG BEGIN_STMT _8 = eTaskGetState (iftmp.119_11); pxTaskStatus_18(D)->eCurrentState = _8; [local count: 357913940]: # DEBUG BEGIN_STMT if (xGetFreeStackSpace_34(D) != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 118111600]: # DEBUG BEGIN_STMT _9 = iftmp.119_11->pxStack; # DEBUG pucStackByte => _9 # DEBUG INLINE_ENTRY prvTaskCheckFreeStackSpace # DEBUG BEGIN_STMT # DEBUG ulCount => 0 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT pucStackByte_38 = pucStackByte_37 + 1; # DEBUG pucStackByte => pucStackByte_38 # DEBUG BEGIN_STMT ulCount_40 = ulCount_39 + 1; # DEBUG ulCount => ulCount_40 [local count: 1073741824]: # pucStackByte_37 = PHI <_9(13), pucStackByte_38(14)> # ulCount_39 = PHI <0(13), ulCount_40(14)> # DEBUG ulCount => ulCount_39 # DEBUG pucStackByte => pucStackByte_37 # DEBUG BEGIN_STMT _41 = *pucStackByte_37; if (_41 == 165) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # ulCount_42 = PHI # DEBUG BEGIN_STMT ulCount_43 = ulCount_42 >> 2; # DEBUG ulCount => ulCount_43 # DEBUG BEGIN_STMT _44 = (short unsigned int) ulCount_43; _45 = _44; # DEBUG pucStackByte => NULL # DEBUG ulCount => NULL _10 = _45; pxTaskStatus_18(D)->usStackHighWaterMark = _10; goto ; [100.00%] [local count: 239802340]: # DEBUG BEGIN_STMT pxTaskStatus_18(D)->usStackHighWaterMark = 0; [local count: 357913941]: return; } ;; Function prvListTasksWithinSingleList (prvListTasksWithinSingleList, funcdef_no=51, decl_uid=6954, cgraph_uid=52, symbol_order=73) Symbols to be put in SSA form { D.8286 D.8774 } Incremental SSA update started at block: 0 Number of blocks in CFG: 15 Number of blocks to update: 14 ( 93%) Removing basic block 3 Removing basic block 6 Removing basic block 13 Merging blocks 14 and 5 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 ;; ;; Loop 2 ;; header 6, latch 8 ;; depth 1, outer 0 ;; nodes: 6 8 7 ;; 2 succs { 3 10 } ;; 3 succs { 4 5 } ;; 4 succs { 5 } ;; 5 succs { 6 } ;; 6 succs { 7 8 } ;; 7 succs { 8 } ;; 8 succs { 6 9 } ;; 9 succs { 10 } ;; 10 succs { 1 } prvListTasksWithinSingleList (struct TaskStatus_t * pxTaskStatusArray, struct List_t * pxList, eTaskState eState) { UBaseType_t uxTask; struct TCB_t * pxFirstTCB; struct TCB_t * pxNextTCB; UBaseType_t D.8774; UBaseType_t uxTask; long unsigned int _1; struct ListItem_t * _10; struct xLIST_ITEM * _11; struct MiniListItem_t * _12; struct xLIST_ITEM * _13; struct ListItem_t * _14; struct ListItem_t * _16; struct xLIST_ITEM * _17; struct xLIST_ITEM * _18; struct ListItem_t * _19; long unsigned int _22; struct TaskStatus_t * _23; [local count: 236223200]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxTask => 0 # DEBUG BEGIN_STMT _1 ={v} pxList_7(D)->uxNumberOfItems; if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 118111600]: # DEBUG pxTaskStatusArray => pxTaskStatusArray_8(D) # DEBUG pxList => pxList_7(D) # DEBUG eState => eState_9(D) # DEBUG INLINE_ENTRY prvListTasksWithinSingleList # DEBUG BEGIN_STMT # DEBUG pxConstList => pxList_7(D) # DEBUG BEGIN_STMT _10 = pxList_7(D)->pxIndex; _11 = _10->pxNext; pxList_7(D)->pxIndex = _11; # DEBUG BEGIN_STMT _12 = &pxList_7(D)->xListEnd; if (_11 == _12) goto ; [30.00%] else goto ; [70.00%] [local count: 35433480]: # DEBUG BEGIN_STMT _13 = MEM[(struct ListItem_t *)_11].pxNext; pxList_7(D)->pxIndex = _13; [local count: 118111600]: # DEBUG BEGIN_STMT _14 = pxList_7(D)->pxIndex; pxFirstTCB_15 = _14->pvOwner; # DEBUG pxFirstTCB => pxFirstTCB_15 [local count: 1073741824]: # uxTask_21 = PHI <0(5), uxTask_24(8)> # DEBUG uxTask => uxTask_21 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxConstList => pxList_7(D) # DEBUG BEGIN_STMT _16 = pxList_7(D)->pxIndex; _17 = _16->pxNext; pxList_7(D)->pxIndex = _17; # DEBUG BEGIN_STMT if (_12 == _17) goto ; [30.00%] else goto ; [70.00%] [local count: 322122547]: # DEBUG BEGIN_STMT _18 = MEM[(struct ListItem_t *)_17].pxNext; pxList_7(D)->pxIndex = _18; [local count: 1073741824]: # DEBUG BEGIN_STMT _19 = pxList_7(D)->pxIndex; pxNextTCB_20 = _19->pvOwner; # DEBUG pxNextTCB => pxNextTCB_20 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _22 = uxTask_21 * 36; _23 = pxTaskStatusArray_8(D) + _22; vTaskGetInfo (pxNextTCB_20, _23, 1, eState_9(D)); # DEBUG BEGIN_STMT uxTask_24 = uxTask_21 + 1; # DEBUG uxTask => uxTask_24 # DEBUG BEGIN_STMT if (pxFirstTCB_15 != pxNextTCB_20) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # uxTask_25 = PHI # DEBUG uxTask => uxTask_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _34 = uxTask_25; # DEBUG pxTaskStatusArray => NULL # DEBUG pxList => NULL # DEBUG eState => NULL # DEBUG pxNextTCB => NULL # DEBUG pxFirstTCB => NULL # DEBUG uxTask => NULL # DEBUG pxConstList => NULL # DEBUG pxConstList => NULL uxTask_2 = _34; [local count: 236223201]: # uxTask_5 = PHI <0(2), uxTask_2(9)> # DEBUG uxTask => uxTask_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return uxTask_5; } ;; Function uxTaskGetSystemState (uxTaskGetSystemState, funcdef_no=31, decl_uid=6202, cgraph_uid=32, symbol_order=53) uxTaskGetSystemState (struct TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime) { UBaseType_t uxQueue; UBaseType_t uxTask; long unsigned int uxCurrentNumberOfTasks.72_1; long unsigned int _2; struct TaskStatus_t * _3; struct List_t * _4; long unsigned int _5; struct TaskStatus_t * _6; struct List_t * pxDelayedTaskList.73_7; long unsigned int _8; struct TaskStatus_t * _9; struct List_t * pxOverflowDelayedTaskList.74_10; long unsigned int _11; struct TaskStatus_t * _12; long unsigned int _13; struct TaskStatus_t * _14; long unsigned int _27; long unsigned int _30; long unsigned int _33; long unsigned int _36; long unsigned int _39; [local count: 429496728]: # DEBUG BEGIN_STMT # DEBUG uxTask => 0 # DEBUG uxQueue => 5 # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.72_1 ={v} uxCurrentNumberOfTasks; if (uxCurrentNumberOfTasks.72_1 <= uxArraySize_23(D)) goto ; [50.00%] else goto ; [50.00%] [local count: 214748364]: [local count: 1073741824]: # uxTask_15 = PHI <0(7), uxTask_28(8)> # uxQueue_17 = PHI <5(7), uxQueue_24(8)> # DEBUG uxQueue => uxQueue_17 # DEBUG uxTask => uxTask_15 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxQueue_24 = uxQueue_17 + 4294967295; # DEBUG uxQueue => uxQueue_24 # DEBUG BEGIN_STMT _2 = uxTask_15 * 36; _3 = pxTaskStatusArray_25(D) + _2; _4 = &pxReadyTasksLists[uxQueue_24]; _27 = prvListTasksWithinSingleList (_3, _4, 1); uxTask_28 = uxTask_15 + _27; # DEBUG uxTask => uxTask_28 # DEBUG BEGIN_STMT if (uxQueue_24 != 0) goto ; [80.00%] else goto ; [20.00%] [local count: 858993459]: goto ; [100.00%] [local count: 214748365]: # uxTask_20 = PHI # DEBUG BEGIN_STMT _5 = uxTask_20 * 36; _6 = pxTaskStatusArray_25(D) + _5; pxDelayedTaskList.73_7 ={v} pxDelayedTaskList; _30 = prvListTasksWithinSingleList (_6, pxDelayedTaskList.73_7, 2); uxTask_31 = uxTask_20 + _30; # DEBUG uxTask => uxTask_31 # DEBUG BEGIN_STMT _8 = uxTask_31 * 36; _9 = pxTaskStatusArray_25(D) + _8; pxOverflowDelayedTaskList.74_10 ={v} pxOverflowDelayedTaskList; _33 = prvListTasksWithinSingleList (_9, pxOverflowDelayedTaskList.74_10, 2); uxTask_34 = uxTask_31 + _33; # DEBUG uxTask => uxTask_34 # DEBUG BEGIN_STMT _11 = uxTask_34 * 36; _12 = pxTaskStatusArray_25(D) + _11; _36 = prvListTasksWithinSingleList (_12, &xTasksWaitingTermination, 4); uxTask_37 = uxTask_34 + _36; # DEBUG uxTask => uxTask_37 # DEBUG BEGIN_STMT _13 = uxTask_37 * 36; _14 = pxTaskStatusArray_25(D) + _13; _39 = prvListTasksWithinSingleList (_14, &xSuspendedTaskList, 3); uxTask_40 = uxTask_37 + _39; # DEBUG uxTask => uxTask_40 # DEBUG BEGIN_STMT if (pulTotalRunTime_41(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 150323855]: # DEBUG BEGIN_STMT *pulTotalRunTime_41(D) = 0; [local count: 429496729]: # uxTask_16 = PHI <0(2), uxTask_40(5), uxTask_40(4)> # DEBUG uxTask => uxTask_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT return uxTask_16; } ;; Function uxTaskGetStackHighWaterMark (uxTaskGetStackHighWaterMark, funcdef_no=53, decl_uid=6191, cgraph_uid=54, symbol_order=75) Symbols to be put in SSA form { D.8288 D.8791 } Incremental SSA update started at block: 0 Number of blocks in CFG: 10 Number of blocks to update: 9 ( 90%) Merging blocks 4 and 6 Merging blocks 9 and 5 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 ;; ;; Loop 1 ;; header 6, latch 5 ;; depth 1, outer 0 ;; nodes: 6 5 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 5 succs { 6 } ;; 6 succs { 5 7 } ;; 7 succs { 1 } uxTaskGetStackHighWaterMark (struct tskTaskControlBlock * xTask) { uint32_t ulCount; uint16_t D.8791; const uint8_t * pucStackByte; UBaseType_t uxReturn; uint8_t * pucEndOfStack; short unsigned int _1; struct TCB_t * iftmp.121_2; struct TCB_t * iftmp.121_5; unsigned char _12; short unsigned int _15; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_3(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 35433480]: iftmp.121_5 ={v} pxCurrentTCB; [local count: 118111600]: # iftmp.121_2 = PHI # DEBUG pxTCB => iftmp.121_2 # DEBUG BEGIN_STMT pucEndOfStack_6 = iftmp.121_2->pxStack; # DEBUG pucEndOfStack => pucEndOfStack_6 # DEBUG BEGIN_STMT # DEBUG pucStackByte => pucEndOfStack_6 # DEBUG INLINE_ENTRY prvTaskCheckFreeStackSpace # DEBUG BEGIN_STMT # DEBUG ulCount => 0 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT pucStackByte_9 = pucStackByte_8 + 1; # DEBUG pucStackByte => pucStackByte_9 # DEBUG BEGIN_STMT ulCount_11 = ulCount_10 + 1; # DEBUG ulCount => ulCount_11 [local count: 1073741824]: # pucStackByte_8 = PHI # ulCount_10 = PHI <0(4), ulCount_11(5)> # DEBUG ulCount => ulCount_10 # DEBUG pucStackByte => pucStackByte_8 # DEBUG BEGIN_STMT _12 = *pucStackByte_8; if (_12 == 165) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # ulCount_13 = PHI # DEBUG BEGIN_STMT ulCount_14 = ulCount_13 >> 2; # DEBUG ulCount => ulCount_14 # DEBUG BEGIN_STMT _15 = (short unsigned int) ulCount_14; _16 = _15; # DEBUG pucStackByte => NULL # DEBUG ulCount => NULL _1 = _16; uxReturn_7 = (UBaseType_t) _1; # DEBUG uxReturn => uxReturn_7 # DEBUG BEGIN_STMT return uxReturn_7; } ;; Function xTaskGetCurrentTaskHandle (xTaskGetCurrentTaskHandle, funcdef_no=56, decl_uid=6273, cgraph_uid=57, symbol_order=78) xTaskGetCurrentTaskHandle () { struct tskTaskControlBlock * xReturn; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xReturn_2 ={v} pxCurrentTCB; # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT return xReturn_2; } ;; Function xTaskGetSchedulerState (xTaskGetSchedulerState, funcdef_no=57, decl_uid=6277, cgraph_uid=58, symbol_order=79) xTaskGetSchedulerState () { BaseType_t xReturn; long int xSchedulerRunning.122_1; long unsigned int uxSchedulerSuspended.123_2; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xSchedulerRunning.122_1 ={v} xSchedulerRunning; if (xSchedulerRunning.122_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT uxSchedulerSuspended.123_2 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.123_2 == 0) goto ; [35.00%] else goto ; [65.00%] [local count: 348966093]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 [local count: 1073741824]: # xReturn_3 = PHI <1(2), 2(3), 0(4)> # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT return xReturn_3; } ;; Function xTaskPriorityInherit (xTaskPriorityInherit, funcdef_no=58, decl_uid=6279, cgraph_uid=59, symbol_order=80) xTaskPriorityInherit (struct tskTaskControlBlock * const pxMutexHolder) { struct ListItem_t * const pxIndex; BaseType_t xReturn; long unsigned int _1; struct TCB_t * pxCurrentTCB.124_2; long unsigned int _3; long unsigned int _4; signed int _5; struct TCB_t * pxCurrentTCB.125_6; long unsigned int _7; long unsigned int _8; struct xLIST * _9; struct List_t * _10; struct ListItem_t * _11; struct TCB_t * pxCurrentTCB.126_12; long unsigned int _13; long unsigned int uxTopReadyPriority.127_14; struct xLIST_ITEM * _15; struct xLIST_ITEM * _16; struct List_t * _17; long unsigned int _18; long unsigned int _19; struct TCB_t * pxCurrentTCB.128_20; long unsigned int _21; long unsigned int _22; struct TCB_t * pxCurrentTCB.129_23; long unsigned int _24; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG pxMutexHolderTCB => pxMutexHolder_29(D) # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT if (pxMutexHolder_29(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT _1 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority; pxCurrentTCB.124_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.124_2->uxPriority; if (_1 < _3) goto ; [50.00%] else goto ; [50.00%] [local count: 375809639]: # DEBUG BEGIN_STMT _4 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].xEventListItem.xItemValue; _5 = (signed int) _4; if (_5 >= 0) goto ; [59.00%] else goto ; [41.00%] [local count: 221727687]: # DEBUG BEGIN_STMT pxCurrentTCB.125_6 ={v} pxCurrentTCB; _7 = pxCurrentTCB.125_6->uxPriority; _8 = 5 - _7; MEM[(struct TCB_t *)pxMutexHolder_29(D)].xEventListItem.xItemValue = _8; [local count: 375809639]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _9 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pvContainer; _10 = &pxReadyTasksLists[_1]; if (_9 == _10) goto ; [17.43%] else goto ; [82.57%] [local count: 65503620]: # DEBUG BEGIN_STMT _11 = &MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem; uxListRemove (_11); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.126_12 ={v} pxCurrentTCB; _13 = pxCurrentTCB.126_12->uxPriority; MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority = _13; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTopReadyPriority.127_14 ={v} uxTopReadyPriority; if (_13 > uxTopReadyPriority.127_14) goto ; [50.00%] else goto ; [50.00%] [local count: 32751810]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _13; [local count: 65503620]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_36 = pxReadyTasksLists[_13].pxIndex; # DEBUG pxIndex => pxIndex_36 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pxNext = pxIndex_36; # DEBUG BEGIN_STMT _15 = pxIndex_36->pxPrevious; MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pxPrevious = _15; # DEBUG BEGIN_STMT _16 = pxIndex_36->pxPrevious; _16->pxNext = _11; # DEBUG BEGIN_STMT pxIndex_36->pxPrevious = _11; # DEBUG BEGIN_STMT _17 = &pxReadyTasksLists[_13]; MEM[(struct TCB_t *)pxMutexHolder_29(D)].xStateListItem.pvContainer = _17; # DEBUG BEGIN_STMT _18 ={v} pxReadyTasksLists[_13].uxNumberOfItems; _19 = _18 + 1; pxReadyTasksLists[_13].uxNumberOfItems ={v} _19; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 310306019]: # DEBUG BEGIN_STMT pxCurrentTCB.128_20 ={v} pxCurrentTCB; _21 = pxCurrentTCB.128_20->uxPriority; MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxPriority = _21; goto ; [100.00%] [local count: 375809639]: # DEBUG BEGIN_STMT _22 = MEM[(struct TCB_t *)pxMutexHolder_29(D)].uxBasePriority; pxCurrentTCB.129_23 ={v} pxCurrentTCB; _24 = pxCurrentTCB.129_23->uxPriority; if (_22 < _24) goto ; [50.00%] else goto ; [50.00%] [local count: 187904819]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 1073741824]: # xReturn_25 = PHI <0(2), 0(11), 1(10), 1(12), 1(9)> # DEBUG xReturn => xReturn_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_25; } ;; Function xTaskPriorityDisinherit (xTaskPriorityDisinherit, funcdef_no=59, decl_uid=6281, cgraph_uid=60, symbol_order=81) xTaskPriorityDisinherit (struct tskTaskControlBlock * const pxMutexHolder) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; BaseType_t xReturn; struct TCB_t * pxCurrentTCB.130_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; struct ListItem_t * _6; long unsigned int _7; long unsigned int _8; long unsigned int uxTopReadyPriority.131_9; struct xLIST_ITEM * _10; struct xLIST_ITEM * _11; struct List_t * _12; long unsigned int _13; long unsigned int _14; [local count: 219131]: # DEBUG BEGIN_STMT # DEBUG pxTCB => pxMutexHolder_18(D) # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT if (pxMutexHolder_18(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 153391]: # DEBUG BEGIN_STMT pxCurrentTCB.130_1 ={v} pxCurrentTCB; if (pxCurrentTCB.130_1 != pxMutexHolder_18(D)) goto ; [70.00%] else goto ; [30.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_32 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_32 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 46017]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxMutexesHeld; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 23009]: # 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_33 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_33 [local count: 230087534]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 230087534]: goto ; [100.00%] [local count: 23009]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = _2 + 4294967295; MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxMutexesHeld = _3; # DEBUG BEGIN_STMT _4 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxPriority; _5 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxBasePriority; if (_4 != _5) goto ; [66.00%] else goto ; [34.00%] [local count: 15186]: # DEBUG BEGIN_STMT if (_3 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 5011]: # DEBUG BEGIN_STMT _6 = &MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem; uxListRemove (_6); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _7 = MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxBasePriority; MEM[(struct TCB_t *)pxMutexHolder_18(D)].uxPriority = _7; # DEBUG BEGIN_STMT _8 = 5 - _7; MEM[(struct TCB_t *)pxMutexHolder_18(D)].xEventListItem.xItemValue = _8; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxTopReadyPriority.131_9 ={v} uxTopReadyPriority; if (_7 > uxTopReadyPriority.131_9) goto ; [50.00%] else goto ; [50.00%] [local count: 2506]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _7; [local count: 5011]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_25 = pxReadyTasksLists[_7].pxIndex; # DEBUG pxIndex => pxIndex_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pxNext = pxIndex_25; # DEBUG BEGIN_STMT _10 = pxIndex_25->pxPrevious; MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pxPrevious = _10; # DEBUG BEGIN_STMT _11 = pxIndex_25->pxPrevious; _11->pxNext = _6; # DEBUG BEGIN_STMT pxIndex_25->pxPrevious = _6; # DEBUG BEGIN_STMT _12 = &pxReadyTasksLists[_7]; MEM[(struct TCB_t *)pxMutexHolder_18(D)].xStateListItem.pvContainer = _12; # DEBUG BEGIN_STMT _13 ={v} pxReadyTasksLists[_7].uxNumberOfItems; _14 = _13 + 1; pxReadyTasksLists[_7].uxNumberOfItems ={v} _14; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 88748]: # xReturn_15 = PHI <0(2), 1(13), 0(9), 0(10)> # DEBUG xReturn => xReturn_15 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_15; } ;; Function vTaskPriorityDisinheritAfterTimeout (vTaskPriorityDisinheritAfterTimeout, funcdef_no=60, decl_uid=6284, cgraph_uid=61, symbol_order=82) vTaskPriorityDisinheritAfterTimeout (struct tskTaskControlBlock * const pxMutexHolder, UBaseType_t uxHighestPriorityWaitingTask) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; UBaseType_t uxPriorityToUse; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct TCB_t * pxCurrentTCB.132_4; long unsigned int _5; signed int _6; long unsigned int _7; struct xLIST * _8; struct List_t * _9; struct ListItem_t * _10; long unsigned int _12; long unsigned int uxTopReadyPriority.133_13; struct xLIST_ITEM * _14; struct xLIST_ITEM * _15; struct List_t * _16; long unsigned int _17; long unsigned int _18; [local count: 306783]: # DEBUG BEGIN_STMT # DEBUG pxTCB => pxMutexHolder_22(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxOnlyOneMutexHeld => 1 # DEBUG BEGIN_STMT if (pxMutexHolder_22(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 214748]: # DEBUG BEGIN_STMT _1 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxMutexesHeld; 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_36 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_36 [local count: 1073741823]: # 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 _2 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxBasePriority; uxPriorityToUse_11 = MAX_EXPR <_2, uxHighestPriorityWaitingTask_24(D)>; # DEBUG uxPriorityToUse => uxPriorityToUse_11 # DEBUG BEGIN_STMT _3 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority; if (_3 != uxPriorityToUse_11) goto ; [66.00%] else goto ; [34.00%] [local count: 70867]: # DEBUG BEGIN_STMT if (_1 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 24095]: # DEBUG BEGIN_STMT pxCurrentTCB.132_4 ={v} pxCurrentTCB; if (pxCurrentTCB.132_4 == pxMutexHolder_22(D)) goto ; [30.00%] else goto ; [70.00%] [local count: 7228]: # 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_37 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_37 [local count: 72284299]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 72284299]: goto ; [100.00%] [local count: 16866]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxPriorityUsedOnEntry => _3 # DEBUG BEGIN_STMT MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority = uxPriorityToUse_11; # DEBUG BEGIN_STMT _5 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].xEventListItem.xItemValue; _6 = (signed int) _5; if (_6 >= 0) goto ; [59.00%] else goto ; [41.00%] [local count: 9951]: # DEBUG BEGIN_STMT _7 = 5 - uxPriorityToUse_11; MEM[(struct TCB_t *)pxMutexHolder_22(D)].xEventListItem.xItemValue = _7; [local count: 16866]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _8 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pvContainer; _9 = &pxReadyTasksLists[_3]; if (_8 == _9) goto ; [17.43%] else goto ; [82.57%] [local count: 2940]: # DEBUG BEGIN_STMT _10 = &MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem; uxListRemove (_10); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _12 = MEM[(struct TCB_t *)pxMutexHolder_22(D)].uxPriority; uxTopReadyPriority.133_13 ={v} uxTopReadyPriority; if (_12 > uxTopReadyPriority.133_13) goto ; [50.00%] else goto ; [50.00%] [local count: 1470]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _12; [local count: 2940]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_29 = pxReadyTasksLists[_12].pxIndex; # DEBUG pxIndex => pxIndex_29 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pxNext = pxIndex_29; # DEBUG BEGIN_STMT _14 = pxIndex_29->pxPrevious; MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pxPrevious = _14; # DEBUG BEGIN_STMT _15 = pxIndex_29->pxPrevious; _15->pxNext = _10; # DEBUG BEGIN_STMT pxIndex_29->pxPrevious = _10; # DEBUG BEGIN_STMT _16 = &pxReadyTasksLists[_12]; MEM[(struct TCB_t *)pxMutexHolder_22(D)].xStateListItem.pvContainer = _16; # DEBUG BEGIN_STMT _17 ={v} pxReadyTasksLists[_12].uxNumberOfItems; _18 = _17 + 1; pxReadyTasksLists[_12].uxNumberOfItems ={v} _18; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 192180]: # DEBUG BEGIN_STMT return; } ;; Function vTaskList (vTaskList, funcdef_no=62, decl_uid=6204, cgraph_uid=63, symbol_order=84) Symbols to be put in SSA form { D.8294 D.8821 } Incremental SSA update started at block: 0 Number of blocks in CFG: 16 Number of blocks to update: 15 ( 94%) Merging blocks 7 and 12 Merging blocks 15 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 9 10 11 12 13 ;; ;; Loop 1 ;; header 11, latch 10 ;; depth 1, outer 0 ;; nodes: 11 10 9 7 8 6 5 4 ;; ;; Loop 2 ;; header 9, latch 8 ;; depth 2, outer 1 ;; nodes: 9 8 ;; 2 succs { 3 13 } ;; 3 succs { 11 } ;; 4 succs { 5 6 } ;; 5 succs { 7 } ;; 6 succs { 7 } ;; 7 succs { 9 } ;; 8 succs { 9 } ;; 9 succs { 8 10 } ;; 10 succs { 11 } ;; 11 succs { 4 12 } ;; 12 succs { 13 } ;; 13 succs { 1 } vTaskList (char * pcWriteBuffer) { size_t x; char * D.8821; char cStatus; UBaseType_t x; UBaseType_t uxArraySize; struct TaskStatus_t * pxTaskStatusArray; long unsigned int uxCurrentNumberOfTasks.134_1; long unsigned int _2; long unsigned int _3; struct TaskStatus_t * _4; _5; unsigned int _6; const char * _8; int _9; long unsigned int _11; short unsigned int _12; unsigned int _13; long unsigned int _14; unsigned int _15; char * _37; char * _40; [local count: 27301407]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT *pcWriteBuffer_22(D) = 0; # DEBUG BEGIN_STMT uxArraySize_24 ={v} uxCurrentNumberOfTasks; # DEBUG uxArraySize => uxArraySize_24 # DEBUG BEGIN_STMT uxCurrentNumberOfTasks.134_1 ={v} uxCurrentNumberOfTasks; _2 = uxCurrentNumberOfTasks.134_1 * 36; pxTaskStatusArray_26 = pvPortMalloc (_2); # DEBUG pxTaskStatusArray => pxTaskStatusArray_26 # DEBUG BEGIN_STMT if (pxTaskStatusArray_26 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 14598062]: # DEBUG BEGIN_STMT uxArraySize_28 = uxTaskGetSystemState (pxTaskStatusArray_26, uxArraySize_24, 0B); # DEBUG uxArraySize => uxArraySize_28 # DEBUG BEGIN_STMT # DEBUG x => 0 goto ; [100.00%] [local count: 118111600]: # DEBUG BEGIN_STMT _3 = x_17 * 36; _4 = pxTaskStatusArray_26 + _3; _5 = _4->eCurrentState; _6 = _5; if (_6 <= 4) goto ; [50.00%] else goto ; [50.00%] [local count: 59055800]: : cStatus_10 = 0; goto ; [100.00%] [local count: 59055800]: : cStatus_7 = CSWTCH.225[_6]; [local count: 118111600]: # cStatus_18 = PHI : : # DEBUG cStatus => cStatus_18 # DEBUG BEGIN_STMT _8 = _4->pcTaskName; # DEBUG pcBuffer => pcWriteBuffer_16 # DEBUG pcTaskName => _8 # DEBUG INLINE_ENTRY prvWriteNameToBuffer # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT strcpy (pcWriteBuffer_16, _8); # DEBUG BEGIN_STMT x_35 = strlen (pcWriteBuffer_16); # DEBUG x => x_35 goto ; [100.00%] [local count: 955630225]: # DEBUG BEGIN_STMT _37 = pcWriteBuffer_16 + x_36; *_37 = 32; # DEBUG BEGIN_STMT x_38 = x_36 + 1; # DEBUG x => x_38 [local count: 1073741824]: # x_36 = PHI # DEBUG x => x_36 # DEBUG BEGIN_STMT if (x_36 <= 8) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # x_39 = PHI # DEBUG BEGIN_STMT _40 = pcWriteBuffer_16 + x_39; *_40 = 0; # DEBUG BEGIN_STMT _44 = _40; # DEBUG pcBuffer => NULL # DEBUG pcTaskName => NULL # DEBUG x => NULL pcWriteBuffer_31 = _44; # DEBUG pcWriteBuffer => pcWriteBuffer_31 # DEBUG BEGIN_STMT _9 = (int) cStatus_18; _11 = _4->uxCurrentPriority; _12 = _4->usStackHighWaterMark; _13 = (unsigned int) _12; _14 = _4->xTaskNumber; sprintf (pcWriteBuffer_31, "\t%c\t%u\t%u\t%u\r\n", _9, _11, _13, _14); # DEBUG BEGIN_STMT _15 = strlen (pcWriteBuffer_31); pcWriteBuffer_33 = pcWriteBuffer_31 + _15; # DEBUG pcWriteBuffer => pcWriteBuffer_33 # DEBUG BEGIN_STMT x_34 = x_17 + 1; # DEBUG x => x_34 [local count: 132709663]: # pcWriteBuffer_16 = PHI # x_17 = PHI <0(3), x_34(10)> # DEBUG x => x_17 # DEBUG pcWriteBuffer => pcWriteBuffer_16 # DEBUG BEGIN_STMT if (x_17 < uxArraySize_28) goto ; [89.00%] else goto ; [11.00%] [local count: 14598063]: # DEBUG BEGIN_STMT vPortFree (pxTaskStatusArray_26); [local count: 27301408]: # DEBUG BEGIN_STMT return; } ;; Function uxTaskResetEventItemValue (uxTaskResetEventItemValue, funcdef_no=63, decl_uid=6271, cgraph_uid=64, symbol_order=85) uxTaskResetEventItemValue () { TickType_t uxReturn; struct TCB_t * pxCurrentTCB.135_1; struct TCB_t * pxCurrentTCB.136_2; long unsigned int _3; struct TCB_t * pxCurrentTCB.137_4; long unsigned int _5; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.135_1 ={v} pxCurrentTCB; uxReturn_7 = pxCurrentTCB.135_1->xEventListItem.xItemValue; # DEBUG uxReturn => uxReturn_7 # DEBUG BEGIN_STMT pxCurrentTCB.136_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.136_2->uxPriority; pxCurrentTCB.137_4 ={v} pxCurrentTCB; _5 = 5 - _3; pxCurrentTCB.137_4->xEventListItem.xItemValue = _5; # DEBUG BEGIN_STMT return uxReturn_7; } ;; Function pvTaskIncrementMutexHeldCount (pvTaskIncrementMutexHeldCount, funcdef_no=64, decl_uid=6295, cgraph_uid=65, symbol_order=86) pvTaskIncrementMutexHeldCount () { struct TCB_t * pxCurrentTCB.138_1; struct TCB_t * pxCurrentTCB.139_2; long unsigned int _3; long unsigned int _4; struct tskTaskControlBlock * _8; [local count: 1073741824]: # DEBUG BEGIN_STMT pxCurrentTCB.138_1 ={v} pxCurrentTCB; if (pxCurrentTCB.138_1 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT pxCurrentTCB.139_2 ={v} pxCurrentTCB; _3 = pxCurrentTCB.139_2->uxMutexesHeld; _4 = _3 + 1; pxCurrentTCB.139_2->uxMutexesHeld = _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _8 ={v} pxCurrentTCB; return _8; } ;; Function ulTaskGenericNotifyTake (ulTaskGenericNotifyTake, funcdef_no=65, decl_uid=6235, cgraph_uid=66, symbol_order=87) ulTaskGenericNotifyTake (UBaseType_t uxIndexToWait, BaseType_t xClearCountOnExit, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulReturn; struct TCB_t * pxCurrentTCB.140_1; long unsigned int _2; struct TCB_t * pxCurrentTCB.141_3; struct TCB_t * pxCurrentTCB.142_4; struct TCB_t * pxCurrentTCB.143_5; struct TCB_t * pxCurrentTCB.144_6; long unsigned int _7; struct TCB_t * pxCurrentTCB.145_8; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToWait_11(D) != 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_28 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_28 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT pxCurrentTCB.140_1 ={v} pxCurrentTCB; _2 ={v} pxCurrentTCB.140_1->ulNotifiedValue[0]; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: # DEBUG BEGIN_STMT pxCurrentTCB.141_3 ={v} pxCurrentTCB; pxCurrentTCB.141_3->ucNotifyState[0] ={v} 1; # DEBUG BEGIN_STMT if (xTicksToWait_15(D) != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 8726]: # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToWait_15(D), 1); # DEBUG BEGIN_STMT # 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: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.142_4 ={v} pxCurrentTCB; ulReturn_22 ={v} pxCurrentTCB.142_4->ulNotifiedValue[0]; # DEBUG ulReturn => ulReturn_22 # DEBUG BEGIN_STMT if (ulReturn_22 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: # DEBUG BEGIN_STMT if (xClearCountOnExit_23(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 13221]: # DEBUG BEGIN_STMT pxCurrentTCB.143_5 ={v} pxCurrentTCB; pxCurrentTCB.143_5->ulNotifiedValue[0] ={v} 0; goto ; [100.00%] [local count: 13221]: # DEBUG BEGIN_STMT pxCurrentTCB.144_6 ={v} pxCurrentTCB; _7 = ulReturn_22 + 4294967295; pxCurrentTCB.144_6->ulNotifiedValue[0] ={v} _7; [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.145_8 ={v} pxCurrentTCB; pxCurrentTCB.145_8->ucNotifyState[0] ={v} 0; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return ulReturn_22; } ;; Function xTaskGenericNotifyWait (xTaskGenericNotifyWait, funcdef_no=66, decl_uid=6227, cgraph_uid=67, symbol_order=88) xTaskGenericNotifyWait (UBaseType_t uxIndexToWait, uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t * pulNotificationValue, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct TCB_t * pxCurrentTCB.146_1; unsigned char _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; struct TCB_t * pxCurrentTCB.148_6; struct TCB_t * pxCurrentTCB.149_7; long unsigned int _8; struct TCB_t * pxCurrentTCB.150_9; unsigned char _10; long unsigned int _11; long unsigned int _12; long unsigned int _13; struct TCB_t * pxCurrentTCB.152_14; struct TCB_t * pxCurrentTCB.147_22; struct TCB_t * pxCurrentTCB.151_35; [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToWait_19(D) != 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_40 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_40 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT pxCurrentTCB.146_1 ={v} pxCurrentTCB; _2 ={v} pxCurrentTCB.146_1->ucNotifyState[0]; if (_2 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 34905]: # DEBUG BEGIN_STMT pxCurrentTCB.147_22 ={v} pxCurrentTCB; _3 ={v} pxCurrentTCB.147_22->ulNotifiedValue[0]; _4 = ~ulBitsToClearOnEntry_23(D); _5 = _3 & _4; pxCurrentTCB.147_22->ulNotifiedValue[0] ={v} _5; # DEBUG BEGIN_STMT pxCurrentTCB.148_6 ={v} pxCurrentTCB; pxCurrentTCB.148_6->ucNotifyState[0] ={v} 1; # DEBUG BEGIN_STMT if (xTicksToWait_26(D) != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 11519]: # DEBUG BEGIN_STMT prvAddCurrentTaskToDelayedList (xTicksToWait_26(D), 1); # DEBUG BEGIN_STMT # 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: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pulNotificationValue_33(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 37020]: # DEBUG BEGIN_STMT pxCurrentTCB.149_7 ={v} pxCurrentTCB; _8 ={v} pxCurrentTCB.149_7->ulNotifiedValue[0]; *pulNotificationValue_33(D) = _8; [local count: 52886]: # DEBUG BEGIN_STMT pxCurrentTCB.150_9 ={v} pxCurrentTCB; _10 ={v} pxCurrentTCB.150_9->ucNotifyState[0]; if (_10 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 17981]: # DEBUG BEGIN_STMT pxCurrentTCB.151_35 ={v} pxCurrentTCB; _11 ={v} pxCurrentTCB.151_35->ulNotifiedValue[0]; _12 = ~ulBitsToClearOnExit_36(D); _13 = _11 & _12; pxCurrentTCB.151_35->ulNotifiedValue[0] ={v} _13; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 52886]: # xReturn_15 = PHI <0(10), 1(11)> # DEBUG xReturn => xReturn_15 # DEBUG BEGIN_STMT pxCurrentTCB.152_14 ={v} pxCurrentTCB; pxCurrentTCB.152_14->ucNotifyState[0] ={v} 0; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_15; } ;; Function xTaskGenericNotify (xTaskGenericNotify, funcdef_no=67, decl_uid=6214, cgraph_uid=68, symbol_order=89) xTaskGenericNotify (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct List_t * const pxList; uint8_t ucOriginalNotifyState; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int xTickCount.153_6; struct xLIST_ITEM * _7; struct xLIST_ITEM * _8; struct xLIST_ITEM * _9; struct ListItem_t * _10; struct ListItem_t * _11; long unsigned int _12; long unsigned int _13; long unsigned int _14; long unsigned int uxTopReadyPriority.154_15; struct xLIST_ITEM * _16; struct xLIST_ITEM * _17; struct List_t * _18; long unsigned int _19; long unsigned int _20; struct xLIST * _21; struct TCB_t * pxCurrentTCB.155_22; long unsigned int _23; [local count: 214748]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToNotify_30(D) != 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_61 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_61 [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 (xTaskToNotify_31(D) == 0B) goto ; [46.53%] else goto ; [53.47%] [local count: 49961]: # 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_62 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_62 [local count: 499612071]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 499612071]: goto ; [100.00%] [local count: 57413]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxTCB => xTaskToNotify_31(D) # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT if (pulPreviousNotificationValue_34(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 40189]: # DEBUG BEGIN_STMT _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0]; *pulPreviousNotificationValue_34(D) = _1; [local count: 57413]: # DEBUG BEGIN_STMT ucOriginalNotifyState_36 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ucNotifyState[0]; # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_36 # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_31(D)].ucNotifyState[0] ={v} 2; # DEBUG BEGIN_STMT switch (eAction_38(D)) [16.67%], case 0: [16.67%], case 1: [16.67%], case 2: [16.67%], case 3: [16.67%], case 4: [16.67%]> [local count: 9571]: : # DEBUG BEGIN_STMT _2 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0]; _3 = _2 | ulValue_39(D); MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} _3; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 9571]: : # DEBUG BEGIN_STMT _4 ={v} MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0]; _5 = _4 + 1; MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} _5; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 9571]: : # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} ulValue_39(D); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 9571]: : # DEBUG BEGIN_STMT if (ucOriginalNotifyState_36 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 6317]: # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_31(D)].ulNotifiedValue[0] ={v} ulValue_39(D); goto ; [100.00%] [local count: 9571]: : # DEBUG BEGIN_STMT xTickCount.153_6 ={v} xTickCount; if (xTickCount.153_6 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 4785]: # 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_63 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_63 [local count: 47853715]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 47853715]: goto ; [100.00%] [local count: 52639]: # xReturn_24 = PHI <1(11), 1(12), 1(13), 0(14), 1(10), 1(16), 1(15)> : # DEBUG xReturn => xReturn_24 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (ucOriginalNotifyState_36 == 1) goto ; [51.12%] else goto ; [48.88%] [local count: 26909]: # DEBUG BEGIN_STMT pxList_44 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pvContainer; # DEBUG pxList => pxList_44 # DEBUG BEGIN_STMT _7 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxNext; _8 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious; _7->pxPrevious = _8; # DEBUG BEGIN_STMT _9 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious; _9->pxNext = _7; # DEBUG BEGIN_STMT _10 = pxList_44->pxIndex; _11 = &MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem; if (_10 == _11) goto ; [30.00%] else goto ; [70.00%] [local count: 8073]: # DEBUG BEGIN_STMT pxList_44->pxIndex = _9; [local count: 26909]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _12 ={v} pxList_44->uxNumberOfItems; _13 = _12 + 4294967295; pxList_44->uxNumberOfItems ={v} _13; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].uxPriority; uxTopReadyPriority.154_15 ={v} uxTopReadyPriority; if (_14 > uxTopReadyPriority.154_15) goto ; [50.00%] else goto ; [50.00%] [local count: 13455]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _14; [local count: 26909]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_50 = pxReadyTasksLists[_14].pxIndex; # DEBUG pxIndex => pxIndex_50 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxNext = pxIndex_50; # DEBUG BEGIN_STMT _16 = pxIndex_50->pxPrevious; MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pxPrevious = _16; # DEBUG BEGIN_STMT _17 = pxIndex_50->pxPrevious; _17->pxNext = _11; # DEBUG BEGIN_STMT pxIndex_50->pxPrevious = _11; # DEBUG BEGIN_STMT _18 = &pxReadyTasksLists[_14]; MEM[(struct TCB_t *)xTaskToNotify_31(D)].xStateListItem.pvContainer = _18; # DEBUG BEGIN_STMT _19 ={v} pxReadyTasksLists[_14].uxNumberOfItems; _20 = _19 + 1; pxReadyTasksLists[_14].uxNumberOfItems ={v} _20; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _21 = MEM[(struct TCB_t *)xTaskToNotify_31(D)].xEventListItem.pvContainer; if (_21 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 18836]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_64 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_64 [local count: 188363707]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 188363706]: goto ; [100.00%] [local count: 8073]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxCurrentTCB.155_22 ={v} pxCurrentTCB; _23 = pxCurrentTCB.155_22->uxPriority; if (_14 > _23) goto ; [50.00%] else goto ; [50.00%] [local count: 4036]: # 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: 33803]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_24; } ;; Function xTaskGenericNotifyFromISR (xTaskGenericNotifyFromISR, funcdef_no=68, decl_uid=6221, cgraph_uid=69, symbol_order=90) xTaskGenericNotifyFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t * pulPreviousNotificationValue, BaseType_t * pxHigherPriorityTaskWoken) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; BaseType_t xReturn; uint8_t ucOriginalNotifyState; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int xTickCount.156_6; struct xLIST * _7; long unsigned int uxSchedulerSuspended.157_8; struct xLIST_ITEM * _9; struct xLIST_ITEM * _10; struct xLIST_ITEM * _11; struct ListItem_t * _12; struct ListItem_t * _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; long unsigned int uxTopReadyPriority.158_17; struct xLIST_ITEM * _18; struct xLIST_ITEM * _19; struct List_t * _20; long unsigned int _21; long unsigned int _22; struct xLIST_ITEM * _23; struct xLIST_ITEM * _24; struct ListItem_t * _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; struct TCB_t * pxCurrentTCB.159_29; long unsigned int _30; [local count: 228942]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTaskToNotify_39(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_76 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_76 [local count: 686828460]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 686828460]: goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToNotify_40(D) != 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_77 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_77 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG pxTCB => xTaskToNotify_39(D) # 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_78, "=r" ulNewBASEPRI_79 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_79 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_78 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_78 # DEBUG BEGIN_STMT if (pulPreviousNotificationValue_43(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 37020]: # DEBUG BEGIN_STMT _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0]; *pulPreviousNotificationValue_43(D) = _1; [local count: 52886]: # DEBUG BEGIN_STMT ucOriginalNotifyState_45 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ucNotifyState[0]; # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_45 # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].ucNotifyState[0] ={v} 2; # DEBUG BEGIN_STMT switch (eAction_47(D)) [16.67%], case 0: [16.67%], case 1: [16.67%], case 2: [16.67%], case 3: [16.67%], case 4: [16.67%]> [local count: 8816]: : # DEBUG BEGIN_STMT _2 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0]; _3 = _2 | ulValue_48(D); MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} _3; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 8816]: : # DEBUG BEGIN_STMT _4 ={v} MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0]; _5 = _4 + 1; MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} _5; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 8816]: : # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} ulValue_48(D); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 8816]: : # DEBUG BEGIN_STMT if (ucOriginalNotifyState_45 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 5819]: # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].ulNotifiedValue[0] ={v} ulValue_48(D); goto ; [100.00%] [local count: 8816]: : # DEBUG BEGIN_STMT xTickCount.156_6 ={v} xTickCount; if (xTickCount.156_6 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 4408]: # 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_80 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_80 [local count: 44080307]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 44080307]: goto ; [100.00%] [local count: 48488]: # xReturn_31 = PHI <1(11), 1(12), 1(13), 0(14), 1(10), 1(16), 1(15)> : # DEBUG xReturn => xReturn_31 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (ucOriginalNotifyState_45 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 16486]: # DEBUG BEGIN_STMT _7 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pvContainer; if (_7 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 11540]: # 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_81 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_81 [local count: 115402244]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 115402244]: goto ; [100.00%] [local count: 4946]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.157_8 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.157_8 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 2473]: # DEBUG BEGIN_STMT pxList_60 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pvContainer; # DEBUG pxList => pxList_60 # DEBUG BEGIN_STMT _9 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxNext; _10 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious; _9->pxPrevious = _10; # DEBUG BEGIN_STMT _11 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious; _11->pxNext = _9; # DEBUG BEGIN_STMT _12 = pxList_60->pxIndex; _13 = &MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem; if (_12 == _13) goto ; [30.00%] else goto ; [70.00%] [local count: 742]: # DEBUG BEGIN_STMT pxList_60->pxIndex = _11; [local count: 2473]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _14 ={v} pxList_60->uxNumberOfItems; _15 = _14 + 4294967295; pxList_60->uxNumberOfItems ={v} _15; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _16 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].uxPriority; uxTopReadyPriority.158_17 ={v} uxTopReadyPriority; if (_16 > uxTopReadyPriority.158_17) goto ; [50.00%] else goto ; [50.00%] [local count: 1236]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _16; [local count: 2473]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_66 = pxReadyTasksLists[_16].pxIndex; # DEBUG pxIndex => pxIndex_66 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxNext = pxIndex_66; # DEBUG BEGIN_STMT _18 = pxIndex_66->pxPrevious; MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pxPrevious = _18; # DEBUG BEGIN_STMT _19 = pxIndex_66->pxPrevious; _19->pxNext = _13; # DEBUG BEGIN_STMT pxIndex_66->pxPrevious = _13; # DEBUG BEGIN_STMT _20 = &pxReadyTasksLists[_16]; MEM[(struct TCB_t *)xTaskToNotify_39(D)].xStateListItem.pvContainer = _20; # DEBUG BEGIN_STMT _21 ={v} pxReadyTasksLists[_16].uxNumberOfItems; _22 = _21 + 1; pxReadyTasksLists[_16].uxNumberOfItems ={v} _22; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 2473]: # DEBUG BEGIN_STMT pxIndex_53 = xPendingReadyList.pxIndex; # DEBUG pxIndex => pxIndex_53 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pxNext = pxIndex_53; # DEBUG BEGIN_STMT _23 = pxIndex_53->pxPrevious; MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pxPrevious = _23; # DEBUG BEGIN_STMT _24 = pxIndex_53->pxPrevious; _25 = &MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem; _24->pxNext = _25; # DEBUG BEGIN_STMT pxIndex_53->pxPrevious = _25; # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_39(D)].xEventListItem.pvContainer = &xPendingReadyList; # DEBUG BEGIN_STMT _26 ={v} xPendingReadyList.uxNumberOfItems; _27 = _26 + 1; xPendingReadyList.uxNumberOfItems ={v} _27; [local count: 4946]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _28 = MEM[(struct TCB_t *)xTaskToNotify_39(D)].uxPriority; pxCurrentTCB.159_29 ={v} pxCurrentTCB; _30 = pxCurrentTCB.159_29->uxPriority; if (_28 > _30) goto ; [50.00%] else goto ; [50.00%] [local count: 2473]: # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_73(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 1731]: # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_73(D) = 1; [local count: 2473]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 36948]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_78 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_78 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xReturn_31; } ;; Function vTaskGenericNotifyGiveFromISR (vTaskGenericNotifyGiveFromISR, funcdef_no=69, decl_uid=6231, cgraph_uid=70, symbol_order=91) vTaskGenericNotifyGiveFromISR (struct tskTaskControlBlock * xTaskToNotify, UBaseType_t uxIndexToNotify, BaseType_t * pxHigherPriorityTaskWoken) { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct ListItem_t * const pxIndex; struct ListItem_t * const pxIndex; struct List_t * const pxList; uint8_t ucOriginalNotifyState; long unsigned int _1; long unsigned int _2; struct xLIST * _3; long unsigned int uxSchedulerSuspended.160_4; struct xLIST_ITEM * _5; struct xLIST_ITEM * _6; struct xLIST_ITEM * _7; struct ListItem_t * _8; struct ListItem_t * _9; long unsigned int _10; long unsigned int _11; long unsigned int _12; long unsigned int uxTopReadyPriority.161_13; struct xLIST_ITEM * _14; struct xLIST_ITEM * _15; struct List_t * _16; long unsigned int _17; long unsigned int _18; struct xLIST_ITEM * _19; struct xLIST_ITEM * _20; struct ListItem_t * _21; long unsigned int _22; long unsigned int _23; long unsigned int _24; struct TCB_t * pxCurrentTCB.162_25; long unsigned int _26; [local count: 228942]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTaskToNotify_32(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_62 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_62 [local count: 686828460]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 686828460]: goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToNotify_33(D) != 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_63 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_63 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG pxTCB => xTaskToNotify_32(D) # 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_64, "=r" ulNewBASEPRI_65 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_65 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_64 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_64 # DEBUG BEGIN_STMT ucOriginalNotifyState_36 ={v} MEM[(struct TCB_t *)xTaskToNotify_32(D)].ucNotifyState[0]; # DEBUG ucOriginalNotifyState => ucOriginalNotifyState_36 # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_32(D)].ucNotifyState[0] ={v} 2; # DEBUG BEGIN_STMT _1 ={v} MEM[(struct TCB_t *)xTaskToNotify_32(D)].ulNotifiedValue[0]; _2 = _1 + 1; MEM[(struct TCB_t *)xTaskToNotify_32(D)].ulNotifiedValue[0] ={v} _2; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (ucOriginalNotifyState_36 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 17981]: # DEBUG BEGIN_STMT _3 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pvContainer; if (_3 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 12587]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_66 [local count: 125868183]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 125868183]: goto ; [100.00%] [local count: 5394]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxSchedulerSuspended.160_4 ={v} uxSchedulerSuspended; if (uxSchedulerSuspended.160_4 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 2697]: # DEBUG BEGIN_STMT pxList_46 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pvContainer; # DEBUG pxList => pxList_46 # DEBUG BEGIN_STMT _5 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxNext; _6 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious; _5->pxPrevious = _6; # DEBUG BEGIN_STMT _7 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious; _7->pxNext = _5; # DEBUG BEGIN_STMT _8 = pxList_46->pxIndex; _9 = &MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem; if (_8 == _9) goto ; [30.00%] else goto ; [70.00%] [local count: 809]: # DEBUG BEGIN_STMT pxList_46->pxIndex = _7; [local count: 2697]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _10 ={v} pxList_46->uxNumberOfItems; _11 = _10 + 4294967295; pxList_46->uxNumberOfItems ={v} _11; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _12 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].uxPriority; uxTopReadyPriority.161_13 ={v} uxTopReadyPriority; if (_12 > uxTopReadyPriority.161_13) goto ; [50.00%] else goto ; [50.00%] [local count: 1349]: # DEBUG BEGIN_STMT uxTopReadyPriority ={v} _12; [local count: 2697]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pxIndex_52 = pxReadyTasksLists[_12].pxIndex; # DEBUG pxIndex => pxIndex_52 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxNext = pxIndex_52; # DEBUG BEGIN_STMT _14 = pxIndex_52->pxPrevious; MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pxPrevious = _14; # DEBUG BEGIN_STMT _15 = pxIndex_52->pxPrevious; _15->pxNext = _9; # DEBUG BEGIN_STMT pxIndex_52->pxPrevious = _9; # DEBUG BEGIN_STMT _16 = &pxReadyTasksLists[_12]; MEM[(struct TCB_t *)xTaskToNotify_32(D)].xStateListItem.pvContainer = _16; # DEBUG BEGIN_STMT _17 ={v} pxReadyTasksLists[_12].uxNumberOfItems; _18 = _17 + 1; pxReadyTasksLists[_12].uxNumberOfItems ={v} _18; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 2697]: # DEBUG BEGIN_STMT pxIndex_39 = xPendingReadyList.pxIndex; # DEBUG pxIndex => pxIndex_39 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pxNext = pxIndex_39; # DEBUG BEGIN_STMT _19 = pxIndex_39->pxPrevious; MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pxPrevious = _19; # DEBUG BEGIN_STMT _20 = pxIndex_39->pxPrevious; _21 = &MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem; _20->pxNext = _21; # DEBUG BEGIN_STMT pxIndex_39->pxPrevious = _21; # DEBUG BEGIN_STMT MEM[(struct TCB_t *)xTaskToNotify_32(D)].xEventListItem.pvContainer = &xPendingReadyList; # DEBUG BEGIN_STMT _22 ={v} xPendingReadyList.uxNumberOfItems; _23 = _22 + 1; xPendingReadyList.uxNumberOfItems ={v} _23; [local count: 5394]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _24 = MEM[(struct TCB_t *)xTaskToNotify_32(D)].uxPriority; pxCurrentTCB.162_25 ={v} pxCurrentTCB; _26 = pxCurrentTCB.162_25->uxPriority; if (_24 > _26) goto ; [50.00%] else goto ; [50.00%] [local count: 2697]: # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_59(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 1888]: # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_59(D) = 1; [local count: 2697]: # DEBUG BEGIN_STMT xYieldPending ={v} 1; [local count: 40299]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_64 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_64 : "memory"); # DEBUG ulNewMaskValue => NULL return; } ;; Function xTaskGenericNotifyStateClear (xTaskGenericNotifyStateClear, funcdef_no=70, decl_uid=6238, cgraph_uid=71, symbol_order=92) xTaskGenericNotifyStateClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear) { uint32_t ulNewBASEPRI; BaseType_t xReturn; unsigned char _1; struct TCB_t * iftmp.163_3; struct TCB_t * iftmp.163_8; [local count: 214748]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxIndexToClear_5(D) != 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_12 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_12 [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 (xTask_6(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 32212]: iftmp.163_8 ={v} pxCurrentTCB; [local count: 107374]: # iftmp.163_3 = PHI # DEBUG pxTCB => iftmp.163_3 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} iftmp.163_3->ucNotifyState[0]; if (_1 == 2) goto ; [34.00%] else goto ; [66.00%] [local count: 36507]: # DEBUG BEGIN_STMT iftmp.163_3->ucNotifyState[0] ={v} 0; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 107374]: # xReturn_2 = PHI <1(8), 0(7)> # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_2; } ;; Function ulTaskGenericNotifyValueClear (ulTaskGenericNotifyValueClear, funcdef_no=71, decl_uid=6242, cgraph_uid=72, symbol_order=93) ulTaskGenericNotifyValueClear (struct tskTaskControlBlock * xTask, UBaseType_t uxIndexToClear, uint32_t ulBitsToClear) { uint32_t ulReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct TCB_t * iftmp.164_4; struct TCB_t * iftmp.164_7; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xTask_5(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 322122547]: iftmp.164_7 ={v} pxCurrentTCB; [local count: 1073741824]: # iftmp.164_4 = PHI # DEBUG pxTCB => iftmp.164_4 # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT ulReturn_10 ={v} iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)]; # DEBUG ulReturn => ulReturn_10 # DEBUG BEGIN_STMT _1 ={v} iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)]; _2 = ~ulBitsToClear_11(D); _3 = _1 & _2; iftmp.164_4->ulNotifiedValue[uxIndexToClear_9(D)] ={v} _3; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return ulReturn_10; }