Analyzing function: vQueueUnregisterQueue.part.0/114 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 5 2 3 4 ;; ;; Loop 1 ;; header 3, latch 4 ;; depth 1, outer 0 ;; nodes: 3 4 ;; 5 succs { 2 } ;; 2 succs { 3 } ;; 3 succs { 4 } ;; 4 succs { 3 } Analyzing function body size: vQueueUnregisterQueue.part.0 IPA function summary for vQueueUnregisterQueue.part.0/114 inlinable global time: 5.000000 self size: 7 global size: 0 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: Analyzing function: xQueueGenericReset.part.0/65 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 8 2 3 4 5 6 7 ;; 8 succs { 2 } ;; 2 succs { 3 6 } ;; 3 succs { 4 7 } ;; 4 succs { 5 7 } ;; 5 succs { 7 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: xQueueGenericReset.part.0 IPA function summary for xQueueGenericReset.part.0/65 inlinable global time: 50.697050 self size: 36 global size: 0 min size: 0 self stack: 0 global stack: 0 size:9.500000, time:9.500000 size:7.500000, time:6.500000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:0.500000, time:0.335000, executed if:(op1 == 0) && (not inlined) size:7.500000, time:2.448850, executed if:(op1 == 0) calls: vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.22 size: 3 time: 12 predicate: (op1 == 0) vListInitialise/44 function body not available loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0) vListInitialise/44 function body not available loop depth: 0 freq:0.33 size: 2 time: 11 predicate: (op1 != 0) vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: vQueueWaitForMessageRestricted/41 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 5 6 } ;; 5 succs { 6 } ;; 6 succs { 7 8 } ;; 7 succs { 8 } ;; 8 succs { 1 } Analyzing function body size: vQueueWaitForMessageRestricted IPA function summary for vQueueWaitForMessageRestricted/41 inlinable global time: 46.970000 self size: 22 global size: 0 min size: 0 self stack: 0 global stack: 0 size:8.500000, time:7.840000 size:5.500000, time:3.840000, executed if:(not inlined) calls: prvUnlockQueue/33 function not considered for inlining loop depth: 0 freq:1.00 size: 2 time: 11 vTaskPlaceOnEventListRestricted/62 function body not available loop depth: 0 freq:0.33 size: 4 time: 13 vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: vQueueUnregisterQueue/40 Created preheader block for loop 1 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 9 3 4 5 6 7 8 ;; ;; Loop 1 ;; header 7, latch 6 ;; depth 1, outer 0 ;; nodes: 7 6 4 ;; 2 succs { 3 9 } ;; 9 succs { 7 } ;; 3 succs { } ;; 4 succs { 5 6 } ;; 5 succs { 8 } ;; 6 succs { 7 } ;; 7 succs { 4 8 } ;; 8 succs { 1 } Analyzing function body size: vQueueUnregisterQueue IPA function summary for vQueueUnregisterQueue/40 inlinable global time: 15.299224 self size: 14 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:8.000000, time:8.899221, executed if:(op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) calls: vQueueUnregisterQueue.part.0/114 function not considered for inlining loop depth: 0 freq:0.30 size: 1 time: 10callee size: 3 stack: 0 predicate: (op0 == 0B) Analyzing function: pcQueueGetName/39 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 10 3 4 11 5 6 7 8 9 ;; ;; Loop 2 ;; header 4, latch 11 ;; depth 1, outer 0 ;; nodes: 4 11 ;; ;; Loop 1 ;; header 8, latch 7 ;; depth 1, outer 0 ;; nodes: 8 7 5 ;; 2 succs { 3 10 } ;; 10 succs { 8 } ;; 3 succs { 4 } ;; 4 succs { 11 } ;; 11 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 9 } ;; 7 succs { 8 } ;; 8 succs { 5 9 } ;; 9 succs { 1 } Analyzing function body size: pcQueueGetName IPA function summary for pcQueueGetName/39 inlinable global time: 13.729842 self size: 17 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:7.000000, time:8.829841, executed if:(op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: vQueueAddToRegistry/38 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 17 5 16 6 7 8 9 10 11 12 13 14 15 ;; ;; Loop 2 ;; header 4, latch 17 ;; depth 1, outer 0 ;; nodes: 4 17 ;; ;; Loop 1 ;; header 12, latch 11 ;; depth 1, outer 0 ;; nodes: 12 11 8 9 10 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 17 } ;; 17 succs { 4 } ;; 5 succs { 16 15 } ;; 16 succs { 12 } ;; 6 succs { 7 8 } ;; 7 succs { 13 } ;; 8 succs { 9 11 } ;; 9 succs { 10 11 } ;; 10 succs { 11 } ;; 11 succs { 12 } ;; 12 succs { 6 13 } ;; 13 succs { 14 15 } ;; 14 succs { 15 } ;; 15 succs { 1 } Analyzing function body size: vQueueAddToRegistry IPA function summary for vQueueAddToRegistry/38 inlinable global time: 16.518196 self size: 27 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:15.000000, time:10.218196, executed if:(op1 != 0B) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: xQueueIsQueueFullFromISR/37 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 7 6 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: xQueueIsQueueFullFromISR IPA function summary for xQueueIsQueueFullFromISR/37 inlinable global time: 7.700000 self size: 14 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed || op0[ref offset: 480] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: prvIsQueueFull/36 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; 2 succs { 4 3 } ;; 3 succs { 4 } ;; 4 succs { 1 } Analyzing function body size: prvIsQueueFull IPA function summary for prvIsQueueFull/36 inlinable global time: 26.000000 self size: 9 global size: 0 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: vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: xQueueIsQueueEmptyFromISR/35 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 7 6 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: xQueueIsQueueEmptyFromISR IPA function summary for xQueueIsQueueEmptyFromISR/35 inlinable global time: 7.000000 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: prvIsQueueEmpty/34 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; 2 succs { 4 3 } ;; 3 succs { 4 } ;; 4 succs { 1 } Analyzing function body size: prvIsQueueEmpty IPA function summary for prvIsQueueEmpty/34 inlinable global time: 25.000000 self size: 8 global size: 0 min size: 0 self stack: 0 global stack: 0 size:2.500000, time:2.500000 size:3.500000, time:2.500000, executed if:(not inlined) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: prvUnlockQueue/33 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ;; ;; Loop 2 ;; header 13, latch 12 ;; depth 1, outer 0 ;; nodes: 13 12 10 11 9 ;; ;; Loop 1 ;; header 7, latch 6 ;; depth 1, outer 0 ;; nodes: 7 6 4 5 3 ;; 2 succs { 7 } ;; 3 succs { 4 8 } ;; 4 succs { 5 6 } ;; 5 succs { 6 } ;; 6 succs { 7 } ;; 7 succs { 3 8 } ;; 8 succs { 13 } ;; 9 succs { 10 14 } ;; 10 succs { 11 12 } ;; 11 succs { 12 } ;; 12 succs { 13 } ;; 13 succs { 9 14 } ;; 14 succs { 1 } Analyzing function body size: prvUnlockQueue IPA function summary for prvUnlockQueue/33 inlinable global time: 441.930952 self size: 35 global size: 0 min size: 0 self stack: 0 global stack: 0 size:17.000000, time:133.648980 size:6.000000, time:12.833839, executed if:(not inlined) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vTaskMissedYield/56 function body not available loop depth: 1 freq:2.75 size: 1 time: 10 xTaskRemoveFromEventList/43 function body not available loop depth: 1 freq:8.35 size: 3 time: 12 vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vPortExitCritical/45 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 vTaskMissedYield/56 function body not available loop depth: 1 freq:2.75 size: 1 time: 10 xTaskRemoveFromEventList/43 function body not available loop depth: 1 freq:8.35 size: 3 time: 12 vPortEnterCritical/42 function body not available loop depth: 0 freq:1.00 size: 1 time: 10 Analyzing function: prvCopyDataFromQueue/32 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 ;; 2 succs { 3 6 } ;; 3 succs { 4 5 } ;; 4 succs { 5 } ;; 5 succs { 6 } ;; 6 succs { 1 } Analyzing function body size: prvCopyDataFromQueue IPA function summary for prvCopyDataFromQueue/32 inlinable global time: 15.500000 self size: 19 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed) size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) && (not inlined) size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) size:1.000000, time:0.500000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed) && (op0[ref offset: 512] != 0) size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0) && (not inlined) size:1.500000, time:0.625000, executed if:(op0[ref offset: 512] != 0) size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) && (not inlined) size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 512] changed || op0[ref offset: 96] changed || op0[ref offset: 64] changed) && (op0[ref offset: 512] != 0) size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) && (not inlined) size:0.500000, time:0.125000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] != 0) calls: memcpy/55 function body not available loop depth: 0 freq:0.50 size: 4 time: 13 predicate: (op0[ref offset: 512] != 0) Analyzing function: prvCopyDataToQueue/31 ;; 1 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 ;; 2 succs { 3 5 } ;; 3 succs { 4 13 } ;; 4 succs { 13 } ;; 5 succs { 6 8 } ;; 6 succs { 7 13 } ;; 7 succs { 13 } ;; 8 succs { 9 10 } ;; 9 succs { 10 } ;; 10 succs { 11 13 } ;; 11 succs { 12 13 } ;; 12 succs { 13 } ;; 13 succs { 1 } Analyzing function body size: prvCopyDataToQueue IPA function summary for prvCopyDataToQueue/31 inlinable global time: 23.807600 self size: 54 global size: 0 min size: 0 self stack: 0 global stack: 0 size:1.500000, time:1.500000 size:3.500000, time:2.500000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 448] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 448] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 512] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 512] changed) size:2.000000, time:1.000000, executed if:(op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op0[ref offset: 512] != 0) size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined) size:0.500000, time:0.125000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 96] changed) && (op2 != 0) && (op0[ref offset: 512] != 0) size:3.000000, time:0.625000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) && (not inlined) size:8.000000, time:1.750000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0) size:2.000000, time:0.500000, executed if:(op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op2 changed) && (op2 != 0) && (op0[ref offset: 512] != 0) size:2.000000, time:0.170000, executed if:(op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0) size:1.000000, time:0.042500, executed if:(op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 448] changed) && (op0[ref offset: 448] != 0) && (op2 == 2) && (op2 != 0) && (op0[ref offset: 512] != 0) size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined) size:0.500000, time:0.125000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0), nonconst if:(op0[ref offset: 32] changed) && (op2 == 0) && (op0[ref offset: 512] != 0) size:3.000000, time:0.625000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) && (not inlined) size:6.000000, time:1.375000, executed if:(op2 == 0) && (op0[ref offset: 512] != 0) size:0.500000, time:0.250000, executed if:(op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (not inlined) size:2.500000, time:1.250000, executed if:(op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined) size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (not inlined) size:0.500000, time:0.043575, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) calls: memcpy/55 function body not available loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 != 0) && (op0[ref offset: 512] != 0) memcpy/55 function body not available loop depth: 0 freq:0.25 size: 4 time: 13 predicate: (op2 == 0) && (op0[ref offset: 512] != 0) xTaskPriorityDisinherit/54 function body not available loop depth: 0 freq:0.09 size: 3 time: 12 predicate: (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) Analyzing function: prvGetDisinheritPriorityAfterTimeout/30 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 1 } Analyzing function body size: prvGetDisinheritPriorityAfterTimeout IPA function summary for prvGetDisinheritPriorityAfterTimeout/30 inlinable global time: 6.500000 self size: 9 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 288] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 288] changed) size:0.500000, time:0.250000, executed if:(op0[ref offset: 288] != 0) && (not inlined), nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0) && (not inlined) size:0.500000, time:0.250000, executed if:(op0[ref offset: 288] != 0), nonconst if:(op0[ref offset: 384] changed) && (op0[ref offset: 288] != 0) size:2.000000, time:1.000000, executed if:(op0[ref offset: 288] != 0) calls: Analyzing function: ucQueueGetQueueType/29 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: ucQueueGetQueueType IPA function summary for ucQueueGetQueueType/29 inlinable global time: 3.000000 self size: 4 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 608] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 608] changed) calls: Analyzing function: vQueueSetQueueNumber/28 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: vQueueSetQueueNumber IPA function summary for vQueueSetQueueNumber/28 inlinable global time: 3.000000 self size: 4 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.500000, time:0.500000 size:3.500000, time:2.500000, executed if:(not inlined) calls: Analyzing function: uxQueueGetQueueNumber/27 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: uxQueueGetQueueNumber IPA function summary for uxQueueGetQueueNumber/27 inlinable global time: 3.000000 self size: 4 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 576] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 576] changed) calls: Analyzing function: vQueueDelete/26 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: vQueueDelete IPA function summary for vQueueDelete/26 inlinable global time: 17.159302 self size: 14 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.000000, time:1.069400, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortFree/61 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B) vQueueUnregisterQueue/40 function not considered for inlining loop depth: 0 freq:0.53 size: 2 time: 11callee size: 7 stack: 0 predicate: (op0 != 0B) Analyzing function: uxQueueMessagesWaitingFromISR/25 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: uxQueueMessagesWaitingFromISR IPA function summary for uxQueueMessagesWaitingFromISR/25 inlinable global time: 5.600001 self size: 11 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.350000, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 448] changed) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: uxQueueSpacesAvailable/24 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: uxQueueSpacesAvailable IPA function summary for uxQueueSpacesAvailable/24 inlinable global time: 17.694002 self size: 15 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.604100, executed if:(op0 != 0B) && (not inlined) size:2.000000, time:1.069400, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: uxQueueMessagesWaiting/23 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 6 5 ;; ;; Loop 1 ;; header 4, latch 6 ;; depth 1, outer 0 ;; nodes: 4 6 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 6 } ;; 6 succs { 4 } ;; 5 succs { 1 } Analyzing function body size: uxQueueMessagesWaiting IPA function summary for uxQueueMessagesWaiting/23 inlinable global time: 16.624602 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:1.336750, executed if:(op0 != 0B) && (not inlined) size:0.500000, time:0.267350, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: xQueuePeekFromISR/22 ;; 4 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 15 5 6 7 8 17 9 10 11 16 12 13 14 ;; ;; Loop 3 ;; header 4, latch 15 ;; depth 1, outer 0 ;; nodes: 4 15 ;; ;; Loop 1 ;; header 11, latch 16 ;; depth 1, outer 0 ;; nodes: 11 16 ;; ;; Loop 2 ;; header 8, latch 17 ;; depth 1, outer 0 ;; nodes: 8 17 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 15 } ;; 15 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 17 } ;; 17 succs { 8 } ;; 9 succs { 10 12 } ;; 10 succs { 11 } ;; 11 succs { 16 } ;; 16 succs { 11 } ;; 12 succs { 13 14 } ;; 13 succs { 14 } ;; 14 succs { 1 } Analyzing function body size: xQueuePeekFromISR IPA function summary for xQueuePeekFromISR/22 inlinable global time: 15.060094 self size: 44 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.400001, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.524998, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.524998, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:0.500000, time:0.297501, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.500000, time:1.487503, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:10.500000, time:1.930130, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:2.500000, time:0.555672, executed if:(op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.993250, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.499996, executed if:(op0 == 0B) calls: prvCopyDataFromQueue/32 function not considered for inlining loop depth: 0 freq:0.06 size: 3 time: 12callee size: 9 stack: 0 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortValidateInterruptPriority/57 function body not available loop depth: 0 freq:0.20 size: 1 time: 10 predicate: (op0[ref offset: 512] != 0) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueReceiveFromISR/21 ;; 4 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 21 5 6 7 8 23 9 10 11 12 13 14 15 16 17 22 18 20 ;; ;; Loop 3 ;; header 4, latch 21 ;; depth 1, outer 0 ;; nodes: 4 21 ;; ;; Loop 1 ;; header 17, latch 22 ;; depth 1, outer 0 ;; nodes: 17 22 ;; ;; Loop 2 ;; header 8, latch 23 ;; depth 1, outer 0 ;; nodes: 8 23 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 21 } ;; 21 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 23 } ;; 23 succs { 8 } ;; 9 succs { 10 20 } ;; 10 succs { 11 15 } ;; 11 succs { 12 20 } ;; 12 succs { 13 20 } ;; 13 succs { 14 20 } ;; 14 succs { 20 } ;; 15 succs { 16 18 } ;; 16 succs { 17 } ;; 17 succs { 22 } ;; 22 succs { 17 } ;; 18 succs { 20 } ;; 20 succs { 1 } Analyzing function body size: xQueueReceiveFromISR IPA function summary for xQueueReceiveFromISR/21 inlinable global time: 22.476026 self size: 59 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:26.500000, time:6.511267, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:3.500000, time:1.509311, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.019888, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.003480, executed if:(op2 != 0B) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvCopyDataFromQueue/32 function not considered for inlining loop depth: 0 freq:0.18 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortValidateInterruptPriority/57 function body not available loop depth: 0 freq:0.54 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueuePeek/20 ;; 5 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 35 5 6 7 8 37 9 10 11 12 13 36 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ;; ;; Loop 4 ;; header 4, latch 35 ;; depth 1, outer 0 ;; nodes: 4 35 ;; ;; Loop 1 ;; header 15, latch 14 ;; depth 1, outer 0 ;; nodes: 15 14 33 32 31 30 29 28 26 27 24 25 22 23 20 ;; ;; Loop 2 ;; header 13, latch 36 ;; depth 1, outer 0 ;; nodes: 13 36 ;; ;; Loop 3 ;; header 8, latch 37 ;; depth 1, outer 0 ;; nodes: 8 37 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 35 } ;; 35 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 37 } ;; 37 succs { 8 } ;; 9 succs { 10 11 } ;; 10 succs { 15 } ;; 11 succs { 10 12 } ;; 12 succs { 13 } ;; 13 succs { 36 } ;; 36 succs { 13 } ;; 14 succs { 15 } ;; 15 succs { 16 20 } ;; 16 succs { 17 19 } ;; 17 succs { 18 19 } ;; 18 succs { 19 } ;; 19 succs { 34 } ;; 20 succs { 21 22 } ;; 21 succs { 34 } ;; 22 succs { 23 24 } ;; 23 succs { 24 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 27 28 } ;; 27 succs { 28 } ;; 28 succs { 29 33 } ;; 29 succs { 30 32 } ;; 30 succs { 31 14 } ;; 31 succs { 14 } ;; 32 succs { 14 } ;; 33 succs { 34 14 } ;; 34 succs { 1 } Analyzing function body size: xQueuePeek IPA function summary for xQueuePeek/20 inlinable global time: 543.926402 self size: 108 global size: 0 min size: 0 self stack: 8 global stack: 8 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:44.000000, time:80.224698, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:8.961298, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 95.040000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 95.040000% of time vTaskPlaceOnEventList/52 function body not available loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskCheckForTimeOut/51 function body not available loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant op1 is compile time invariant vPortExitCritical/45 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskSuspendAll/50 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskInternalSetTimeOutState/49 function body not available loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant vPortExitCritical/45 function body not available loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvCopyDataFromQueue/32 function not considered for inlining loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskGetSchedulerState/48 function body not available loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueSemaphoreTake/19 ;; 6 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 44 5 6 7 45 8 9 10 11 12 47 13 14 15 16 17 18 19 20 21 22 23 24 46 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ;; ;; Loop 5 ;; header 4, latch 44 ;; depth 1, outer 0 ;; nodes: 4 44 ;; ;; Loop 4 ;; header 7, latch 45 ;; depth 1, outer 0 ;; nodes: 7 45 ;; ;; Loop 2 ;; header 24, latch 46 ;; depth 1, outer 0 ;; nodes: 24 46 ;; ;; Loop 1 ;; header 14, latch 13 ;; depth 1, outer 0 ;; nodes: 14 13 39 38 37 36 34 35 33 32 30 31 28 29 26 27 21 ;; ;; Loop 3 ;; header 12, latch 47 ;; depth 1, outer 0 ;; nodes: 12 47 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 44 } ;; 44 succs { 4 } ;; 5 succs { 6 8 } ;; 6 succs { 7 } ;; 7 succs { 45 } ;; 45 succs { 7 } ;; 8 succs { 10 9 } ;; 9 succs { 10 11 } ;; 10 succs { 14 } ;; 11 succs { 12 } ;; 12 succs { 47 } ;; 47 succs { 12 } ;; 13 succs { 14 } ;; 14 succs { 15 21 } ;; 15 succs { 16 17 } ;; 16 succs { 17 } ;; 17 succs { 18 20 } ;; 18 succs { 19 20 } ;; 19 succs { 20 } ;; 20 succs { 43 } ;; 21 succs { 22 26 } ;; 22 succs { 23 25 } ;; 23 succs { 24 } ;; 24 succs { 46 } ;; 46 succs { 24 } ;; 25 succs { 43 } ;; 26 succs { 27 28 } ;; 27 succs { 28 } ;; 28 succs { 29 30 } ;; 29 succs { 30 } ;; 30 succs { 31 32 } ;; 31 succs { 32 } ;; 32 succs { 33 39 } ;; 33 succs { 34 38 } ;; 34 succs { 35 36 } ;; 35 succs { 36 } ;; 36 succs { 37 13 } ;; 37 succs { 13 } ;; 38 succs { 13 } ;; 39 succs { 40 13 } ;; 40 succs { 41 42 } ;; 41 succs { 42 } ;; 42 succs { 43 } ;; 43 succs { 1 } Analyzing function body size: xQueueSemaphoreTake IPA function summary for xQueueSemaphoreTake/19 inlinable global time: 246.801177 self size: 136 global size: 0 min size: 0 self stack: 8 global stack: 8 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350001, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.750007, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) size:60.000000, time:37.465467, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) size:7.000000, time:4.111823, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:5.000000, time:2.345004, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B) size:5.000000, time:1.500009, executed if:(op0 == 0B) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vTaskPriorityDisinheritAfterTimeout/60 function body not available loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvGetDisinheritPriorityAfterTimeout/30 function not considered for inlining loop depth: 0 freq:0.01 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskResumeAll/53 function body not available loop depth: 1 freq:0.90 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:0.90 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskResumeAll/53 function body not available loop depth: 1 freq:0.30 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:0.30 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskResumeAll/53 function body not available loop depth: 1 freq:0.61 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:0.61 size: 2 time: 11callee size:17 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vTaskPlaceOnEventList/52 function body not available loop depth: 1 freq:0.61 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskPriorityInherit/59 function body not available loop depth: 1 freq:0.11 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:0.11 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:0.90 size: 3 time: 12callee size: 4 stack: 0 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskCheckForTimeOut/51 function body not available loop depth: 1 freq:1.81 size: 4 time: 13 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant op1 is compile time invariant vPortExitCritical/45 function body not available loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vTaskSuspendAll/50 function body not available loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 1 freq:1.81 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vTaskInternalSetTimeOutState/49 function body not available loop depth: 1 freq:0.60 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant vPortExitCritical/45 function body not available loop depth: 0 freq:0.01 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) pvTaskIncrementMutexHeldCount/58 function body not available loop depth: 0 freq:0.01 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:1.95 size: 1 time: 10 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) xTaskGetSchedulerState/48 function body not available loop depth: 0 freq:0.23 size: 2 time: 11 predicate: (op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueReceive/18 ;; 5 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 35 5 6 7 8 37 9 10 11 12 13 36 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 ;; ;; Loop 4 ;; header 4, latch 35 ;; depth 1, outer 0 ;; nodes: 4 35 ;; ;; Loop 1 ;; header 15, latch 14 ;; depth 1, outer 0 ;; nodes: 15 14 33 32 31 30 29 28 26 27 24 25 22 23 20 ;; ;; Loop 2 ;; header 13, latch 36 ;; depth 1, outer 0 ;; nodes: 13 36 ;; ;; Loop 3 ;; header 8, latch 37 ;; depth 1, outer 0 ;; nodes: 8 37 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 35 } ;; 35 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 37 } ;; 37 succs { 8 } ;; 9 succs { 10 11 } ;; 10 succs { 15 } ;; 11 succs { 10 12 } ;; 12 succs { 13 } ;; 13 succs { 36 } ;; 36 succs { 13 } ;; 14 succs { 15 } ;; 15 succs { 16 20 } ;; 16 succs { 17 19 } ;; 17 succs { 18 19 } ;; 18 succs { 19 } ;; 19 succs { 34 } ;; 20 succs { 21 22 } ;; 21 succs { 34 } ;; 22 succs { 23 24 } ;; 23 succs { 24 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 27 28 } ;; 27 succs { 28 } ;; 28 succs { 29 33 } ;; 29 succs { 30 32 } ;; 30 succs { 31 14 } ;; 31 succs { 14 } ;; 32 succs { 14 } ;; 33 succs { 34 14 } ;; 34 succs { 1 } Analyzing function body size: xQueueReceive IPA function summary for xQueueReceive/18 inlinable global time: 543.926402 self size: 108 global size: 0 min size: 0 self stack: 8 global stack: 8 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.162855, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.814276, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.814276, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:44.500000, time:80.307677, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:4.500000, time:8.878318, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:2.10 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:2.10 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:1.05 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 95.040000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:1.05 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.05 size: 2 time: 11callee size:17 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 95.040000% of time vTaskPlaceOnEventList/52 function body not available loop depth: 1 freq:1.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvIsQueueEmpty/34 function not considered for inlining loop depth: 1 freq:2.10 size: 3 time: 12callee size: 4 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 47.520000% of time xTaskCheckForTimeOut/51 function body not available loop depth: 1 freq:4.21 size: 4 time: 13 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant op1 is compile time invariant vPortExitCritical/45 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskSuspendAll/50 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 1 freq:4.21 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskInternalSetTimeOutState/49 function body not available loop depth: 1 freq:1.39 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant vPortExitCritical/45 function body not available loop depth: 0 freq:0.16 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 0 freq:0.17 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvCopyDataFromQueue/32 function not considered for inlining loop depth: 0 freq:0.17 size: 3 time: 12callee size: 9 stack: 0 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:4.53 size: 1 time: 10 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskGetSchedulerState/48 function body not available loop depth: 0 freq:0.54 size: 2 time: 11 predicate: (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueGiveFromISR/17 ;; 5 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 24 5 6 7 25 8 9 10 11 27 12 13 14 15 16 17 18 19 20 26 21 23 ;; ;; Loop 4 ;; header 4, latch 24 ;; depth 1, outer 0 ;; nodes: 4 24 ;; ;; Loop 3 ;; header 7, latch 25 ;; depth 1, outer 0 ;; nodes: 7 25 ;; ;; Loop 1 ;; header 20, latch 26 ;; depth 1, outer 0 ;; nodes: 20 26 ;; ;; Loop 2 ;; header 11, latch 27 ;; depth 1, outer 0 ;; nodes: 11 27 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 24 } ;; 24 succs { 4 } ;; 5 succs { 6 8 } ;; 6 succs { 7 } ;; 7 succs { 25 } ;; 25 succs { 7 } ;; 8 succs { 12 9 } ;; 9 succs { 12 10 } ;; 10 succs { 11 } ;; 11 succs { 27 } ;; 27 succs { 11 } ;; 12 succs { 13 23 } ;; 13 succs { 14 18 } ;; 14 succs { 15 23 } ;; 15 succs { 16 23 } ;; 16 succs { 17 23 } ;; 17 succs { 23 } ;; 18 succs { 19 21 } ;; 19 succs { 20 } ;; 20 succs { 26 } ;; 26 succs { 20 } ;; 21 succs { 23 } ;; 23 succs { 1 } Analyzing function body size: xQueueGiveFromISR IPA function summary for xQueueGiveFromISR/17 inlinable global time: 16.111704 self size: 66 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0 != 0B) size:0.500000, time:0.175000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.875000, executed if:(op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.081427, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.407136, executed if:(op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:0.569996, executed if:(op0[ref offset: 64] != 0B) && (op0[ref offset: 0] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:27.000000, time:3.297567, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:4.000000, time:0.818808, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.013241, executed if:(op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op1 changed) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.002318, executed if:(op1 != 0B) && (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.749999, executed if:(op0[ref offset: 512] != 0) && (op0 != 0B) size:5.000000, time:1.500002, executed if:(op0 == 0B) calls: xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.01 size: 3 time: 12 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) vPortValidateInterruptPriority/57 function body not available loop depth: 0 freq:0.24 size: 1 time: 10 predicate: (op0[ref offset: 0] != 0B || op0[ref offset: 64] == 0B) && (op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueGenericSendFromISR/16 ;; 5 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 26 5 6 7 8 29 9 10 11 12 28 13 14 15 16 17 18 19 20 21 22 27 23 25 ;; ;; Loop 4 ;; header 4, latch 26 ;; depth 1, outer 0 ;; nodes: 4 26 ;; ;; Loop 1 ;; header 22, latch 27 ;; depth 1, outer 0 ;; nodes: 22 27 ;; ;; Loop 2 ;; header 12, latch 28 ;; depth 1, outer 0 ;; nodes: 12 28 ;; ;; Loop 3 ;; header 8, latch 29 ;; depth 1, outer 0 ;; nodes: 8 29 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 26 } ;; 26 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 29 } ;; 29 succs { 8 } ;; 9 succs { 13 10 } ;; 10 succs { 13 11 } ;; 11 succs { 12 } ;; 12 succs { 28 } ;; 28 succs { 12 } ;; 13 succs { 15 14 } ;; 14 succs { 15 25 } ;; 15 succs { 16 20 } ;; 16 succs { 17 25 } ;; 17 succs { 18 25 } ;; 18 succs { 19 25 } ;; 19 succs { 25 } ;; 20 succs { 21 23 } ;; 21 succs { 22 } ;; 22 succs { 27 } ;; 27 succs { 22 } ;; 23 succs { 25 } ;; 25 succs { 1 } Analyzing function body size: xQueueGenericSendFromISR IPA function summary for xQueueGenericSendFromISR/16 inlinable global time: 23.679489 self size: 72 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:26.000000, time:5.469914, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:4.000000, time:1.389252, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:0.528296, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:2.000000, time:0.024676, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op2 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.004318, executed if:(op2 != 0B) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.02 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvCopyDataToQueue/31 function not considered for inlining loop depth: 0 freq:0.22 size: 4 time: 13callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortValidateInterruptPriority/57 function body not available loop depth: 0 freq:0.39 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueGenericSend/15 ;; 6 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 42 5 6 7 8 45 9 10 11 12 44 13 14 15 16 17 43 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ;; ;; Loop 5 ;; header 4, latch 42 ;; depth 1, outer 0 ;; nodes: 4 42 ;; ;; Loop 1 ;; header 19, latch 18 ;; depth 1, outer 0 ;; nodes: 19 18 38 39 37 36 35 33 34 31 32 29 30 27 20 ;; ;; Loop 2 ;; header 17, latch 43 ;; depth 1, outer 0 ;; nodes: 17 43 ;; ;; Loop 3 ;; header 12, latch 44 ;; depth 1, outer 0 ;; nodes: 12 44 ;; ;; Loop 4 ;; header 8, latch 45 ;; depth 1, outer 0 ;; nodes: 8 45 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 42 } ;; 42 succs { 4 } ;; 5 succs { 9 6 } ;; 6 succs { 9 7 } ;; 7 succs { 8 } ;; 8 succs { 45 } ;; 45 succs { 8 } ;; 9 succs { 13 10 } ;; 10 succs { 13 11 } ;; 11 succs { 12 } ;; 12 succs { 44 } ;; 44 succs { 12 } ;; 13 succs { 14 15 } ;; 14 succs { 19 } ;; 15 succs { 14 16 } ;; 16 succs { 17 } ;; 17 succs { 43 } ;; 43 succs { 17 } ;; 18 succs { 19 } ;; 19 succs { 21 20 } ;; 20 succs { 21 27 } ;; 21 succs { 22 24 } ;; 22 succs { 23 26 } ;; 23 succs { 26 } ;; 24 succs { 25 26 } ;; 25 succs { 26 } ;; 26 succs { 41 } ;; 27 succs { 28 29 } ;; 28 succs { 41 } ;; 29 succs { 30 31 } ;; 30 succs { 31 } ;; 31 succs { 32 33 } ;; 32 succs { 33 } ;; 33 succs { 34 35 } ;; 34 succs { 35 } ;; 35 succs { 36 40 } ;; 36 succs { 37 39 } ;; 37 succs { 38 18 } ;; 38 succs { 18 } ;; 39 succs { 18 } ;; 40 succs { 41 } ;; 41 succs { 1 } Analyzing function body size: xQueueGenericSend IPA function summary for xQueueGenericSend/15 inlinable global time: 359.104527 self size: 121 global size: 0 min size: 0 self stack: 8 global stack: 8 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.399999, executed if:(op0 != 0B), nonconst if:(op1 changed) && (op0 != 0B) size:0.500000, time:0.105000, executed if:(op1 == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) && (not inlined) size:2.500000, time:0.525002, executed if:(op1 == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op1 == 0B) && (op0 != 0B) size:5.000000, time:0.525002, executed if:(op0[ref offset: 512] != 0) && (op1 == 0B) && (op0 != 0B) size:2.000000, time:1.189999, executed if:(op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:0.500000, time:0.152082, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.500000, time:0.760408, executed if:(op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:5.000000, time:1.003736, executed if:(op0[ref offset: 480] != 1) && (op3 == 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:25.500000, time:11.189120, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:2.500000, time:3.468903, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:2.000000, time:5.449000, executed if:(op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B), nonconst if:(op3 changed) && (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:21.000000, time:42.665100, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) size:2.000000, time:3.452794, executed if:(op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: xTaskResumeAll/53 function body not available loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 0 freq:0.07 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskResumeAll/53 function body not available loop depth: 1 freq:1.25 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 79.810000% of time xTaskResumeAll/53 function body not available loop depth: 1 freq:1.25 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvUnlockQueue/33 function not considered for inlining loop depth: 1 freq:1.25 size: 2 time: 11callee size:17 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 79.810000% of time vTaskPlaceOnEventList/52 function body not available loop depth: 1 freq:1.25 size: 3 time: 12 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvIsQueueFull/36 function not considered for inlining loop depth: 1 freq:2.51 size: 3 time: 12callee size: 4 stack: 0 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 change 39.900000% of time xTaskCheckForTimeOut/51 function body not available loop depth: 1 freq:2.58 size: 4 time: 13 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant op1 is compile time invariant vPortExitCritical/45 function body not available loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskSuspendAll/50 function body not available loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 1 freq:2.58 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vTaskInternalSetTimeOutState/49 function body not available loop depth: 1 freq:0.85 size: 2 time: 11 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) op0 is compile time invariant vPortExitCritical/45 function body not available loop depth: 0 freq:0.07 size: 1 time: 10 predicate: (op3 != 2) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortExitCritical/45 function body not available loop depth: 0 freq:0.15 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskRemoveFromEventList/43 function body not available loop depth: 0 freq:0.05 size: 3 time: 12 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) prvCopyDataToQueue/31 function not considered for inlining loop depth: 0 freq:0.15 size: 5 time: 14callee size:27 stack: 0 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 1 freq:2.80 size: 1 time: 10 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) xTaskGetSchedulerState/48 function body not available loop depth: 0 freq:0.39 size: 2 time: 11 predicate: (op3 != 2 || op0[ref offset: 480] == 1) && (op1 != 0B || op0[ref offset: 512] == 0) && (op0 != 0B) Analyzing function: xQueueCreateCountingSemaphore/14 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 9 8 ;; ;; Loop 1 ;; header 7, latch 9 ;; depth 1, outer 0 ;; nodes: 7 9 ;; 2 succs { 3 6 } ;; 3 succs { 4 6 } ;; 4 succs { 5 8 } ;; 5 succs { 8 } ;; 6 succs { 7 } ;; 7 succs { 9 } ;; 9 succs { 7 } ;; 8 succs { 1 } Analyzing function body size: xQueueCreateCountingSemaphore IPA function summary for xQueueCreateCountingSemaphore/14 inlinable global time: 10.260529 self size: 20 global size: 0 min size: 0 self stack: 0 global stack: 0 size:5.000000, time:4.174988 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.000000, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0) size:3.000000, time:0.445502, executed if:(op0 != 0) size:1.000000, time:0.330005, executed if:(op0 != 0) && (not inlined) calls: xQueueGenericCreate/6 function not considered for inlining loop depth: 0 freq:0.17 size: 5 time: 14 predicate: (op0 != 0) op1 is compile time invariant op2 is compile time invariant Analyzing function: xQueueTakeMutexRecursive/13 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 10 5 6 7 8 9 ;; ;; Loop 1 ;; header 4, latch 10 ;; depth 1, outer 0 ;; nodes: 4 10 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 10 } ;; 10 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 9 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 1 } Analyzing function body size: xQueueTakeMutexRecursive IPA function summary for xQueueTakeMutexRecursive/13 inlinable global time: 18.345502 self size: 27 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) size:8.000000, time:2.424704, executed if:(op0 != 0B) size:3.000000, time:1.461148, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: xQueueSemaphoreTake/19 function not considered for inlining loop depth: 0 freq:0.29 size: 4 time: 13callee size:68 stack: 8 predicate: (op0 != 0B) xTaskGetCurrentTaskHandle/47 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B) Analyzing function: xQueueGiveMutexRecursive/12 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 10 5 6 7 9 ;; ;; Loop 1 ;; header 4, latch 10 ;; depth 1, outer 0 ;; nodes: 4 10 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 10 } ;; 10 succs { 4 } ;; 5 succs { 6 9 } ;; 6 succs { 7 9 } ;; 7 succs { 9 } ;; 9 succs { 1 } Analyzing function body size: xQueueGiveMutexRecursive IPA function summary for xQueueGiveMutexRecursive/12 inlinable global time: 14.424882 self size: 25 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.267350, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined) size:0.500000, time:0.267350, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) size:6.000000, time:1.711046, executed if:(op0 != 0B) size:2.000000, time:1.229812, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: xQueueGenericSend/15 function not considered for inlining loop depth: 0 freq:0.05 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B) op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant xTaskGetCurrentTaskHandle/47 function body not available loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B) Analyzing function: xQueueGetMutexHolderFromISR/11 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: xQueueGetMutexHolderFromISR IPA function summary for xQueueGetMutexHolderFromISR/11 inlinable global time: 7.358400 self size: 14 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350000, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.749999, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 0] changed) && (op0 != 0B) size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) && (not inlined) size:0.500000, time:0.179200, executed if:(op0[ref offset: 0] == 0B) && (op0 != 0B), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 0] == 0B) && (op0 != 0B) size:1.000000, time:1.399999, executed if:(op0 != 0B) && (not inlined) size:5.000000, time:1.500001, executed if:(op0 == 0B) calls: Analyzing function: xQueueGetMutexHolder/10 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 8 5 6 7 ;; ;; Loop 1 ;; header 4, latch 8 ;; depth 1, outer 0 ;; nodes: 4 8 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 8 } ;; 8 succs { 4 } ;; 5 succs { 6 7 } ;; 6 succs { 7 } ;; 7 succs { 1 } Analyzing function body size: xQueueGetMutexHolder IPA function summary for xQueueGetMutexHolder/10 inlinable global time: 17.967768 self size: 16 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:2.000000, time:1.473633, executed if:(op0 != 0B) && (not inlined) size:3.000000, time:1.473633, executed if:(op0 != 0B) size:5.000000, time:2.326499, executed if:(op0 == 0B) calls: vPortExitCritical/45 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) vPortEnterCritical/42 function body not available loop depth: 0 freq:0.53 size: 1 time: 10 predicate: (op0 != 0B) Analyzing function: xQueueCreateMutex/9 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Analyzing function body size: xQueueCreateMutex IPA function summary for xQueueCreateMutex/9 inlinable global time: 27.000000 self size: 10 global size: 0 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) calls: prvInitialiseMutex/8 function not considered for inlining loop depth: 0 freq:1.00 size: 2 time: 11 xQueueGenericCreate/6 function not considered for inlining loop depth: 0 freq:1.00 size: 5 time: 14 op0 is compile time invariant op1 is compile time invariant Analyzing function: prvInitialiseMutex/8 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 ;; 2 succs { 3 4 } ;; 3 succs { 4 } ;; 4 succs { 1 } Analyzing function body size: prvInitialiseMutex IPA function summary for prvInitialiseMutex/8 inlinable global time: 13.089900 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:1.500000, time:0.802050, executed if:(op0 != 0B) && (not inlined) size:1.500000, time:0.802050, executed if:(op0 != 0B) calls: xQueueGenericSend/15 function not considered for inlining loop depth: 0 freq:0.53 size: 5 time: 14callee size:60 stack: 8 predicate: (op0 != 0B) op1 is compile time invariant op2 is compile time invariant op3 is compile time invariant Analyzing function: prvInitialiseNewQueue/7 ;; 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 } Analyzing function body size: prvInitialiseNewQueue IPA function summary for prvInitialiseNewQueue/7 inlinable global time: 20.000000 self size: 13 global size: 0 min size: 0 self stack: 0 global stack: 0 size:1.500000, time:1.500000 size:4.500000, time:3.500000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:0.500000, time:0.250000, executed if:(op1 != 0) && (not inlined) size:0.500000, time:0.250000, executed if:(op1 != 0) size:0.500000, time:0.250000, executed if:(op1 == 0) && (not inlined) size:0.500000, time:0.250000, executed if:(op1 == 0) calls: xQueueGenericReset/5 function not considered for inlining loop depth: 0 freq:1.00 size: 3 time: 12 op1 is compile time invariant Analyzing function: xQueueGenericCreate/6 ;; 2 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 10 9 ;; ;; Loop 1 ;; header 8, latch 10 ;; depth 1, outer 0 ;; nodes: 8 10 ;; 2 succs { 3 7 } ;; 3 succs { 4 7 } ;; 4 succs { 5 7 } ;; 5 succs { 6 9 } ;; 6 succs { 9 } ;; 7 succs { 8 } ;; 8 succs { 10 } ;; 10 succs { 8 } ;; 9 succs { 1 } Analyzing function body size: xQueueGenericCreate IPA function summary for xQueueGenericCreate/6 inlinable global time: 10.445736 self size: 28 global size: 0 min size: 0 self stack: 0 global stack: 0 size:5.000000, time:4.587495 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:6.000000, time:1.832486, executed if:(op0 != 0), nonconst if:(op0 changed || op1 changed) && (op0 != 0) size:3.000000, time:0.209111, executed if:(op0 != 0) size:1.000000, time:0.165002, executed if:(op0 != 0) && (not inlined) calls: prvInitialiseNewQueue/7 function not considered for inlining loop depth: 0 freq:0.04 size: 6 time: 15callee size: 6 stack: 0 predicate: (op0 != 0) pvPortMalloc/46 function body not available loop depth: 0 freq:0.08 size: 3 time: 12 predicate: (op0 != 0) Analyzing function: xQueueGenericReset/5 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 10 5 6 7 8 9 11 ;; ;; Loop 2 ;; header 4, latch 10 ;; depth 1, outer 0 ;; nodes: 4 10 ;; ;; Loop 1 ;; header 9, latch 11 ;; depth 1, outer 0 ;; nodes: 9 11 ;; 2 succs { 3 5 } ;; 3 succs { 4 } ;; 4 succs { 10 } ;; 10 succs { 4 } ;; 5 succs { 6 8 } ;; 6 succs { 7 8 } ;; 7 succs { 1 } ;; 8 succs { 9 } ;; 9 succs { 11 } ;; 11 succs { 9 } Analyzing function body size: xQueueGenericReset IPA function summary for xQueueGenericReset/5 inlinable global time: 11.305065 self size: 25 global size: 0 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:2.000000, time:0.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op0 changed) size:0.500000, time:0.350002, executed if:(op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) && (not inlined) size:2.500000, time:1.750008, executed if:(op0 != 0B), nonconst if:(op0[ref offset: 480] changed) && (op0 != 0B) size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined) size:0.500000, time:0.175001, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) size:2.000000, time:0.700003, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B), nonconst if:(op0[ref offset: 480] changed || op0[ref offset: 512] changed) && (op0[ref offset: 480] != 0) && (op0 != 0B) size:5.000000, time:2.922505, executed if:(op0 != 0B) size:1.000000, time:0.231005, executed if:(op0[ref offset: 480] != 0) && (op0 != 0B) && (not inlined) size:5.000000, time:1.500011, executed if:(op0 == 0B) calls: xQueueGenericReset.part.0/65 function not considered for inlining loop depth: 0 freq:0.12 size: 4 time: 13callee size:18 stack: 0 predicate: (op0[ref offset: 480] != 0) && (op0 != 0B) Symbol table: vQueueUnregisterQueue.part.0/114 (vQueueUnregisterQueue.part.0) @05e48b60 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Availability: local Function flags: count:107374 (estimated locally) first_run:1 body local split_part optimize_size Called by: vQueueUnregisterQueue/40 (107374 (estimated locally),0.30 per call) Calls: xQueueGenericReset.part.0/65 (xQueueGenericReset.part.0) @05e482a0 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size Called by: xQueueGenericReset/5 (21218 (estimated locally),0.12 per call) Calls: vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) xTaskRemoveFromEventList/43 (237404317 (estimated locally),0.22 per call) vListInitialise/44 (354334802 (estimated locally),0.33 per call) vListInitialise/44 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vTaskPlaceOnEventListRestricted/62 (vTaskPlaceOnEventListRestricted) @05fe8620 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vQueueWaitForMessageRestricted/41 (354334802 (estimated locally),0.33 per call) Calls: vPortFree/61 (vPortFree) @05fc9ee0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call) Calls: vTaskPriorityDisinheritAfterTimeout/60 (vTaskPriorityDisinheritAfterTimeout) @05fc9380 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) Calls: xTaskPriorityInherit/59 (xTaskPriorityInherit) @05fc92a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) Calls: pvTaskIncrementMutexHeldCount/58 (pvTaskIncrementMutexHeldCount) @05fc91c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueSemaphoreTake/19 (2848 (estimated locally),0.01 per call) Calls: vPortValidateInterruptPriority/57 (vPortValidateInterruptPriority) @05fa3620 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeekFromISR/22 (52886 (estimated locally),0.20 per call) xQueueReceiveFromISR/21 (192251 (estimated locally),0.54 per call) xQueueGiveFromISR/17 (72401 (estimated locally),0.24 per call) xQueueGenericSendFromISR/16 (141108 (estimated locally),0.39 per call) Calls: vTaskMissedYield/56 (vTaskMissedYield) @05fa32a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvUnlockQueue/33 (316429830 (estimated locally),2.75 per call) prvUnlockQueue/33 (316429836 (estimated locally),2.75 per call) Calls: memcpy/55 (memcpy) @05fa3000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCopyDataFromQueue/32 (536870913 (estimated locally),0.50 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) prvCopyDataToQueue/31 (268435456 (estimated locally),0.25 per call) Calls: xTaskPriorityDisinherit/54 (xTaskPriorityDisinherit) @05f558c0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: prvCopyDataToQueue/31 (93576600 (estimated locally),0.09 per call) Calls: xTaskResumeAll/53 (xTaskResumeAll) @05f55e00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) Calls: vTaskPlaceOnEventList/52 (vTaskPlaceOnEventList) @05f55d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) Calls: xTaskCheckForTimeOut/51 (xTaskCheckForTimeOut) @05f55c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) Calls: vTaskSuspendAll/50 (vTaskSuspendAll) @05f55b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) Calls: vTaskInternalSetTimeOutState/49 (vTaskInternalSetTimeOutState) @05f55a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (497076 (estimated locally),1.39 per call) xQueueSemaphoreTake/19 (136739 (estimated locally),0.60 per call) xQueueReceive/18 (497076 (estimated locally),1.39 per call) xQueueGenericSend/15 (304339 (estimated locally),0.85 per call) Calls: xTaskGetSchedulerState/48 (xTaskGetSchedulerState) @05f559a0 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueuePeek/20 (192251 (estimated locally),0.54 per call) xQueueSemaphoreTake/19 (52886 (estimated locally),0.23 per call) xQueueReceive/18 (192251 (estimated locally),0.54 per call) xQueueGenericSend/15 (141108 (estimated locally),0.39 per call) Calls: xTaskGetCurrentTaskHandle/47 (xTaskGetCurrentTaskHandle) @05f55460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueTakeMutexRecursive/13 (123389 (estimated locally),0.53 per call) xQueueGiveMutexRecursive/12 (123389 (estimated locally),0.53 per call) Calls: pvPortMalloc/46 (pvPortMalloc) @05f42000 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueGenericCreate/6 (9655 (estimated locally),0.08 per call) Calls: vPortExitCritical/45 (vPortExitCritical) @05f42d20 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (57225 (estimated locally),0.16 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (3186 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (16340 (estimated locally),0.07 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (57225 (estimated locally),0.16 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (26079 (estimated locally),0.07 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (1073741824 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863529 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (1073741824 (estimated locally),1.00 per call) Calls: vListInitialise/44 (vListInitialise) @05f42c40 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueGenericReset.part.0/65 (354334802 (estimated locally),0.33 per call) xQueueGenericReset.part.0/65 (354334802 (estimated locally),0.33 per call) Calls: xTaskRemoveFromEventList/43 (xTaskRemoveFromEventList) @05f42b60 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: xQueueReceiveFromISR/21 (7118 (estimated locally),0.02 per call) xQueuePeek/20 (19602 (estimated locally),0.05 per call) xQueueSemaphoreTake/19 (5392 (estimated locally),0.02 per call) xQueueReceive/18 (19602 (estimated locally),0.05 per call) xQueueGiveFromISR/17 (4062 (estimated locally),0.01 per call) xQueueGenericSendFromISR/16 (8831 (estimated locally),0.02 per call) xQueueGenericSend/15 (17949 (estimated locally),0.05 per call) xQueueGenericReset.part.0/65 (237404317 (estimated locally),0.22 per call) prvUnlockQueue/33 (958878272 (estimated locally),8.35 per call) prvUnlockQueue/33 (958878293 (estimated locally),8.35 per call) Calls: vPortEnterCritical/42 (vPortEnterCritical) @05f42a80 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) uxQueueSpacesAvailable/24 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (123389 (estimated locally),0.53 per call) xQueuePeek/20 (1506292 (estimated locally),4.21 per call) xQueuePeek/20 (1622915 (estimated locally),4.53 per call) xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) xQueueSemaphoreTake/19 (24195 (estimated locally),0.11 per call) xQueueSemaphoreTake/19 (414360 (estimated locally),1.81 per call) xQueueSemaphoreTake/19 (446442 (estimated locally),1.95 per call) xQueueReceive/18 (1506292 (estimated locally),4.21 per call) xQueueReceive/18 (1622915 (estimated locally),4.53 per call) xQueueGenericSend/15 (922239 (estimated locally),2.58 per call) xQueueGenericSend/15 (1002708 (estimated locally),2.80 per call) xQueueGetMutexHolder/10 (123389 (estimated locally),0.53 per call) xQueueGenericReset.part.0/65 (1073741824 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863532 (estimated locally),1.00 per call) prvUnlockQueue/33 (114863534 (estimated locally),1.00 per call) prvIsQueueEmpty/34 (1073741824 (estimated locally),1.00 per call) prvIsQueueFull/36 (1073741824 (estimated locally),1.00 per call) Calls: vQueueWaitForMessageRestricted/41 (vQueueWaitForMessageRestricted) @05f42540 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvUnlockQueue/33 (1073741824 (estimated locally),1.00 per call) vTaskPlaceOnEventListRestricted/62 (354334802 (estimated locally),0.33 per call) vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) vQueueUnregisterQueue/40 (vQueueUnregisterQueue) @05f422a0 Type: function definition analyzed Visibility: externally_visible public References: xQueueRegistry/4 (read)xQueueRegistry/4 (write)xQueueRegistry/4 (write) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: vQueueDelete/26 (123389 (estimated locally),0.53 per call) Calls: vQueueUnregisterQueue.part.0/114 (107374 (estimated locally),0.30 per call) pcQueueGetName/39 (pcQueueGetName) @05f3ce00 Type: function definition analyzed Visibility: externally_visible public References: xQueueRegistry/4 (read)xQueueRegistry/4 (read) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: vQueueAddToRegistry/38 (vQueueAddToRegistry) @05f3c460 Type: function definition analyzed Visibility: externally_visible public References: xQueueRegistry/4 (read)xQueueRegistry/4 (addr)xQueueRegistry/4 (read)xQueueRegistry/4 (addr) Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xQueueIsQueueFullFromISR/37 (xQueueIsQueueFullFromISR) @05f3cd20 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: prvIsQueueFull/36 (prvIsQueueFull) @05f3c9a0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueueGenericSend/15 (896877 (estimated locally),2.51 per call) Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) xQueueIsQueueEmptyFromISR/35 (xQueueIsQueueEmptyFromISR) @05f3c700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: prvIsQueueEmpty/34 (prvIsQueueEmpty) @05f3c380 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) Calls: vPortExitCritical/45 (1073741824 (estimated locally),1.00 per call) vPortEnterCritical/42 (1073741824 (estimated locally),1.00 per call) prvUnlockQueue/33 (prvUnlockQueue) @05f3c0e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:114863534 (estimated locally) body local optimize_size Called by: vQueueWaitForMessageRestricted/41 (1073741824 (estimated locally),1.00 per call) xQueuePeek/20 (753146 (estimated locally),2.10 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueuePeek/20 (376573 (estimated locally),1.05 per call) xQueueSemaphoreTake/19 (207180 (estimated locally),0.90 per call) xQueueSemaphoreTake/19 (68369 (estimated locally),0.30 per call) xQueueSemaphoreTake/19 (138811 (estimated locally),0.61 per call) xQueueReceive/18 (753146 (estimated locally),2.10 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueReceive/18 (376573 (estimated locally),1.05 per call) xQueueGenericSend/15 (25362 (estimated locally),0.07 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) xQueueGenericSend/15 (448439 (estimated locally),1.25 per call) Calls: vPortExitCritical/45 (114863529 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429830 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878272 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863532 (estimated locally),1.00 per call) vPortExitCritical/45 (114863532 (estimated locally),1.00 per call) vTaskMissedYield/56 (316429836 (estimated locally),2.75 per call) xTaskRemoveFromEventList/43 (958878293 (estimated locally),8.35 per call) vPortEnterCritical/42 (114863534 (estimated locally),1.00 per call) prvCopyDataFromQueue/32 (prvCopyDataFromQueue) @05f338c0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueuePeekFromISR/22 (17452 (estimated locally),0.06 per call) xQueueReceiveFromISR/21 (63443 (estimated locally),0.18 per call) xQueuePeek/20 (59399 (estimated locally),0.17 per call) xQueueReceive/18 (59399 (estimated locally),0.17 per call) Calls: memcpy/55 (536870913 (estimated locally),0.50 per call) prvCopyDataToQueue/31 (prvCopyDataToQueue) @05f33380 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741823 (estimated locally) body local optimize_size Called by: xQueueGenericSendFromISR/16 (78710 (estimated locally),0.22 per call) xQueueGenericSend/15 (54391 (estimated locally),0.15 per call) Calls: memcpy/55 (268435456 (estimated locally),0.25 per call) memcpy/55 (268435456 (estimated locally),0.25 per call) xTaskPriorityDisinherit/54 (93576600 (estimated locally),0.09 per call) prvGetDisinheritPriorityAfterTimeout/30 (prvGetDisinheritPriorityAfterTimeout) @05f33e00 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueueSemaphoreTake/19 (2502 (estimated locally),0.01 per call) Calls: ucQueueGetQueueType/29 (ucQueueGetQueueType) @05f33a80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vQueueSetQueueNumber/28 (vQueueSetQueueNumber) @05f337e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: uxQueueGetQueueNumber/27 (uxQueueGetQueueNumber) @05f33540 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: vQueueDelete/26 (vQueueDelete) @05f332a0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortFree/61 (123389 (estimated locally),0.53 per call) vQueueUnregisterQueue/40 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaitingFromISR/25 (uxQueueMessagesWaitingFromISR) @05f2ad20 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: uxQueueSpacesAvailable/24 (uxQueueSpacesAvailable) @05f2a0e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) uxQueueMessagesWaiting/23 (uxQueueMessagesWaiting) @05f2ac40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) xQueuePeekFromISR/22 (xQueuePeekFromISR) @05f2a8c0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:269344 (estimated locally) body optimize_size Called by: Calls: prvCopyDataFromQueue/32 (17452 (estimated locally),0.06 per call) vPortValidateInterruptPriority/57 (52886 (estimated locally),0.20 per call) xQueueReceiveFromISR/21 (xQueueReceiveFromISR) @05f2a460 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTaskRemoveFromEventList/43 (7118 (estimated locally),0.02 per call) prvCopyDataFromQueue/32 (63443 (estimated locally),0.18 per call) vPortValidateInterruptPriority/57 (192251 (estimated locally),0.54 per call) xQueuePeek/20 (xQueuePeek) @05f2a000 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call) xQueueSemaphoreTake/19 (xQueueSemaphoreTake) @05f18c40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:228942 (estimated locally) body optimize_size Called by: xQueueTakeMutexRecursive/13 (65976 (estimated locally),0.29 per call) Calls: vPortExitCritical/45 (2502 (estimated locally),0.01 per call) vTaskPriorityDisinheritAfterTimeout/60 (2502 (estimated locally),0.01 per call) prvGetDisinheritPriorityAfterTimeout/30 (2502 (estimated locally),0.01 per call) vPortEnterCritical/42 (2502 (estimated locally),0.01 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (207180 (estimated locally),0.90 per call) prvUnlockQueue/33 (207180 (estimated locally),0.90 per call) xTaskResumeAll/53 (68369 (estimated locally),0.30 per call) prvUnlockQueue/33 (68369 (estimated locally),0.30 per call) xTaskResumeAll/53 (138811 (estimated locally),0.61 per call) prvUnlockQueue/33 (138811 (estimated locally),0.61 per call) vTaskPlaceOnEventList/52 (138811 (estimated locally),0.61 per call) vPortExitCritical/45 (24195 (estimated locally),0.11 per call) xTaskPriorityInherit/59 (24195 (estimated locally),0.11 per call) vPortEnterCritical/42 (24195 (estimated locally),0.11 per call) prvIsQueueEmpty/34 (207180 (estimated locally),0.90 per call) xTaskCheckForTimeOut/51 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vPortEnterCritical/42 (414360 (estimated locally),1.81 per call) vTaskSuspendAll/50 (414360 (estimated locally),1.81 per call) vPortExitCritical/45 (414360 (estimated locally),1.81 per call) vTaskInternalSetTimeOutState/49 (136739 (estimated locally),0.60 per call) vPortExitCritical/45 (3186 (estimated locally),0.01 per call) vPortExitCritical/45 (16340 (estimated locally),0.07 per call) xTaskRemoveFromEventList/43 (5392 (estimated locally),0.02 per call) pvTaskIncrementMutexHeldCount/58 (2848 (estimated locally),0.01 per call) vPortEnterCritical/42 (446442 (estimated locally),1.95 per call) xTaskGetSchedulerState/48 (52886 (estimated locally),0.23 per call) xQueueReceive/18 (xQueueReceive) @05f18540 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (753146 (estimated locally),2.10 per call) prvUnlockQueue/33 (753146 (estimated locally),2.10 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) xTaskResumeAll/53 (376573 (estimated locally),1.05 per call) prvUnlockQueue/33 (376573 (estimated locally),1.05 per call) vTaskPlaceOnEventList/52 (376573 (estimated locally),1.05 per call) prvIsQueueEmpty/34 (753146 (estimated locally),2.10 per call) xTaskCheckForTimeOut/51 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vPortEnterCritical/42 (1506292 (estimated locally),4.21 per call) vTaskSuspendAll/50 (1506292 (estimated locally),4.21 per call) vPortExitCritical/45 (1506292 (estimated locally),4.21 per call) vTaskInternalSetTimeOutState/49 (497076 (estimated locally),1.39 per call) vPortExitCritical/45 (57225 (estimated locally),0.16 per call) vPortExitCritical/45 (59399 (estimated locally),0.17 per call) xTaskRemoveFromEventList/43 (19602 (estimated locally),0.05 per call) prvCopyDataFromQueue/32 (59399 (estimated locally),0.17 per call) vPortEnterCritical/42 (1622915 (estimated locally),4.53 per call) xTaskGetSchedulerState/48 (192251 (estimated locally),0.54 per call) xQueueGiveFromISR/17 (xQueueGiveFromISR) @05eb8d20 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:306783 (estimated locally) body optimize_size Called by: Calls: xTaskRemoveFromEventList/43 (4062 (estimated locally),0.01 per call) vPortValidateInterruptPriority/57 (72401 (estimated locally),0.24 per call) xQueueGenericSendFromISR/16 (xQueueGenericSendFromISR) @05eb8c40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xTaskRemoveFromEventList/43 (8831 (estimated locally),0.02 per call) prvCopyDataToQueue/31 (78710 (estimated locally),0.22 per call) vPortValidateInterruptPriority/57 (141108 (estimated locally),0.39 per call) xQueueGenericSend/15 (xQueueGenericSend) @05eb87e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: xQueueGiveMutexRecursive/12 (12216 (estimated locally),0.05 per call) prvInitialiseMutex/8 (574129754 (estimated locally),0.53 per call) Calls: xTaskResumeAll/53 (25362 (estimated locally),0.07 per call) prvUnlockQueue/33 (25362 (estimated locally),0.07 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) xTaskResumeAll/53 (448439 (estimated locally),1.25 per call) prvUnlockQueue/33 (448439 (estimated locally),1.25 per call) vTaskPlaceOnEventList/52 (448439 (estimated locally),1.25 per call) prvIsQueueFull/36 (896877 (estimated locally),2.51 per call) xTaskCheckForTimeOut/51 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vPortEnterCritical/42 (922239 (estimated locally),2.58 per call) vTaskSuspendAll/50 (922239 (estimated locally),2.58 per call) vPortExitCritical/45 (922239 (estimated locally),2.58 per call) vTaskInternalSetTimeOutState/49 (304339 (estimated locally),0.85 per call) vPortExitCritical/45 (26079 (estimated locally),0.07 per call) vPortExitCritical/45 (54391 (estimated locally),0.15 per call) xTaskRemoveFromEventList/43 (17949 (estimated locally),0.05 per call) prvCopyDataToQueue/31 (54391 (estimated locally),0.15 per call) vPortEnterCritical/42 (1002708 (estimated locally),2.80 per call) xTaskGetSchedulerState/48 (141108 (estimated locally),0.39 per call) xQueueCreateCountingSemaphore/14 (xQueueCreateCountingSemaphore) @05eb80e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:128592 (estimated locally) body optimize_size Called by: Calls: xQueueGenericCreate/6 (21218 (estimated locally),0.17 per call) xQueueTakeMutexRecursive/13 (xQueueTakeMutexRecursive) @05eb09a0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xQueueSemaphoreTake/19 (65976 (estimated locally),0.29 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call) xQueueGiveMutexRecursive/12 (xQueueGiveMutexRecursive) @05eb00e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: xQueueGenericSend/15 (12216 (estimated locally),0.05 per call) xTaskGetCurrentTaskHandle/47 (123389 (estimated locally),0.53 per call) xQueueGetMutexHolderFromISR/11 (xQueueGetMutexHolderFromISR) @05eb0c40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:357913 (estimated locally) body optimize_size Called by: Calls: xQueueGetMutexHolder/10 (xQueueGetMutexHolder) @05eb08c0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:230763 (estimated locally) body optimize_size Called by: Calls: vPortExitCritical/45 (123389 (estimated locally),0.53 per call) vPortEnterCritical/42 (123389 (estimated locally),0.53 per call) xQueueCreateMutex/9 (xQueueCreateMutex) @05eb0540 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: prvInitialiseMutex/8 (1073741824 (estimated locally),1.00 per call) xQueueGenericCreate/6 (1073741824 (estimated locally),1.00 per call) prvInitialiseMutex/8 (prvInitialiseMutex) @05eb02a0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call) Calls: xQueueGenericSend/15 (574129754 (estimated locally),0.53 per call) prvInitialiseNewQueue/7 (prvInitialiseNewQueue) @05eb0000 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:1073741824 (estimated locally) body local optimize_size Called by: xQueueGenericCreate/6 (5162 (estimated locally),0.04 per call) Calls: xQueueGenericReset/5 (1073741824 (estimated locally),1.00 per call) xQueueGenericCreate/6 (xQueueGenericCreate) @05ec67e0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:117029 (estimated locally) body optimize_size Called by: xQueueCreateMutex/9 (1073741824 (estimated locally),1.00 per call) xQueueCreateCountingSemaphore/14 (21218 (estimated locally),0.17 per call) Calls: prvInitialiseNewQueue/7 (5162 (estimated locally),0.04 per call) pvPortMalloc/46 (9655 (estimated locally),0.08 per call) xQueueGenericReset/5 (xQueueGenericReset) @05ec6c40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:183702 (estimated locally) body optimize_size Called by: prvInitialiseNewQueue/7 (1073741824 (estimated locally),1.00 per call) Calls: xQueueGenericReset.part.0/65 (21218 (estimated locally),0.12 per call) xQueueRegistry/4 (xQueueRegistry) @05ec1630 Type: variable definition analyzed Visibility: externally_visible public References: Referring: pcQueueGetName/39 (read)vQueueAddToRegistry/38 (addr)vQueueAddToRegistry/38 (read)vQueueAddToRegistry/38 (addr)pcQueueGetName/39 (read)vQueueAddToRegistry/38 (read)vQueueUnregisterQueue/40 (read)vQueueUnregisterQueue/40 (write)vQueueUnregisterQueue/40 (write) Availability: available Varpool flags: vQueueUnregisterQueue.part.0 () { UBaseType_t ux; uint32_t ulNewBASEPRI; struct QueueDefinition * xQueue; [local count: 107374]: # DEBUG D#2 s=> xQueue # DEBUG xQueue => D#2 [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_1 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_1 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] } xQueueGenericReset.part.0 (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { BaseType_t xReturn; struct Queue_t * const pxQueue; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; int8_t * _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; int8_t * _6; long unsigned int _7; long unsigned int _8; int8_t * _9; long unsigned int _11; struct List_t * _12; long int _13; struct List_t * _14; struct List_t * _15; [local count: 1073741824]: [local count: 1073741824]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _2 = MEM[(struct Queue_t *)xQueue_1(D)].pcHead; _3 = MEM[(struct Queue_t *)xQueue_1(D)].uxLength; _4 = MEM[(struct Queue_t *)xQueue_1(D)].uxItemSize; _5 = _3 * _4; _6 = _2 + _5; MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcTail = _6; # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting ={v} 0; # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_1(D)].pcWriteTo = _2; # DEBUG BEGIN_STMT _7 = _3 + 4294967295; _8 = _4 * _7; _9 = _2 + _8; MEM[(struct Queue_t *)xQueue_1(D)].u.xQueue.pcReadFrom = _9; # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_1(D)].cRxLock ={v} -1; # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_1(D)].cTxLock ={v} -1; # DEBUG BEGIN_STMT if (xNewQueue_10(D) == 0) goto ; [67.00%] else goto ; [33.00%] [local count: 719407023]: # DEBUG BEGIN_STMT _11 ={v} MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend.uxNumberOfItems; if (_11 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 237404317]: # DEBUG BEGIN_STMT _12 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend; _13 = xTaskRemoveFromEventList (_12); if (_13 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 118702159]: # 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: 354334802]: # DEBUG BEGIN_STMT _14 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToSend; vListInitialise (_14); # DEBUG BEGIN_STMT _15 = &MEM[(struct Queue_t *)xQueue_1(D)].xTasksWaitingToReceive; vListInitialise (_15); [local count: 1073741824]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG xReturn => 1 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return 1; } vQueueWaitForMessageRestricted (struct QueueDefinition * xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely) { signed char _1; signed char _2; long unsigned int _3; struct List_t * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_8(D) # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cRxLock; if (_1 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 365072220]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_8(D)].cRxLock ={v} 0; [local count: 1073741824]: # DEBUG BEGIN_STMT _2 ={v} MEM[(struct Queue_t *)xQueue_8(D)].cTxLock; if (_2 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 365072220]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_8(D)].cTxLock ={v} 0; [local count: 1073741824]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _3 ={v} MEM[(struct Queue_t *)xQueue_8(D)].uxMessagesWaiting; if (_3 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 354334802]: # DEBUG BEGIN_STMT _4 = &MEM[(struct Queue_t *)xQueue_8(D)].xTasksWaitingToReceive; vTaskPlaceOnEventListRestricted (_4, xTicksToWait_14(D), xWaitIndefinitely_15(D)); [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_8(D)); return; } vQueueUnregisterQueue (struct QueueDefinition * xQueue) { UBaseType_t ux; struct QueueDefinition * _1; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_3(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 250539]: goto ; [100.00%] [local count: 107374]: # DEBUG D#1 => xQueue_3(D) vQueueUnregisterQueue.part.0 (); [local count: 451483]: # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_2].xHandle; if (_1 == xQueue_3(D)) goto ; [5.50%] else goto ; [94.50%] [local count: 24832]: # ux_4 = PHI # DEBUG BEGIN_STMT xQueueRegistry[ux_4].pcQueueName = 0B; # DEBUG BEGIN_STMT xQueueRegistry[ux_4].xHandle = 0B; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 426652]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_6 = ux_2 + 1; # DEBUG ux => ux_6 [local count: 677191]: # ux_2 = PHI # DEBUG ux => ux_2 # DEBUG BEGIN_STMT if (ux_2 != 2) goto ; [66.67%] else goto ; [33.33%] [local count: 250539]: return; } pcQueueGetName (struct QueueDefinition * xQueue) { uint32_t ulNewBASEPRI; const char * pcReturn; UBaseType_t ux; struct QueueDefinition * _1; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pcReturn => 0B # DEBUG BEGIN_STMT if (xQueue_5(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 250539]: goto ; [100.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_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: 451483]: # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_2].xHandle; if (_1 == xQueue_5(D)) goto ; [5.50%] else goto ; [94.50%] [local count: 24832]: # ux_4 = PHI # DEBUG BEGIN_STMT pcReturn_8 = xQueueRegistry[ux_4].pcQueueName; # DEBUG pcReturn => pcReturn_8 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 426652]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_7 = ux_2 + 1; # DEBUG ux => ux_7 [local count: 677191]: # ux_2 = PHI # DEBUG ux => ux_2 # DEBUG BEGIN_STMT if (ux_2 != 2) goto ; [66.67%] else goto ; [33.33%] [local count: 250539]: # pcReturn_3 = PHI # DEBUG pcReturn => pcReturn_3 # DEBUG BEGIN_STMT return pcReturn_3; } vQueueAddToRegistry (struct QueueDefinition * xQueue, const char * pcQueueName) { uint32_t ulNewBASEPRI; struct QueueRegistryItem_t * pxEntryToWrite; UBaseType_t ux; struct QueueDefinition * _1; const char * _2; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_8(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_17 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_17 [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 # DEBUG pxEntryToWrite => 0B # DEBUG BEGIN_STMT if (pcQueueName_10(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 175378]: goto ; [100.00%] [local count: 316038]: # DEBUG BEGIN_STMT _1 = xQueueRegistry[ux_3].xHandle; if (_1 == xQueue_8(D)) goto ; [5.50%] else goto ; [94.50%] [local count: 17382]: # ux_9 = PHI # DEBUG BEGIN_STMT pxEntryToWrite_14 = &xQueueRegistry[ux_9]; # DEBUG pxEntryToWrite => pxEntryToWrite_14 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 298656]: # DEBUG BEGIN_STMT if (pxEntryToWrite_5 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 89597]: _2 = xQueueRegistry[ux_3].pcQueueName; if (_2 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 26879]: # DEBUG BEGIN_STMT pxEntryToWrite_12 = &xQueueRegistry[ux_3]; # DEBUG pxEntryToWrite => pxEntryToWrite_12 [local count: 298656]: # pxEntryToWrite_4 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_4 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT ux_13 = ux_3 + 1; # DEBUG ux => ux_13 [local count: 474034]: # ux_3 = PHI # pxEntryToWrite_5 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_5 # DEBUG ux => ux_3 # DEBUG BEGIN_STMT if (ux_3 != 2) goto ; [66.67%] else goto ; [33.33%] [local count: 175378]: # pxEntryToWrite_6 = PHI # DEBUG pxEntryToWrite => pxEntryToWrite_6 # DEBUG BEGIN_STMT if (pxEntryToWrite_6 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 122764]: # DEBUG BEGIN_STMT pxEntryToWrite_6->pcQueueName = pcQueueName_10(D); # DEBUG BEGIN_STMT pxEntryToWrite_6->xHandle = xQueue_8(D); [local count: 250539]: # DEBUG pxEntryToWrite => NULL # DEBUG BEGIN_STMT return; } xQueueIsQueueFullFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_4(D) # DEBUG BEGIN_STMT if (xQueue_4(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_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 _1 ={v} MEM[(struct Queue_t *)xQueue_4(D)].uxMessagesWaiting; _2 = MEM[(struct Queue_t *)xQueue_4(D)].uxLength; if (_1 == _2) goto ; [34.00%] else goto ; [66.00%] [local count: 165356]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 [local count: 250539]: # xReturn_3 = PHI <1(5), 0(6)> # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT return xReturn_3; } prvIsQueueFull (const struct Queue_t * pxQueue) { BaseType_t xReturn; long unsigned int _1; long unsigned int _2; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} pxQueue_6(D)->uxMessagesWaiting; _2 = pxQueue_6(D)->uxLength; if (_1 == _2) goto ; [34.00%] else goto ; [66.00%] [local count: 708669605]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 [local count: 1073741824]: # xReturn_3 = PHI <1(2), 0(3)> # DEBUG xReturn => xReturn_3 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_3; } xQueueIsQueueEmptyFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; BaseType_t xReturn; long unsigned int _1; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_3(D) # DEBUG BEGIN_STMT if (xQueue_3(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_5 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_5 [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 _1 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 125270]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 [local count: 250539]: # xReturn_2 = PHI <1(5), 0(6)> # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT return xReturn_2; } prvIsQueueEmpty (const struct Queue_t * pxQueue) { BaseType_t xReturn; long unsigned int _1; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _1 ={v} pxQueue_5(D)->uxMessagesWaiting; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 [local count: 1073741824]: # xReturn_2 = PHI <1(2), 0(3)> # DEBUG xReturn => xReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return xReturn_2; } prvUnlockQueue (struct Queue_t * const pxQueue) { int8_t cRxLock; int8_t cTxLock; long unsigned int _1; struct List_t * _2; long int _3; unsigned char cTxLock.6_4; unsigned char _5; long unsigned int _6; struct List_t * _7; long int _8; unsigned char cRxLock.7_9; unsigned char _10; [local count: 114863534]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cTxLock_20 ={v} pxQueue_19(D)->cTxLock; # DEBUG cTxLock => cTxLock_20 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1014686025]: # DEBUG BEGIN_STMT _1 ={v} pxQueue_19(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [94.50%] else goto ; [5.50%] [local count: 958878293]: # DEBUG BEGIN_STMT _2 = &pxQueue_19(D)->xTasksWaitingToReceive; _3 = xTaskRemoveFromEventList (_2); if (_3 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 316429836]: # DEBUG BEGIN_STMT vTaskMissedYield (); [local count: 958878293]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.6_4 = (unsigned char) cTxLock_11; _5 = cTxLock.6_4 + 255; cTxLock_23 = (int8_t) _5; # DEBUG cTxLock => cTxLock_23 [local count: 1073741824]: # cTxLock_11 = PHI # DEBUG cTxLock => cTxLock_11 # DEBUG BEGIN_STMT if (cTxLock_11 > 0) goto ; [94.50%] else goto ; [5.50%] [local count: 114863532]: # DEBUG BEGIN_STMT pxQueue_19(D)->cTxLock ={v} -1; # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT cRxLock_27 ={v} pxQueue_19(D)->cRxLock; # DEBUG cRxLock => cRxLock_27 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1014686003]: # DEBUG BEGIN_STMT _6 ={v} pxQueue_19(D)->xTasksWaitingToSend.uxNumberOfItems; if (_6 != 0) goto ; [94.50%] else goto ; [5.50%] [local count: 958878272]: # DEBUG BEGIN_STMT _7 = &pxQueue_19(D)->xTasksWaitingToSend; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 316429830]: # DEBUG BEGIN_STMT vTaskMissedYield (); [local count: 958878272]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cRxLock.7_9 = (unsigned char) cRxLock_12; _10 = cRxLock.7_9 + 255; cRxLock_30 = (int8_t) _10; # DEBUG cRxLock => cRxLock_30 [local count: 1073741803]: # cRxLock_12 = PHI # DEBUG cRxLock => cRxLock_12 # DEBUG BEGIN_STMT if (cRxLock_12 > 0) goto ; [94.50%] else goto ; [5.50%] [local count: 114863529]: # DEBUG BEGIN_STMT pxQueue_19(D)->cRxLock ={v} -1; # DEBUG BEGIN_STMT vPortExitCritical (); return; } prvCopyDataFromQueue (struct Queue_t * const pxQueue, void * const pvBuffer) { long unsigned int _1; int8_t * _2; int8_t * _3; int8_t * _4; int8_t * _5; int8_t * _6; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = pxQueue_10(D)->uxItemSize; if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _2 = pxQueue_10(D)->u.xQueue.pcReadFrom; _3 = _2 + _1; pxQueue_10(D)->u.xQueue.pcReadFrom = _3; # DEBUG BEGIN_STMT _4 = pxQueue_10(D)->u.xQueue.pcTail; if (_3 >= _4) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _5 = pxQueue_10(D)->pcHead; pxQueue_10(D)->u.xQueue.pcReadFrom = _5; [local count: 536870913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _6 = pxQueue_10(D)->u.xQueue.pcReadFrom; memcpy (pvBuffer_13(D), _6, _1); [local count: 1073741824]: return; } prvCopyDataToQueue (struct Queue_t * const pxQueue, const void * pvItemToQueue, const BaseType_t xPosition) { UBaseType_t uxMessagesWaiting; BaseType_t xReturn; long unsigned int _1; int8_t * _2; struct tskTaskControlBlock * _3; int8_t * _4; int8_t * _5; long unsigned int _6; int8_t * _7; int8_t * _8; int8_t * _9; int8_t * _10; int8_t * _11; long unsigned int _12; sizetype _13; int8_t * _14; int8_t * _15; int8_t * _16; int8_t * _17; long unsigned int _18; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG xReturn => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxMessagesWaiting_25 ={v} pxQueue_24(D)->uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_25 # DEBUG BEGIN_STMT _1 = pxQueue_24(D)->uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870911]: # DEBUG BEGIN_STMT _2 = pxQueue_24(D)->pcHead; if (_2 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 93576600]: # DEBUG BEGIN_STMT _3 = pxQueue_24(D)->u.xSemaphore.xMutexHolder; xReturn_36 = xTaskPriorityDisinherit (_3); # DEBUG xReturn => xReturn_36 # DEBUG BEGIN_STMT pxQueue_24(D)->u.xSemaphore.xMutexHolder = 0B; goto ; [100.00%] [local count: 536870911]: # DEBUG BEGIN_STMT if (xPosition_26(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _4 = pxQueue_24(D)->pcWriteTo; memcpy (_4, pvItemToQueue_27(D), _1); # DEBUG BEGIN_STMT _5 = pxQueue_24(D)->pcWriteTo; _6 = pxQueue_24(D)->uxItemSize; _7 = _5 + _6; pxQueue_24(D)->pcWriteTo = _7; # DEBUG BEGIN_STMT _8 = pxQueue_24(D)->u.xQueue.pcTail; if (_7 >= _8) goto ; [50.00%] else goto ; [50.00%] [local count: 134217728]: # DEBUG BEGIN_STMT _9 = pxQueue_24(D)->pcHead; pxQueue_24(D)->pcWriteTo = _9; goto ; [100.00%] [local count: 268435456]: # DEBUG BEGIN_STMT _10 = pxQueue_24(D)->u.xQueue.pcReadFrom; memcpy (_10, pvItemToQueue_27(D), _1); # DEBUG BEGIN_STMT _11 = pxQueue_24(D)->u.xQueue.pcReadFrom; _12 = pxQueue_24(D)->uxItemSize; _13 = -_12; _14 = _11 + _13; pxQueue_24(D)->u.xQueue.pcReadFrom = _14; # DEBUG BEGIN_STMT _15 = pxQueue_24(D)->pcHead; if (_14 < _15) goto ; [50.00%] else goto ; [50.00%] [local count: 134217728]: # DEBUG BEGIN_STMT _16 = pxQueue_24(D)->u.xQueue.pcTail; _17 = _16 + _13; pxQueue_24(D)->u.xQueue.pcReadFrom = _17; [local count: 268435456]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xPosition_26(D) == 2) goto ; [34.00%] else goto ; [66.00%] [local count: 91268055]: # DEBUG BEGIN_STMT if (uxMessagesWaiting_25 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 45634027]: # DEBUG BEGIN_STMT uxMessagesWaiting_31 = uxMessagesWaiting_25 + 4294967295; # DEBUG uxMessagesWaiting => uxMessagesWaiting_31 [local count: 1073741824]: # xReturn_19 = PHI # uxMessagesWaiting_20 = PHI # DEBUG uxMessagesWaiting => uxMessagesWaiting_20 # DEBUG xReturn => xReturn_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _18 = uxMessagesWaiting_20 + 1; pxQueue_24(D)->uxMessagesWaiting ={v} _18; # DEBUG BEGIN_STMT return xReturn_19; } prvGetDisinheritPriorityAfterTimeout (const struct Queue_t * const pxQueue) { UBaseType_t uxHighestPriorityOfWaitingTasks; long unsigned int _1; struct xLIST_ITEM * _2; long unsigned int _3; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 ={v} pxQueue_6(D)->xTasksWaitingToReceive.uxNumberOfItems; if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _2 = pxQueue_6(D)->xTasksWaitingToReceive.xListEnd.pxNext; _3 = _2->xItemValue; uxHighestPriorityOfWaitingTasks_7 = 5 - _3; # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_7 [local count: 1073741824]: # uxHighestPriorityOfWaitingTasks_4 = PHI # DEBUG uxHighestPriorityOfWaitingTasks => uxHighestPriorityOfWaitingTasks_4 # DEBUG BEGIN_STMT return uxHighestPriorityOfWaitingTasks_4; } ucQueueGetQueueType (struct QueueDefinition * xQueue) { uint8_t _3; [local count: 1073741824]: # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xQueue_2(D)].ucQueueType; return _3; } vQueueSetQueueNumber (struct QueueDefinition * xQueue, UBaseType_t uxQueueNumber) { [local count: 1073741824]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber = uxQueueNumber_3(D); return; } uxQueueGetQueueNumber (struct QueueDefinition * xQueue) { UBaseType_t _3; [local count: 1073741824]: # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xQueue_2(D)].uxQueueNumber; return _3; } vQueueDelete (struct QueueDefinition * xQueue) { uint32_t ulNewBASEPRI; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_1(D) # DEBUG BEGIN_STMT if (xQueue_1(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_5 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_5 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vQueueUnregisterQueue (xQueue_1(D)); # DEBUG BEGIN_STMT vPortFree (xQueue_1(D)); return; } uxQueueMessagesWaitingFromISR (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_1(D) # DEBUG BEGIN_STMT if (xQueue_1(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_4 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_4 [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 uxReturn_3 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting; # DEBUG uxReturn => uxReturn_3 # DEBUG BEGIN_STMT return uxReturn_3; } uxQueueSpacesAvailable (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; long unsigned int _1; long unsigned int _2; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_3(D) # DEBUG BEGIN_STMT if (xQueue_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 vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xQueue_3(D)].uxLength; _2 ={v} MEM[(struct Queue_t *)xQueue_3(D)].uxMessagesWaiting; uxReturn_6 = _1 - _2; # DEBUG uxReturn => uxReturn_6 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return uxReturn_6; } uxQueueMessagesWaiting (struct QueueDefinition * const xQueue) { uint32_t ulNewBASEPRI; UBaseType_t uxReturn; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xQueue_1(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_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: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxReturn_4 ={v} MEM[(struct Queue_t *)xQueue_1(D)].uxMessagesWaiting; # DEBUG uxReturn => uxReturn_4 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return uxReturn_4; } xQueuePeekFromISR (struct QueueDefinition * xQueue, void * const pvBuffer) { uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; int8_t * pcOriginalReadPosition; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; [local count: 269344]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_6(D) # DEBUG BEGIN_STMT if (xQueue_6(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 80803]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_13 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_13 [local count: 808033481]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 808033481]: goto ; [100.00%] [local count: 188541]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (pvBuffer_7(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 56562]: _1 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 28281]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_14 [local count: 282811719]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 282811719]: goto ; [100.00%] [local count: 160260]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = MEM[(struct Queue_t *)xQueue_6(D)].uxItemSize; if (_2 == 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_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: 52886]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_16, "=r" ulNewBASEPRI_17 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_17 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_16 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_16 # DEBUG BEGIN_STMT _3 ={v} MEM[(struct Queue_t *)xQueue_6(D)].uxMessagesWaiting; if (_3 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 17452]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pcOriginalReadPosition_10 = MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom; # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_10 # DEBUG BEGIN_STMT prvCopyDataFromQueue (xQueue_6(D), pvBuffer_7(D)); # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_6(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_10; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 [local count: 52886]: # xReturn_4 = PHI <1(13), 0(12)> # DEBUG xReturn => xReturn_4 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_16 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_16 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xReturn_4; } xQueueReceiveFromISR (struct QueueDefinition * xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken) { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const int8_t cRxLock; const UBaseType_t uxMessagesWaiting; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; struct List_t * _4; long int _5; unsigned char cRxLock.28_6; unsigned char _7; signed char _8; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_11(D) # DEBUG BEGIN_STMT if (xQueue_11(D) == 0B) goto ; [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_23 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_23 [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 if (pvBuffer_12(D) != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 116576]: _1 = MEM[(struct Queue_t *)xQueue_11(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 58288]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_24 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_24 [local count: 582880751]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 582880751]: goto ; [100.00%] [local count: 192251]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_25, "=r" ulNewBASEPRI_26 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_26 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_25 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_25 # DEBUG BEGIN_STMT uxMessagesWaiting_15 ={v} MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_15 # DEBUG BEGIN_STMT if (uxMessagesWaiting_15 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 63443]: # DEBUG BEGIN_STMT cRxLock_16 ={v} MEM[(struct Queue_t *)xQueue_11(D)].cRxLock; # DEBUG cRxLock => cRxLock_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataFromQueue (xQueue_11(D), pvBuffer_12(D)); # DEBUG BEGIN_STMT _2 = uxMessagesWaiting_15 + 4294967295; MEM[(struct Queue_t *)xQueue_11(D)].uxMessagesWaiting ={v} _2; # DEBUG BEGIN_STMT if (cRxLock_16 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 21571]: # DEBUG BEGIN_STMT _3 ={v} MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend.uxNumberOfItems; if (_3 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 7118]: # DEBUG BEGIN_STMT _4 = &MEM[(struct Queue_t *)xQueue_11(D)].xTasksWaitingToSend; _5 = xTaskRemoveFromEventList (_4); if (_5 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 3559]: # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_21(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 2491]: # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_21(D) = 1; goto ; [100.00%] [local count: 41872]: # DEBUG BEGIN_STMT if (cRxLock_16 == 127) goto ; [34.00%] else goto ; [66.00%] [local count: 14237]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_27 [local count: 142366217]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 142366217]: goto ; [100.00%] [local count: 27636]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cRxLock.28_6 = (unsigned char) cRxLock_16; _7 = cRxLock.28_6 + 1; _8 = (signed char) _7; MEM[(struct Queue_t *)xQueue_11(D)].cRxLock ={v} _8; [local count: 178015]: # xReturn_9 = PHI <1(18), 0(9), 1(14), 1(12), 1(13), 1(11)> # DEBUG xReturn => xReturn_9 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_25 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_25 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xReturn_9; } xQueuePeek (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxMessagesWaiting; int8_t * pcOriginalReadPosition; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.24_3; long unsigned int _4; struct List_t * _5; long int _6; long unsigned int xTicksToWait.25_7; signed char _8; signed char _9; long int _10; long int _11; struct List_t * _12; long unsigned int xTicksToWait.26_13; long int _14; long int _15; BaseType_t _18; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_26(D) # DEBUG BEGIN_STMT if (xQueue_26(D) == 0B) goto ; [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_64 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_64 [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 if (pvBuffer_27(D) != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 116576]: _1 = MEM[(struct Queue_t *)xQueue_26(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 58288]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_65 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_65 [local count: 582880751]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 582880751]: goto ; [100.00%] [local count: 192251]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 144189]: # xEntryTimeSet_30 = PHI <0(9), 0(11)> goto ; [100.00%] [local count: 96126]: xTicksToWait.24_3 = xTicksToWait; if (xTicksToWait.24_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 48063]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_66 [local count: 480629211]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 480629211]: goto ; [100.00%] [local count: 1478726]: # xEntryTimeSet_44 = PHI [local count: 1622915]: # xEntryTimeSet_16 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting_32 ={v} MEM[(struct Queue_t *)xQueue_26(D)].uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_32 # DEBUG BEGIN_STMT if (uxMessagesWaiting_32 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 59399]: # DEBUG BEGIN_STMT pcOriginalReadPosition_55 = MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom; # DEBUG pcOriginalReadPosition => pcOriginalReadPosition_55 # DEBUG BEGIN_STMT prvCopyDataFromQueue (xQueue_26(D), pvBuffer_27(D)); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_26(D)].u.xQueue.pcReadFrom = pcOriginalReadPosition_55; # DEBUG BEGIN_STMT _4 ={v} MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive.uxNumberOfItems; if (_4 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 19602]: # DEBUG BEGIN_STMT _5 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive; _6 = xTaskRemoveFromEventList (_5); if (_6 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 9801]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT [local count: 59399]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1563516]: # DEBUG BEGIN_STMT xTicksToWait.25_7 = xTicksToWait; if (xTicksToWait.25_7 == 0) goto ; [3.66%] else goto ; [96.34%] [local count: 57225]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1506292]: # DEBUG BEGIN_STMT if (xEntryTimeSet_16 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 497076]: # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 1 [local count: 1506292]: # xEntryTimeSet_17 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_17 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _8 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cRxLock; if (_8 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 512139]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_26(D)].cRxLock ={v} 0; [local count: 1506292]: # DEBUG BEGIN_STMT _9 ={v} MEM[(struct Queue_t *)xQueue_26(D)].cTxLock; if (_9 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 512139]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_26(D)].cTxLock ={v} 0; [local count: 1506292]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _10 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_10 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 753146]: # DEBUG BEGIN_STMT _11 = prvIsQueueEmpty (xQueue_26(D)); if (_11 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 376573]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _12 = &MEM[(struct Queue_t *)xQueue_26(D)].xTasksWaitingToReceive; xTicksToWait.26_13 = xTicksToWait; vTaskPlaceOnEventList (_12, xTicksToWait.26_13); # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_26(D)); # DEBUG BEGIN_STMT _14 = xTaskResumeAll (); if (_14 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 188286]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 376573]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_26(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [100.00%] [local count: 753146]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_26(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _15 = prvIsQueueEmpty (xQueue_26(D)); if (_15 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 144189]: # _18 = PHI <1(19), 0(21), 0(33)> xTimeOut ={v} {CLOBBER}; return _18; } xQueueSemaphoreTake (struct QueueDefinition * xQueue, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; UBaseType_t uxHighestWaitingPriority; const UBaseType_t uxSemaphoreCount; BaseType_t xInheritanceOccurred; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.19_3; long unsigned int _4; int8_t * _5; struct tskTaskControlBlock * _6; long unsigned int _7; struct List_t * _8; long int _9; long unsigned int xTicksToWait.20_10; signed char _11; signed char _12; long int _13; long int _14; int8_t * _15; struct tskTaskControlBlock * _16; struct List_t * _17; long unsigned int xTicksToWait.21_18; long int _19; long int _20; struct tskTaskControlBlock * _21; BaseType_t _27; [local count: 228942]: # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_38(D) # DEBUG BEGIN_STMT # DEBUG xInheritanceOccurred => 0 # DEBUG BEGIN_STMT if (xQueue_38(D) == 0B) goto ; [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_88 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_88 [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 _1 = MEM[(struct Queue_t *)xQueue_38(D)].uxItemSize; if (_1 != 0) goto ; [67.00%] else goto ; [33.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_89 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_89 [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 _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 26443]: xTicksToWait.19_3 = xTicksToWait; if (xTicksToWait.19_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 39664]: # xEntryTimeSet_40 = PHI <0(9), 0(8)> # xInheritanceOccurred_64 = PHI <0(9), 0(8)> goto ; [100.00%] [local count: 13221]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_90 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_90 [local count: 132214478]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 132214478]: goto ; [100.00%] [local count: 406777]: # xEntryTimeSet_48 = PHI # xInheritanceOccurred_39 = PHI [local count: 446442]: # xEntryTimeSet_22 = PHI # xInheritanceOccurred_24 = PHI # DEBUG xInheritanceOccurred => xInheritanceOccurred_24 # DEBUG xEntryTimeSet => xEntryTimeSet_22 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxSemaphoreCount_46 ={v} MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting; # DEBUG uxSemaphoreCount => uxSemaphoreCount_46 # DEBUG BEGIN_STMT if (uxSemaphoreCount_46 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 16340]: # uxSemaphoreCount_26 = PHI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxSemaphoreCount_26 + 4294967295; MEM[(struct Queue_t *)xQueue_38(D)].uxMessagesWaiting ={v} _4; # DEBUG BEGIN_STMT _5 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead; if (_5 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 2848]: # DEBUG BEGIN_STMT _6 = pvTaskIncrementMutexHeldCount (); MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder = _6; [local count: 16340]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _7 ={v} MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend.uxNumberOfItems; if (_7 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 5392]: # DEBUG BEGIN_STMT _8 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToSend; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 2696]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT [local count: 16340]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 430102]: # DEBUG BEGIN_STMT xTicksToWait.20_10 = xTicksToWait; if (xTicksToWait.20_10 == 0) goto ; [3.66%] else goto ; [96.34%] [local count: 15742]: # xInheritanceOccurred_43 = PHI # DEBUG BEGIN_STMT if (xInheritanceOccurred_43 != 0) goto ; [79.76%] else goto ; [20.24%] [local count: 12556]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_91 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_91 [local count: 125556217]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 125556217]: goto ; [100.00%] [local count: 3186]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 414360]: # DEBUG BEGIN_STMT if (xEntryTimeSet_22 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 136739]: # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 1 [local count: 414360]: # xEntryTimeSet_23 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_23 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _11 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cRxLock; if (_11 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 140882]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_38(D)].cRxLock ={v} 0; [local count: 414360]: # DEBUG BEGIN_STMT _12 ={v} MEM[(struct Queue_t *)xQueue_38(D)].cTxLock; if (_12 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 140882]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_38(D)].cTxLock ={v} 0; [local count: 414360]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_13 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 207180]: # DEBUG BEGIN_STMT _14 = prvIsQueueEmpty (xQueue_38(D)); if (_14 != 0) goto ; [67.00%] else goto ; [33.00%] [local count: 138811]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _15 = MEM[(struct Queue_t *)xQueue_38(D)].pcHead; if (_15 == 0B) goto ; [17.43%] else goto ; [82.57%] [local count: 24195]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _16 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder; xInheritanceOccurred_70 = xTaskPriorityInherit (_16); # DEBUG xInheritanceOccurred => xInheritanceOccurred_70 # DEBUG BEGIN_STMT vPortExitCritical (); [local count: 138811]: # xInheritanceOccurred_25 = PHI # DEBUG xInheritanceOccurred => xInheritanceOccurred_25 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _17 = &MEM[(struct Queue_t *)xQueue_38(D)].xTasksWaitingToReceive; xTicksToWait.21_18 = xTicksToWait; vTaskPlaceOnEventList (_17, xTicksToWait.21_18); # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_38(D)); # DEBUG BEGIN_STMT _19 = xTaskResumeAll (); if (_19 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 69405]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 68369]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_38(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [100.00%] [local count: 207180]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_38(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _20 = prvIsQueueEmpty (xQueue_38(D)); if (_20 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 7583]: # xInheritanceOccurred_44 = PHI # DEBUG BEGIN_STMT if (xInheritanceOccurred_44 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 2502]: # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT uxHighestWaitingPriority_61 = prvGetDisinheritPriorityAfterTimeout (xQueue_38(D)); # DEBUG uxHighestWaitingPriority => uxHighestWaitingPriority_61 # DEBUG BEGIN_STMT _21 = MEM[(struct Queue_t *)xQueue_38(D)].u.xSemaphore.xMutexHolder; vTaskPriorityDisinheritAfterTimeout (_21, uxHighestWaitingPriority_61); # DEBUG BEGIN_STMT vPortExitCritical (); [local count: 7583]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 27109]: # _27 = PHI <1(20), 0(25), 0(42)> xTimeOut ={v} {CLOBBER}; return _27; } xQueueReceive (struct QueueDefinition * xQueue, void * const pvBuffer, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxMessagesWaiting; struct TimeOut_t xTimeOut; BaseType_t xEntryTimeSet; long unsigned int _1; long int _2; long unsigned int xTicksToWait.15_3; long unsigned int _4; long unsigned int _5; struct List_t * _6; long int _7; long unsigned int xTicksToWait.16_8; signed char _9; signed char _10; long int _11; long int _12; struct List_t * _13; long unsigned int xTicksToWait.17_14; long int _15; long int _16; BaseType_t _19; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_27(D) # DEBUG BEGIN_STMT if (xQueue_27(D) == 0B) goto ; [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_65 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_65 [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 if (pvBuffer_28(D) != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 116576]: _1 = MEM[(struct Queue_t *)xQueue_27(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 58288]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_66 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_66 [local count: 582880751]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 582880751]: goto ; [100.00%] [local count: 192251]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = xTaskGetSchedulerState (); if (_2 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 144189]: # xEntryTimeSet_32 = PHI <0(9), 0(11)> goto ; [100.00%] [local count: 96126]: xTicksToWait.15_3 = xTicksToWait; if (xTicksToWait.15_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 48063]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_67 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_67 [local count: 480629211]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 480629211]: goto ; [100.00%] [local count: 1478726]: # xEntryTimeSet_46 = PHI [local count: 1622915]: # xEntryTimeSet_17 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_17 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT uxMessagesWaiting_34 ={v} MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_34 # DEBUG BEGIN_STMT if (uxMessagesWaiting_34 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 59399]: # uxMessagesWaiting_31 = PHI # DEBUG BEGIN_STMT prvCopyDataFromQueue (xQueue_27(D), pvBuffer_28(D)); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _4 = uxMessagesWaiting_31 + 4294967295; MEM[(struct Queue_t *)xQueue_27(D)].uxMessagesWaiting ={v} _4; # DEBUG BEGIN_STMT _5 ={v} MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend.uxNumberOfItems; if (_5 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 19602]: # DEBUG BEGIN_STMT _6 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToSend; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 9801]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT [local count: 59399]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1563516]: # DEBUG BEGIN_STMT xTicksToWait.16_8 = xTicksToWait; if (xTicksToWait.16_8 == 0) goto ; [3.66%] else goto ; [96.34%] [local count: 57225]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 1506292]: # DEBUG BEGIN_STMT if (xEntryTimeSet_17 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 497076]: # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 1 [local count: 1506292]: # xEntryTimeSet_18 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_18 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _9 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cRxLock; if (_9 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 512139]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_27(D)].cRxLock ={v} 0; [local count: 1506292]: # DEBUG BEGIN_STMT _10 ={v} MEM[(struct Queue_t *)xQueue_27(D)].cTxLock; if (_10 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 512139]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_27(D)].cTxLock ={v} 0; [local count: 1506292]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _11 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_11 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 753146]: # DEBUG BEGIN_STMT _12 = prvIsQueueEmpty (xQueue_27(D)); if (_12 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 376573]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _13 = &MEM[(struct Queue_t *)xQueue_27(D)].xTasksWaitingToReceive; xTicksToWait.17_14 = xTicksToWait; vTaskPlaceOnEventList (_13, xTicksToWait.17_14); # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_27(D)); # DEBUG BEGIN_STMT _15 = xTaskResumeAll (); if (_15 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 188286]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 376573]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_27(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [100.00%] [local count: 753146]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_27(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT _16 = prvIsQueueEmpty (xQueue_27(D)); if (_16 != 0) goto ; [3.66%] else goto ; [96.34%] [local count: 144189]: # _19 = PHI <1(19), 0(21), 0(33)> xTimeOut ={v} {CLOBBER}; return _19; } xQueueGiveFromISR (struct QueueDefinition * xQueue, BaseType_t * const pxHigherPriorityTaskWoken) { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const int8_t cTxLock; const UBaseType_t uxMessagesWaiting; BaseType_t xReturn; long unsigned int _1; int8_t * _2; struct tskTaskControlBlock * _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; struct List_t * _7; long int _8; unsigned char cTxLock.12_9; unsigned char _10; signed char _11; [local count: 306783]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_14(D) # DEBUG BEGIN_STMT if (xQueue_14(D) == 0B) goto ; [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_24 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_24 [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 _1 = MEM[(struct Queue_t *)xQueue_14(D)].uxItemSize; 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_25 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_25 [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 Queue_t *)xQueue_14(D)].pcHead; if (_2 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 49961]: _3 = MEM[(struct Queue_t *)xQueue_14(D)].u.xSemaphore.xMutexHolder; if (_3 == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 34973]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_26 [local count: 349728449]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 349728449]: goto ; [100.00%] [local count: 72401]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_27, "=r" ulNewBASEPRI_28 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_28 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_27 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_27 # DEBUG BEGIN_STMT uxMessagesWaiting_17 ={v} MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting; # DEBUG uxMessagesWaiting => uxMessagesWaiting_17 # DEBUG BEGIN_STMT _4 = MEM[(struct Queue_t *)xQueue_14(D)].uxLength; if (_4 > uxMessagesWaiting_17) goto ; [50.00%] else goto ; [50.00%] [local count: 36201]: # DEBUG BEGIN_STMT cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_14(D)].cTxLock; # DEBUG cTxLock => cTxLock_18 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _5 = uxMessagesWaiting_17 + 1; MEM[(struct Queue_t *)xQueue_14(D)].uxMessagesWaiting ={v} _5; # DEBUG BEGIN_STMT if (cTxLock_18 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 12308]: # DEBUG BEGIN_STMT _6 ={v} MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive.uxNumberOfItems; if (_6 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 4062]: # DEBUG BEGIN_STMT _7 = &MEM[(struct Queue_t *)xQueue_14(D)].xTasksWaitingToReceive; _8 = xTaskRemoveFromEventList (_7); if (_8 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 2031]: # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_22(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 1422]: # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_22(D) = 1; goto ; [100.00%] [local count: 23892]: # DEBUG BEGIN_STMT if (cTxLock_18 == 127) goto ; [34.00%] else goto ; [66.00%] [local count: 8123]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_29 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_29 [local count: 81234300]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 81234300]: goto ; [100.00%] [local count: 15769]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.12_9 = (unsigned char) cTxLock_18; _10 = cTxLock.12_9 + 1; _11 = (signed char) _10; MEM[(struct Queue_t *)xQueue_14(D)].cTxLock ={v} _11; [local count: 64278]: # xReturn_12 = PHI <1(21), 0(12), 1(17), 1(15), 1(16), 1(14)> # DEBUG xReturn => xReturn_12 # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_27 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_27 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xReturn_12; } xQueueGenericSendFromISR (struct QueueDefinition * xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition) { uint32_t ulNewBASEPRI; uint32_t ulOriginalBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; const UBaseType_t uxPreviousMessagesWaiting; const int8_t cTxLock; BaseType_t xReturn; long unsigned int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; struct List_t * _6; long int _7; unsigned char cTxLock.10_8; unsigned char _9; signed char _10; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_13(D) # DEBUG BEGIN_STMT if (xQueue_13(D) == 0B) goto ; [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 if (pvItemToQueue_14(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 75162]: _1 = MEM[(struct Queue_t *)xQueue_13(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 37581]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_26 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_26 [local count: 375809639]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 375809639]: goto ; [100.00%] [local count: 212958]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xCopyPosition_16(D) != 2) goto ; [48.88%] else goto ; [51.12%] [local count: 108864]: _2 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength; if (_2 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 71850]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_27 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_27 [local count: 718505940]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 718505940]: goto ; [100.00%] [local count: 141108]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortValidateInterruptPriority (); # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY ulPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mrs %0, basepri mov %1, %2 msr basepri, %1 isb dsb " : "=r" ulOriginalBASEPRI_28, "=r" ulNewBASEPRI_29 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_29 # DEBUG ulOriginalBASEPRI => ulOriginalBASEPRI_28 # DEBUG BEGIN_STMT # DEBUG ulNewBASEPRI => NULL # DEBUG ulOriginalBASEPRI => NULL # DEBUG uxSavedInterruptStatus => ulOriginalBASEPRI_28 # DEBUG BEGIN_STMT _3 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting; _4 = MEM[(struct Queue_t *)xQueue_13(D)].uxLength; if (_3 < _4) goto ; [33.00%] else goto ; [67.00%] [local count: 94542]: if (xCopyPosition_16(D) == 2) goto ; [34.00%] else goto ; [66.00%] [local count: 78710]: # DEBUG BEGIN_STMT cTxLock_18 ={v} MEM[(struct Queue_t *)xQueue_13(D)].cTxLock; # DEBUG cTxLock => cTxLock_18 # DEBUG BEGIN_STMT uxPreviousMessagesWaiting_19 ={v} MEM[(struct Queue_t *)xQueue_13(D)].uxMessagesWaiting; # DEBUG uxPreviousMessagesWaiting => uxPreviousMessagesWaiting_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT prvCopyDataToQueue (xQueue_13(D), pvItemToQueue_14(D), xCopyPosition_16(D)); # DEBUG BEGIN_STMT if (cTxLock_18 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 26761]: # DEBUG BEGIN_STMT _5 ={v} MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive.uxNumberOfItems; if (_5 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 8831]: # DEBUG BEGIN_STMT _6 = &MEM[(struct Queue_t *)xQueue_13(D)].xTasksWaitingToReceive; _7 = xTaskRemoveFromEventList (_6); if (_7 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 4416]: # DEBUG BEGIN_STMT if (pxHigherPriorityTaskWoken_23(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 3091]: # DEBUG BEGIN_STMT *pxHigherPriorityTaskWoken_23(D) = 1; goto ; [100.00%] [local count: 51949]: # DEBUG BEGIN_STMT if (cTxLock_18 == 127) goto ; [34.00%] else goto ; [66.00%] [local count: 17663]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_30 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_30 [local count: 176625587]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 176625587]: goto ; [100.00%] [local count: 34286]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT cTxLock.10_8 = (unsigned char) cTxLock_18; _9 = cTxLock.10_8 + 1; _10 = (signed char) _9; MEM[(struct Queue_t *)xQueue_13(D)].cTxLock ={v} _10; [local count: 123445]: # xReturn_11 = PHI <1(23), 0(14), 1(19), 1(17), 1(18), 1(16)> # DEBUG xReturn => xReturn_11 # DEBUG BEGIN_STMT # DEBUG ulNewMaskValue => ulOriginalBASEPRI_28 # DEBUG INLINE_ENTRY vPortSetBASEPRI # DEBUG BEGIN_STMT __asm__ __volatile__(" msr basepri, %0 " : : "r" ulOriginalBASEPRI_28 : "memory"); # DEBUG ulNewMaskValue => NULL # DEBUG BEGIN_STMT return xReturn_11; } xQueueGenericSend (struct QueueDefinition * xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition) { uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; struct TimeOut_t xTimeOut; BaseType_t xYieldRequired; BaseType_t xEntryTimeSet; long unsigned int _1; long unsigned int _2; long int _3; long unsigned int xTicksToWait.3_4; long unsigned int _5; long unsigned int _6; long unsigned int _7; struct List_t * _8; long int _9; long unsigned int xTicksToWait.4_10; signed char _11; signed char _12; long int _13; long int _14; struct List_t * _15; long unsigned int xTicksToWait.5_16; long int _17; BaseType_t _21; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_29(D) # DEBUG BEGIN_STMT if (xQueue_29(D) == 0B) goto ; [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_67 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_67 [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 if (pvItemToQueue_30(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 75162]: _1 = MEM[(struct Queue_t *)xQueue_29(D)].uxItemSize; if (_1 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 37581]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_68 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_68 [local count: 375809639]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 375809639]: goto ; [100.00%] [local count: 212958]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xCopyPosition_32(D) != 2) goto ; [48.88%] else goto ; [51.12%] [local count: 108864]: _2 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength; if (_2 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 71850]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_69 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_69 [local count: 718505940]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 718505940]: goto ; [100.00%] [local count: 141108]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = xTaskGetSchedulerState (); if (_3 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 105831]: # xEntryTimeSet_36 = PHI <0(13), 0(15)> goto ; [100.00%] [local count: 70554]: xTicksToWait.3_4 = xTicksToWait; if (xTicksToWait.3_4 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 35277]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_70 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_70 [local count: 352770504]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 352770504]: goto ; [100.00%] [local count: 896877]: # xEntryTimeSet_18 = PHI [local count: 1002708]: # xEntryTimeSet_19 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_19 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _5 ={v} MEM[(struct Queue_t *)xQueue_29(D)].uxMessagesWaiting; _6 = MEM[(struct Queue_t *)xQueue_29(D)].uxLength; if (_5 < _6) goto ; [2.75%] else goto ; [97.25%] [local count: 975134]: if (xCopyPosition_32(D) == 2) goto ; [2.75%] else goto ; [97.25%] [local count: 54391]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xYieldRequired_57 = prvCopyDataToQueue (xQueue_29(D), pvItemToQueue_30(D), xCopyPosition_32(D)); # DEBUG xYieldRequired => xYieldRequired_57 # DEBUG BEGIN_STMT _7 ={v} MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive.uxNumberOfItems; if (_7 != 0) goto ; [33.00%] else goto ; [67.00%] [local count: 17949]: # DEBUG BEGIN_STMT _8 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToReceive; _9 = xTaskRemoveFromEventList (_8); if (_9 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 8974]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 36442]: # DEBUG BEGIN_STMT if (xYieldRequired_57 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 18221]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); # DEBUG BEGIN_STMT [local count: 54391]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 948318]: # DEBUG BEGIN_STMT xTicksToWait.4_10 = xTicksToWait; if (xTicksToWait.4_10 == 0) goto ; [2.75%] else goto ; [97.25%] [local count: 26079]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 922239]: # DEBUG BEGIN_STMT if (xEntryTimeSet_19 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 304339]: # DEBUG BEGIN_STMT vTaskInternalSetTimeOutState (&xTimeOut); # DEBUG BEGIN_STMT # DEBUG xEntryTimeSet => 1 [local count: 922239]: # xEntryTimeSet_20 = PHI # DEBUG xEntryTimeSet => xEntryTimeSet_20 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT vTaskSuspendAll (); # DEBUG BEGIN_STMT vPortEnterCritical (); # DEBUG BEGIN_STMT _11 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cRxLock; if (_11 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 313561]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_29(D)].cRxLock ={v} 0; [local count: 922239]: # DEBUG BEGIN_STMT _12 ={v} MEM[(struct Queue_t *)xQueue_29(D)].cTxLock; if (_12 == -1) goto ; [34.00%] else goto ; [66.00%] [local count: 313561]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xQueue_29(D)].cTxLock ={v} 0; [local count: 922239]: # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT _13 = xTaskCheckForTimeOut (&xTimeOut, &xTicksToWait); if (_13 == 0) goto ; [97.25%] else goto ; [2.75%] [local count: 896877]: # DEBUG BEGIN_STMT _14 = prvIsQueueFull (xQueue_29(D)); if (_14 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 448439]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _15 = &MEM[(struct Queue_t *)xQueue_29(D)].xTasksWaitingToSend; xTicksToWait.5_16 = xTicksToWait; vTaskPlaceOnEventList (_15, xTicksToWait.5_16); # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_29(D)); # DEBUG BEGIN_STMT _17 = xTaskResumeAll (); if (_17 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 224219]: # DEBUG BEGIN_STMT MEM[(volatile uint32_t *)3758157060B] ={v} 268435456; # DEBUG BEGIN_STMT __asm__ __volatile__("dsb" : : : "memory"); # DEBUG BEGIN_STMT __asm__ __volatile__("isb"); goto ; [100.00%] [local count: 448439]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_29(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); goto ; [100.00%] [local count: 25362]: # DEBUG BEGIN_STMT prvUnlockQueue (xQueue_29(D)); # DEBUG BEGIN_STMT xTaskResumeAll (); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 105831]: # _21 = PHI <1(26), 0(28), 0(40)> xTimeOut ={v} {CLOBBER}; return _21; } xQueueCreateCountingSemaphore (const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount) { uint32_t ulNewBASEPRI; struct QueueDefinition * xHandle; [local count: 128592]: # DEBUG BEGIN_STMT # DEBUG xHandle => 0B # DEBUG BEGIN_STMT if (uxMaxCount_2(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 64296]: if (uxMaxCount_2(D) >= uxInitialCount_3(D)) goto ; [33.00%] else goto ; [67.00%] [local count: 21218]: # DEBUG BEGIN_STMT xHandle_6 = xQueueGenericCreate (uxMaxCount_2(D), 0, 2); # DEBUG xHandle => xHandle_6 # DEBUG BEGIN_STMT if (xHandle_6 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 14852]: # DEBUG BEGIN_STMT MEM[(struct Queue_t *)xHandle_6].uxMessagesWaiting ={v} uxInitialCount_3(D); # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_8 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_8 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 21218]: # DEBUG xHandle => xHandle_6 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xHandle_6; } xQueueTakeMutexRecursive (struct QueueDefinition * xMutex, TickType_t xTicksToWait) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct tskTaskControlBlock * _1; struct tskTaskControlBlock * _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxMutex => xMutex_9(D) # DEBUG BEGIN_STMT if (xMutex_9(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_17 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_17 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [46.53%] else goto ; [53.47%] [local count: 57413]: # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 1; MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT # DEBUG xReturn => 1 goto ; [100.00%] [local count: 65976]: # DEBUG BEGIN_STMT xReturn_14 = xQueueSemaphoreTake (xMutex_9(D), xTicksToWait_12(D)); # DEBUG xReturn => xReturn_14 # DEBUG BEGIN_STMT if (xReturn_14 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 32988]: # DEBUG BEGIN_STMT _5 = MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount; _6 = _5 + 1; MEM[(struct Queue_t *)xMutex_9(D)].u.xSemaphore.uxRecursiveCallCount = _6; [local count: 123389]: # xReturn_7 = PHI <1(6), xReturn_14(7), xReturn_14(8)> # DEBUG xReturn => xReturn_7 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_7; } xQueueGiveMutexRecursive (struct QueueDefinition * xMutex) { uint32_t ulNewBASEPRI; BaseType_t xReturn; struct tskTaskControlBlock * _1; struct tskTaskControlBlock * _2; long unsigned int _3; long unsigned int _4; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxMutex => xMutex_7(D) # DEBUG BEGIN_STMT if (xMutex_7(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_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: 123389]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.xMutexHolder; _2 = xTaskGetCurrentTaskHandle (); if (_1 == _2) goto ; [30.00%] else goto ; [70.00%] [local count: 37017]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _3 = MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount; _4 = _3 + 4294967295; MEM[(struct Queue_t *)xMutex_7(D)].u.xSemaphore.uxRecursiveCallCount = _4; # DEBUG BEGIN_STMT if (_4 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 12216]: # DEBUG BEGIN_STMT xQueueGenericSend (xMutex_7(D), 0B, 0, 0); [local count: 123389]: # xReturn_5 = PHI <1(7), 0(5), 1(6)> # DEBUG xReturn => xReturn_5 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return xReturn_5; } xQueueGetMutexHolderFromISR (struct QueueDefinition * xSemaphore) { uint32_t ulNewBASEPRI; struct tskTaskControlBlock * pxReturn; int8_t * _1; [local count: 357913]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (xSemaphore_3(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_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 _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead; if (_1 == 0B) goto ; [51.20%] else goto ; [48.80%] [local count: 128276]: # DEBUG BEGIN_STMT pxReturn_5 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder; # DEBUG pxReturn => pxReturn_5 [local count: 250539]: # pxReturn_2 = PHI # DEBUG pxReturn => pxReturn_2 # DEBUG BEGIN_STMT return pxReturn_2; } xQueueGetMutexHolder (struct QueueDefinition * xSemaphore) { uint32_t ulNewBASEPRI; struct tskTaskControlBlock * pxReturn; int8_t * _1; [local count: 230763]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pxSemaphore => xSemaphore_3(D) # DEBUG BEGIN_STMT if (xSemaphore_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 vPortEnterCritical (); # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xSemaphore_3(D)].pcHead; if (_1 == 0B) goto ; [51.20%] else goto ; [48.80%] [local count: 63175]: # DEBUG BEGIN_STMT pxReturn_6 = MEM[(struct Queue_t *)xSemaphore_3(D)].u.xSemaphore.xMutexHolder; # DEBUG pxReturn => pxReturn_6 [local count: 123389]: # pxReturn_2 = PHI # DEBUG pxReturn => pxReturn_2 # DEBUG BEGIN_STMT vPortExitCritical (); # DEBUG BEGIN_STMT return pxReturn_2; } xQueueCreateMutex (const uint8_t ucQueueType) { struct QueueDefinition * xNewQueue; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG uxMutexLength => 1 # DEBUG uxMutexSize => 0 # DEBUG BEGIN_STMT xNewQueue_4 = xQueueGenericCreate (1, 0, ucQueueType_2(D)); # DEBUG xNewQueue => xNewQueue_4 # DEBUG BEGIN_STMT prvInitialiseMutex (xNewQueue_4); # DEBUG BEGIN_STMT return xNewQueue_4; } prvInitialiseMutex (struct Queue_t * pxNewQueue) { [local count: 1073741824]: # DEBUG BEGIN_STMT if (pxNewQueue_2(D) != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 574129754]: # DEBUG BEGIN_STMT pxNewQueue_2(D)->u.xSemaphore.xMutexHolder = 0B; # DEBUG BEGIN_STMT pxNewQueue_2(D)->pcHead = 0B; # DEBUG BEGIN_STMT pxNewQueue_2(D)->u.xSemaphore.uxRecursiveCallCount = 0; # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT xQueueGenericSend (pxNewQueue_2(D), 0B, 0, 0); [local count: 1073741824]: # DEBUG BEGIN_STMT return; } prvInitialiseNewQueue (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t * pucQueueStorage, const uint8_t ucQueueType, struct Queue_t * pxNewQueue) { [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxItemSize_2(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT pxNewQueue_4(D)->pcHead = pxNewQueue_4(D); goto ; [100.00%] [local count: 536870913]: # DEBUG BEGIN_STMT pxNewQueue_4(D)->pcHead = pucQueueStorage_5(D); [local count: 1073741824]: # DEBUG BEGIN_STMT pxNewQueue_4(D)->uxLength = uxQueueLength_8(D); # DEBUG BEGIN_STMT pxNewQueue_4(D)->uxItemSize = uxItemSize_2(D); # DEBUG BEGIN_STMT xQueueGenericReset (pxNewQueue_4(D), 1); # DEBUG BEGIN_STMT pxNewQueue_4(D)->ucQueueType = ucQueueType_12(D); # DEBUG BEGIN_STMT return; } xQueueGenericCreate (const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType) { uint32_t ulNewBASEPRI; uint8_t * pucQueueStorage; struct Queue_t * pxNewQueue; __complex__ long unsigned int _1; long unsigned int _2; long unsigned int _3; unsigned int _4; [local count: 117029]: # DEBUG BEGIN_STMT # DEBUG pxNewQueue => 0B # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (uxQueueLength_6(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 58514]: _1 = .MUL_OVERFLOW (uxItemSize_7(D), uxQueueLength_6(D)); _2 = IMAGPART_EXPR <_1>; if (_2 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 29257]: _3 = uxQueueLength_6(D) * uxItemSize_7(D); if (_3 <= 4294967215) goto ; [33.00%] else goto ; [67.00%] [local count: 9655]: # DEBUG BEGIN_STMT # DEBUG xQueueSizeInBytes => _3 # DEBUG BEGIN_STMT _4 = _3 + 80; pxNewQueue_10 = pvPortMalloc (_4); # DEBUG pxNewQueue => pxNewQueue_10 # DEBUG BEGIN_STMT if (pxNewQueue_10 != 0B) goto ; [53.47%] else goto ; [46.53%] [local count: 5162]: # DEBUG BEGIN_STMT # DEBUG pucQueueStorage => pxNewQueue_10 # DEBUG BEGIN_STMT pucQueueStorage_11 = pxNewQueue_10 + 80; # DEBUG pucQueueStorage => pucQueueStorage_11 # DEBUG BEGIN_STMT prvInitialiseNewQueue (uxQueueLength_6(D), uxItemSize_7(D), pucQueueStorage_11, ucQueueType_12(D), pxNewQueue_10); goto ; [100.00%] [local count: 107374]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_14 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_14 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] [local count: 9655]: # DEBUG pxNewQueue => pxNewQueue_10 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return pxNewQueue_10; } xQueueGenericReset (struct QueueDefinition * xQueue, BaseType_t xNewQueue) { BaseType_t D.7333; uint32_t ulNewBASEPRI; uint32_t ulNewBASEPRI; long unsigned int _1; __complex__ long unsigned int _2; long unsigned int _3; long unsigned int _4; [local count: 183702]: # DEBUG BEGIN_STMT # DEBUG xReturn => 1 # DEBUG BEGIN_STMT # DEBUG pxQueue => xQueue_5(D) # DEBUG BEGIN_STMT if (xQueue_5(D) == 0B) goto ; [30.00%] else goto ; [70.00%] [local count: 55111]: # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_9 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_9 [local count: 551107865]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 551107865]: goto ; [100.00%] [local count: 128592]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = MEM[(struct Queue_t *)xQueue_5(D)].uxLength; if (_1 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 64296]: _3 = MEM[(struct Queue_t *)xQueue_5(D)].uxItemSize; _2 = .MUL_OVERFLOW (_3, _1); _4 = IMAGPART_EXPR <_2>; if (_4 == 0) goto ; [33.00%] else goto ; [67.00%] [local count: 21218]: _13 = xQueueGenericReset.part.0 (xQueue_5(D), xNewQueue_7(D)); return _13; [local count: 107374]: # DEBUG xReturn => NULL # DEBUG BEGIN_STMT # DEBUG INLINE_ENTRY vPortRaiseBASEPRI # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT __asm__ __volatile__(" mov %0, %1 msr basepri, %0 isb dsb " : "=r" ulNewBASEPRI_10 : "i" 16 : "memory"); # DEBUG ulNewBASEPRI => ulNewBASEPRI_10 [local count: 1073741824]: # DEBUG ulNewBASEPRI => NULL # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT [local count: 1073741824]: goto ; [100.00%] }