IPA function summary for Siul2_Port_Ip_GetPinConfiguration/16 inlinable global time: 116.141645 self size: 33 global size: 33 min size: 8 self stack: 0 global stack: 0 size:19.500000, time:99.209331 size:5.500000, time:6.616119, executed if:(not inlined) size:3.000000, time:3.000000, nonconst if:(op0 changed) size:1.000000, time:1.000000, nonconst if:(op0 changed || op2 changed) calls: Siul2_Port_Ip_GetMSCRConfiguration/5 function not considered for inlining loop depth: 0 freq:0.49 size: 4 time: 13callee size:18 stack: 0 IPA function summary for Siul2_Port_Ip_RevertPinConfiguration/15 inlinable global time: 85.043468 self size: 20 global size: 20 min size: 4 self stack: 0 global stack: 0 size:10.500000, time:73.456064 size:3.500000, time:2.242931, executed if:(not inlined) size:3.000000, time:3.000000, nonconst if:(op0 changed) size:1.000000, time:1.000000, nonconst if:(op0 changed || op1 changed) array index:(op1 changed) calls: Siul2_Port_Ip_PinInit/4 function not considered for inlining loop depth: 0 freq:0.49 size: 2 time: 11callee size:33 stack: 0 IPA function summary for Siul2_Port_Ip_SetPinDirection/14 inlinable global time: 9.600000 self size: 31 global size: 31 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:10.000000, time:4.000000, nonconst if:(op2 changed) size:1.000000, time:0.200000, executed if:(op2 == 3) && (not inlined) size:2.000000, time:0.400000, executed if:(op2 == 3) size:1.000000, time:0.200000, executed if:(op2 == 2) && (not inlined) size:2.000000, time:0.400000, executed if:(op2 == 2) size:2.000000, time:0.400000, executed if:(op2 == 1) && (not inlined) size:4.000000, time:0.800000, executed if:(op2 == 1) size:2.000000, time:0.400000, executed if:(op2 == 0) && (not inlined) size:4.000000, time:0.800000, executed if:(op2 == 0) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetInputBuffer/13 inlinable global time: 16.880000 self size: 23 global size: 23 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:2.000000, time:1.400000, executed if:(op0 != 0B) && (not inlined) size:4.000000, time:2.800000, executed if:(op0 != 0B) size:2.000000, time:1.400000, executed if:(op0 != 0B), nonconst if:(op2 changed) && (op0 != 0B) size:2.000000, time:2.000000, nonconst if:(op4 changed) size:3.000000, time:1.980000, executed if:(op4 != 16), nonconst if:(op3 changed) && (op4 != 16) size:4.000000, time:2.640000, executed if:(op4 != 16) size:1.000000, time:0.660000, executed if:(op4 != 16), nonconst if:(op4 changed) && (op4 != 16) array index:(op3 changed) && (op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetOutputBuffer/12 inlinable global time: 17.000000 self size: 18 global size: 18 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:8.000000 size:7.000000, time:6.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:1.000000, time:1.000000, nonconst if:(op3 changed) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetPullSel/11 inlinable global time: 8.500000 self size: 21 global size: 21 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:8.000000, time:4.000000, nonconst if:(op2 changed) size:1.000000, time:0.250000, executed if:(op2 == 2) && (not inlined) size:2.000000, time:0.500000, executed if:(op2 == 2) size:1.000000, time:0.250000, executed if:(op2 == 1) && (not inlined) size:2.000000, time:0.500000, executed if:(op2 == 1) size:1.000000, time:0.250000, executed if:(op2 == 0) && (not inlined) size:3.000000, time:0.750000, executed if:(op2 == 0) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_Init/10 inlinable global time: 135.454546 self size: 12 global size: 12 min size: 4 self stack: 0 global stack: 0 size:7.000000, time:44.454546 size:3.000000, time:2.000000, executed if:(not inlined) loop iterations:(op0 changed) calls: Siul2_Port_Ip_PinInit/4 function not considered for inlining loop depth: 1 freq:8.09 size: 2 time: 11callee size:33 stack: 0 IPA function summary for Siul2_Port_Ip_SetGPDO/9 inlinable global time: 5.980000 self size: 8 global size: 8 min size: 0 self stack: 0 global stack: 0 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:2.000000, time:1.320000, executed if:(op2 != 2), nonconst if:(op1 changed) && (op2 != 2) size:1.000000, time:0.660000, executed if:(op2 != 2) calls: IPA function summary for Siul2_Port_Ip_SetIMCR/8 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_ReadMSCR/7 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetMSCR/6 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_GetMSCRConfiguration/5 inlinable global time: 34.000000 self size: 36 global size: 36 min size: 0 self stack: 0 global stack: 0 size:27.500000, time:26.500000 size:8.500000, time:7.500000, executed if:(not inlined) array index:(op2 changed) calls: IPA function summary for Siul2_Port_Ip_PinInit/4 inlinable global time: 72.681444 self size: 66 global size: 66 min size: 0 self stack: 0 global stack: 0 size:13.500000, time:26.425590 size:5.500000, time:5.757854, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 64] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 64] changed) size:3.000000, time:1.980000, executed if:(op0[ref offset: 64] != 2), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 64] != 2) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 128] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 128] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 120] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 120] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 112] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 112] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 96] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 136] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 136] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 88] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 88] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 80] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 80] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed || op0[ref offset: 80] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 72] changed) && (not inlined) size:3.500000, time:3.500000, nonconst if:(op0[ref offset: 72] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed || op0[ref offset: 80] changed || op0[ref offset: 72] changed) size:2.000000, time:1.000000, executed if:(op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 72] == 0) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 480] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) calls: Siul2_Port_Ip_SetGPDO/9 function not considered for inlining loop depth: 0 freq:0.10 size: 4 time: 13callee size: 4 stack: 0 predicate: (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) op0 is compile time invariant Flattening functions: Overall time estimate: 516.281104 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in Siul2_Port_Ip_GetPinConfiguration/16. Enqueueing calls in Siul2_Port_Ip_RevertPinConfiguration/15. Enqueueing calls in Siul2_Port_Ip_SetPinDirection/14. Enqueueing calls in Siul2_Port_Ip_SetInputBuffer/13. Enqueueing calls in Siul2_Port_Ip_SetOutputBuffer/12. Enqueueing calls in Siul2_Port_Ip_SetPullSel/11. Enqueueing calls in Siul2_Port_Ip_Init/10. Enqueueing calls in Siul2_Port_Ip_SetGPDO/9. Enqueueing calls in Siul2_Port_Ip_SetIMCR/8. Enqueueing calls in Siul2_Port_Ip_ReadMSCR/7. Enqueueing calls in Siul2_Port_Ip_SetMSCR/6. Enqueueing calls in Siul2_Port_Ip_GetMSCRConfiguration/5. Enqueueing calls in Siul2_Port_Ip_PinInit/4. Considering Siul2_Port_Ip_GetMSCRConfiguration/5 with 36 size to be inlined into Siul2_Port_Ip_GetPinConfiguration/16 in ../RTD/src/Siul2_Port_Ip.c:814 Estimated badness is -0.232986, frequency 0.49. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 488.840230 weighted by profile: 0.000000 Why inlining failed? --param max-inline-insns-auto limit reached : 1 calls, 0.485861 freq, 0 count call is unlikely and code size would grow : 2 calls, 8.192109 freq, 0 count IPA function summary for Siul2_Port_Ip_GetPinConfiguration/16 inlinable global time: 122.700771 self size: 33 global size: 57 min size: 8 self stack: 0 global stack: 0 size:47.000000, time:112.084652 size:5.500000, time:6.616119, executed if:(not inlined) size:3.000000, time:3.000000, nonconst if:(op0 changed) size:1.000000, time:1.000000, nonconst if:(op0 changed || op2 changed) calls: Siul2_Port_Ip_GetMSCRConfiguration/5 inlined loop depth: 0 freq:0.49 size: 4 time: 13callee size:18 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Siul2_Port_Ip_RevertPinConfiguration/15 inlinable global time: 85.043468 self size: 20 global size: 20 min size: 4 self stack: 0 global stack: 0 size:10.500000, time:73.456064 size:3.500000, time:2.242931, executed if:(not inlined) size:3.000000, time:3.000000, nonconst if:(op0 changed) size:1.000000, time:1.000000, nonconst if:(op0 changed || op1 changed) array index:(op1 changed) calls: Siul2_Port_Ip_PinInit/4 --param max-inline-insns-auto limit reached loop depth: 0 freq:0.49 size: 2 time: 11callee size:33 stack: 0 IPA function summary for Siul2_Port_Ip_SetPinDirection/14 inlinable global time: 9.600000 self size: 31 global size: 31 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:10.000000, time:4.000000, nonconst if:(op2 changed) size:1.000000, time:0.200000, executed if:(op2 == 3) && (not inlined) size:2.000000, time:0.400000, executed if:(op2 == 3) size:1.000000, time:0.200000, executed if:(op2 == 2) && (not inlined) size:2.000000, time:0.400000, executed if:(op2 == 2) size:2.000000, time:0.400000, executed if:(op2 == 1) && (not inlined) size:4.000000, time:0.800000, executed if:(op2 == 1) size:2.000000, time:0.400000, executed if:(op2 == 0) && (not inlined) size:4.000000, time:0.800000, executed if:(op2 == 0) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetInputBuffer/13 inlinable global time: 16.880000 self size: 23 global size: 23 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:2.000000, time:1.400000, executed if:(op0 != 0B) && (not inlined) size:4.000000, time:2.800000, executed if:(op0 != 0B) size:2.000000, time:1.400000, executed if:(op0 != 0B), nonconst if:(op2 changed) && (op0 != 0B) size:2.000000, time:2.000000, nonconst if:(op4 changed) size:3.000000, time:1.980000, executed if:(op4 != 16), nonconst if:(op3 changed) && (op4 != 16) size:4.000000, time:2.640000, executed if:(op4 != 16) size:1.000000, time:0.660000, executed if:(op4 != 16), nonconst if:(op4 changed) && (op4 != 16) array index:(op3 changed) && (op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetOutputBuffer/12 inlinable global time: 17.000000 self size: 18 global size: 18 min size: 0 self stack: 0 global stack: 0 size:8.000000, time:8.000000 size:7.000000, time:6.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:1.000000, time:1.000000, nonconst if:(op3 changed) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetPullSel/11 inlinable global time: 8.500000 self size: 21 global size: 21 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:8.000000, time:4.000000, nonconst if:(op2 changed) size:1.000000, time:0.250000, executed if:(op2 == 2) && (not inlined) size:2.000000, time:0.500000, executed if:(op2 == 2) size:1.000000, time:0.250000, executed if:(op2 == 1) && (not inlined) size:2.000000, time:0.500000, executed if:(op2 == 1) size:1.000000, time:0.250000, executed if:(op2 == 0) && (not inlined) size:3.000000, time:0.750000, executed if:(op2 == 0) array index:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_Init/10 inlinable global time: 135.454546 self size: 12 global size: 12 min size: 4 self stack: 0 global stack: 0 size:7.000000, time:44.454546 size:3.000000, time:2.000000, executed if:(not inlined) loop iterations:(op0 changed) calls: Siul2_Port_Ip_PinInit/4 call is unlikely and code size would grow loop depth: 1 freq:8.09 size: 2 time: 11callee size:33 stack: 0 IPA function summary for Siul2_Port_Ip_SetGPDO/9 inlinable global time: 5.980000 self size: 8 global size: 8 min size: 0 self stack: 0 global stack: 0 estimated growth:1 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:2.000000, time:1.320000, executed if:(op2 != 2), nonconst if:(op1 changed) && (op2 != 2) size:1.000000, time:0.660000, executed if:(op2 != 2) calls: IPA function summary for Siul2_Port_Ip_SetIMCR/8 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_ReadMSCR/7 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_SetMSCR/6 inlinable global time: 5.000000 self size: 6 global size: 6 min size: 0 self stack: 0 global stack: 0 size:1.000000, time:1.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op1 changed) calls: IPA function summary for Siul2_Port_Ip_PinInit/4 inlinable global time: 72.681444 self size: 66 global size: 66 min size: 14 self stack: 0 global stack: 0 estimated growth:40 size:13.500000, time:26.425590 size:5.500000, time:5.757854, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 64] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 64] changed) size:3.000000, time:1.980000, executed if:(op0[ref offset: 64] != 2), nonconst if:(op0[ref offset: 64] changed) && (op0[ref offset: 64] != 2) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 128] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 128] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 120] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 120] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 112] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 112] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 96] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 96] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 136] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 136] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 88] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 88] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 80] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 80] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed || op0[ref offset: 80] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 72] changed) && (not inlined) size:3.500000, time:3.500000, nonconst if:(op0[ref offset: 72] changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 64] changed || op0[ref offset: 128] changed || op0[ref offset: 120] changed || op0[ref offset: 112] changed || op0[ref offset: 96] changed || op0[ref offset: 136] changed || op0[ref offset: 88] changed || op0[ref offset: 80] changed || op0[ref offset: 72] changed) size:2.000000, time:1.000000, executed if:(op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 128] changed) && (op0[ref offset: 72] == 0) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 32] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined), nonconst if:(op0[ref offset: 480] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) && (not inlined) size:0.500000, time:0.050600, executed if:(op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0), nonconst if:(op0[ref offset: 480] changed) && (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) calls: Siul2_Port_Ip_SetGPDO/9 call is unlikely and code size would grow loop depth: 0 freq:0.10 size: 4 time: 13callee size: 4 stack: 0 predicate: (op0[ref offset: 128] == 1) && (op0[ref offset: 72] == 0) op0 is compile time invariant Symbol table: Siul2_Port_Ip_GetPinConfiguration/16 (Siul2_Port_Ip_GetPinConfiguration) @06d5e2a0 Type: function definition analyzed Visibility: externally_visible public References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (inlined) (55807732 (estimated locally),0.49 per call) Siul2_Port_Ip_RevertPinConfiguration/15 (Siul2_Port_Ip_RevertPinConfiguration) @06d5ed20 Type: function definition analyzed Visibility: externally_visible public References: pPort_Setting/2 (read)u32MaxPinConfigured/3 (read) Referring: Availability: available Function flags: count:114863532 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_SetPinDirection/14 (Siul2_Port_Ip_SetPinDirection) @06d5ea80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetInputBuffer/13 (Siul2_Port_Ip_SetInputBuffer) @06d5e620 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetOutputBuffer/12 (Siul2_Port_Ip_SetOutputBuffer) @06d5e1c0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetPullSel/11 (Siul2_Port_Ip_SetPullSel) @06d4fa80 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_Init/10 (Siul2_Port_Ip_Init) @06d4f540 Type: function definition analyzed Visibility: externally_visible public References: pPort_Setting/2 (write)u32MaxPinConfigured/3 (write) Referring: Availability: available Function flags: count:118111600 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_PinInit/4 (955630223 (estimated locally),8.09 per call) Siul2_Port_Ip_SetGPDO/9 (Siul2_Port_Ip_SetGPDO) @06d4fee0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Siul2_Port_Ip_PinInit/4 (35507127 (estimated locally),0.10 per call) Calls: Siul2_Port_Ip_SetIMCR/8 (Siul2_Port_Ip_SetIMCR) @06d4fc40 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_ReadMSCR/7 (Siul2_Port_Ip_ReadMSCR) @06d4f9a0 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_SetMSCR/6 (Siul2_Port_Ip_SetMSCR) @06d4f700 Type: function definition analyzed Visibility: externally_visible public References: Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Siul2_Port_Ip_GetMSCRConfiguration/5 (Siul2_Port_Ip_GetMSCRConfiguration) @06d4f460 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Function Siul2_Port_Ip_GetMSCRConfiguration/5 is inline copy in Siul2_Port_Ip_GetPinConfiguration/16 Availability: local Function flags: count:55807732 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_GetPinConfiguration/16 (inlined) (55807732 (estimated locally),0.49 per call) Calls: Siul2_Port_Ip_PinInit/4 (Siul2_Port_Ip_PinInit) @06d4f1c0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Referring: Availability: local Function flags: count:350860935 (estimated locally) body local optimize_size Called by: Siul2_Port_Ip_RevertPinConfiguration/15 (55807731 (estimated locally),0.49 per call) Siul2_Port_Ip_Init/10 (955630223 (estimated locally),8.09 per call) Calls: Siul2_Port_Ip_SetGPDO/9 (35507127 (estimated locally),0.10 per call) u32MaxPinConfigured/3 (u32MaxPinConfigured) @06d48ee8 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: Siul2_Port_Ip_Init/10 (write)Siul2_Port_Ip_RevertPinConfiguration/15 (read)Siul2_Port_Ip_GetPinConfiguration/16 (read) Availability: available Varpool flags: pPort_Setting/2 (pPort_Setting) @06d48e58 Type: variable definition analyzed Visibility: prevailing_def_ironly References: Referring: Siul2_Port_Ip_Init/10 (write)Siul2_Port_Ip_RevertPinConfiguration/15 (read)Siul2_Port_Ip_GetPinConfiguration/16 (read) Availability: available Varpool flags: ;; Function Siul2_Port_Ip_SetMSCR (Siul2_Port_Ip_SetMSCR, funcdef_no=3, decl_uid=4815, cgraph_uid=4, symbol_order=6) Siul2_Port_Ip_SetMSCR (uint8 SiulInstance, uint16 MscrInstance, uint32 value) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) MscrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076429376; _4 = (volatile uint32 *) _3; *_4 ={v} value_8(D); return; } ;; Function Siul2_Port_Ip_ReadMSCR (Siul2_Port_Ip_ReadMSCR, funcdef_no=4, decl_uid=4826, cgraph_uid=5, symbol_order=7) Siul2_Port_Ip_ReadMSCR (uint8 SiulInstance, uint16 MscrInstance) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; uint32 _8; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) MscrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076429376; _4 = (volatile uint32 *) _3; _8 ={v} *_4; return _8; } ;; Function Siul2_Port_Ip_SetIMCR (Siul2_Port_Ip_SetIMCR, funcdef_no=5, decl_uid=4819, cgraph_uid=6, symbol_order=8) Siul2_Port_Ip_SetIMCR (uint8 SiulInstance, uint16 ImcrInstance, uint32 value) { long unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint32 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT _1 = (long unsigned int) ImcrInstance_6(D); _2 = _1 << 2; _3 = _2 + 1076431424; _4 = (volatile uint32 *) _3; *_4 ={v} value_8(D); return; } ;; Function Siul2_Port_Ip_SetGPDO (Siul2_Port_Ip_SetGPDO, funcdef_no=6, decl_uid=4823, cgraph_uid=7, symbol_order=9) Siul2_Port_Ip_SetGPDO (uint8 SiulInstance, uint16 GpdoInstance, uint8 value) { short unsigned int _1; long unsigned int _2; long unsigned int _3; volatile uint8 * _4; [local count: 1073741824]: # DEBUG BEGIN_STMT if (value_6(D) != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 708669605]: # DEBUG BEGIN_STMT _1 = GpdoInstance_9(D) ^ 3; _2 = (long unsigned int) _1; _3 = _2 + 1076433664; _4 = (volatile uint8 *) _3; *_4 ={v} value_6(D); [local count: 1073741824]: return; } ;; Function Siul2_Port_Ip_PinInit (Siul2_Port_Ip_PinInit, funcdef_no=1, decl_uid=4869, cgraph_uid=2, symbol_order=4) Siul2_Port_Ip_PinInit (const struct Siul2_Port_Ip_PinSettingsConfig * config) { uint32 imcrRegIdx; uint8 inputMuxIterator; uint32 pinsValues; _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; _5; long unsigned int _6; long unsigned int _7; long unsigned int _8; _9; long unsigned int _10; long unsigned int _11; long unsigned int _12; _13; long unsigned int _14; long unsigned int _15; long unsigned int _16; _17; long unsigned int _18; long unsigned int _19; long unsigned int _20; _21; long unsigned int _22; long unsigned int _23; long unsigned int _24; _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; _29; long unsigned int _30; long unsigned int _31; long unsigned int _32; _33; long unsigned int _34; long unsigned int _35; short unsigned int _36; unsigned char _37; struct SIUL2_Type * _38; long unsigned int _39; _40; int _41; _42; long unsigned int _43; long unsigned int _44; _51; _52; [local count: 350860935]: # DEBUG BEGIN_STMT # DEBUG pinsValues => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG siulInstance => 0 # DEBUG BEGIN_STMT # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG siulInstance => 0 # DEBUG BEGIN_STMT _1 = config_54(D)->pullConfig; if (_1 != 2) goto ; [66.00%] else goto ; [34.00%] [local count: 231568217]: # DEBUG BEGIN_STMT # DEBUG pinsValues => 8192 # DEBUG BEGIN_STMT _2 = (long unsigned int) _1; _3 = _2 << 11; _4 = _3 & 2048; pinsValues_55 = _4 | 8192; # DEBUG pinsValues => pinsValues_55 [local count: 350860935]: # pinsValues_45 = PHI <0(2), pinsValues_55(3)> # DEBUG pinsValues => pinsValues_45 # DEBUG BEGIN_STMT _5 = config_54(D)->outputBuffer; _6 = (long unsigned int) _5; _7 = _6 << 21; _8 = _7 & 2097152; pinsValues_56 = _8 | pinsValues_45; # DEBUG pinsValues => pinsValues_56 # DEBUG BEGIN_STMT _9 = config_54(D)->invert; _10 = (long unsigned int) _9; _11 = _10 << 17; _12 = _11 & 131072; pinsValues_57 = _12 | pinsValues_56; # DEBUG pinsValues => pinsValues_57 # DEBUG BEGIN_STMT _13 = config_54(D)->pullKeep; _14 = (long unsigned int) _13; _15 = _14 << 16; _16 = _15 & 65536; pinsValues_58 = _16 | pinsValues_57; # DEBUG pinsValues => pinsValues_58 # DEBUG BEGIN_STMT _17 = config_54(D)->driveStrength; _18 = (long unsigned int) _17; _19 = _18 << 8; _20 = _19 & 256; pinsValues_59 = _20 | pinsValues_58; # DEBUG pinsValues => pinsValues_59 # DEBUG BEGIN_STMT _21 = config_54(D)->inputBuffer; _22 = (long unsigned int) _21; _23 = _22 << 19; _24 = _23 & 524288; pinsValues_60 = _24 | pinsValues_59; # DEBUG pinsValues => pinsValues_60 # DEBUG BEGIN_STMT _25 = config_54(D)->slewRateCtrlSel; _26 = (long unsigned int) _25; _27 = _26 << 14; _28 = _27 & 16384; pinsValues_61 = _28 | pinsValues_60; # DEBUG pinsValues => pinsValues_61 # DEBUG BEGIN_STMT _29 = config_54(D)->safeMode; _30 = (long unsigned int) _29; _31 = _30 << 5; _32 = _31 & 32; pinsValues_62 = _32 | pinsValues_61; # DEBUG pinsValues => pinsValues_62 # DEBUG BEGIN_STMT _33 = config_54(D)->mux; _51 = _33 & 7; _34 = (long unsigned int) _51; pinsValues_63 = _34 | pinsValues_62; # DEBUG pinsValues => pinsValues_63 # DEBUG BEGIN_STMT if (_33 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 175430467]: if (_5 == 1) goto ; [20.24%] else goto ; [79.76%] [local count: 35507127]: # DEBUG BEGIN_STMT _35 = config_54(D)->pinPortIdx; _36 = (short unsigned int) _35; _37 = config_54(D)->initValue; Siul2_Port_Ip_SetGPDO (0, _36, _37); [local count: 350860935]: # DEBUG BEGIN_STMT _38 = config_54(D)->base; _39 = config_54(D)->pinPortIdx; _38->MSCR[_39] ={v} pinsValues_63; # DEBUG BEGIN_STMT _40 = config_54(D)->inputBuffer; if (_40 == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 119292718]: goto ; [100.00%] [local count: 954449108]: # DEBUG BEGIN_STMT _41 = (int) inputMuxIterator_46; _42 = config_54(D)->inputMux[_41]; if (_42 != 16) goto ; [66.00%] else goto ; [34.00%] [local count: 629936411]: # DEBUG BEGIN_STMT imcrRegIdx_66 = config_54(D)->inputMuxReg[_41]; # DEBUG imcrRegIdx => imcrRegIdx_66 # DEBUG BEGIN_STMT # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT _43 = imcrRegIdx_66 & 511; _52 = _42 & 15; _44 = (long unsigned int) _52; MEM[(struct SIUL2_Type *)1076428800B].IMCR[_43] ={v} _44; [local count: 954449108]: # DEBUG imcrBase => 1076428800B # DEBUG BEGIN_STMT inputMuxIterator_68 = inputMuxIterator_46 + 1; # DEBUG inputMuxIterator => inputMuxIterator_68 [local count: 1073741824]: # inputMuxIterator_46 = PHI # DEBUG imcrBase => 1076428800B # DEBUG inputMuxIterator => inputMuxIterator_46 # DEBUG BEGIN_STMT if (inputMuxIterator_46 != 8) goto ; [88.89%] else goto ; [11.11%] [local count: 350860934]: return; } ;; Function Siul2_Port_Ip_Init (Siul2_Port_Ip_Init, funcdef_no=7, decl_uid=4844, cgraph_uid=8, symbol_order=10) Siul2_Port_Ip_Init (uint32 pinCount, const struct Siul2_Port_Ip_PinSettingsConfig * config) { uint32 i; long unsigned int _1; const struct Siul2_Port_Ip_PinSettingsConfig * _2; [local count: 118111600]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT pPort_Setting = config_6(D); # DEBUG BEGIN_STMT u32MaxPinConfigured = pinCount_8(D); # DEBUG BEGIN_STMT # DEBUG i => 0 goto ; [100.00%] [local count: 955630223]: # DEBUG BEGIN_STMT _1 = i_3 * 64; _2 = config_6(D) + _1; Siul2_Port_Ip_PinInit (_2); # DEBUG BEGIN_STMT i_11 = i_3 + 1; # DEBUG i => i_11 [local count: 1073741824]: # i_3 = PHI <0(2), i_11(3)> # DEBUG i => i_3 # DEBUG BEGIN_STMT if (i_3 < pinCount_8(D)) goto ; [89.00%] else goto ; [11.00%] [local count: 118111601]: # DEBUG BEGIN_STMT return 0; } ;; Function Siul2_Port_Ip_SetPullSel (Siul2_Port_Ip_SetPullSel, funcdef_no=8, decl_uid=4830, cgraph_uid=9, symbol_order=11) Siul2_Port_Ip_SetPullSel (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortPullConfig pullConfig) { uint32 regVal; int _1; long unsigned int _2; long unsigned int _3; int _4; int _5; long unsigned int _18; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG pueVal => 8192 # DEBUG BEGIN_STMT # DEBUG pusVal => 2048 # DEBUG BEGIN_STMT switch (pullConfig_7(D)) [25.00%], case 0: [25.00%], case 1: [25.00%], case 2: [25.00%]> [local count: 268435456]: : # DEBUG BEGIN_STMT _1 = (int) pin_9(D); _2 ={v} base_10(D)->MSCR[_1]; _3 = _2 & 4294959103; base_10(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 268435456]: : # DEBUG BEGIN_STMT _4 = (int) pin_9(D); regVal_15 ={v} base_10(D)->MSCR[_4]; # DEBUG regVal => regVal_15 # DEBUG BEGIN_STMT # DEBUG regVal => regVal_15 | 8192 # DEBUG BEGIN_STMT _18 = regVal_15 & 4294965247; regVal_16 = _18 | 8192; # DEBUG regVal => regVal_16 # DEBUG BEGIN_STMT base_10(D)->MSCR[_4] ={v} regVal_16; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 268435456]: : # DEBUG BEGIN_STMT _5 = (int) pin_9(D); regVal_12 ={v} base_10(D)->MSCR[_5]; # DEBUG regVal => regVal_12 # DEBUG BEGIN_STMT # DEBUG regVal => regVal_12 | 8192 # DEBUG BEGIN_STMT regVal_13 = regVal_12 | 10240; # DEBUG regVal => regVal_13 # DEBUG BEGIN_STMT base_10(D)->MSCR[_5] ={v} regVal_13; # DEBUG BEGIN_STMT [local count: 1073741824]: : return; } ;; Function Siul2_Port_Ip_SetOutputBuffer (Siul2_Port_Ip_SetOutputBuffer, funcdef_no=9, decl_uid=4835, cgraph_uid=10, symbol_order=12) Siul2_Port_Ip_SetOutputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, Siul2_Port_Ip_PortMux mux) { int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _10; long unsigned int iftmp.1_11; _17; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _1 = (int) pin_12(D); _2 ={v} base_14(D)->MSCR[_1]; _3 = _2 & 4292870143; base_14(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_14(D)->MSCR[_1]; if (enable_16(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # iftmp.1_11 = PHI <2097152(2), 0(3)> _5 = _4 | iftmp.1_11; base_14(D)->MSCR[_1] ={v} _5; # DEBUG BEGIN_STMT _6 ={v} base_14(D)->MSCR[_1]; _7 = _6 & 4294967288; base_14(D)->MSCR[_1] ={v} _7; # DEBUG BEGIN_STMT _8 ={v} base_14(D)->MSCR[_1]; _17 = mux_20(D) & 7; _9 = (long unsigned int) _17; _10 = _8 | _9; base_14(D)->MSCR[_1] ={v} _10; return; } ;; Function Siul2_Port_Ip_SetInputBuffer (Siul2_Port_Ip_SetInputBuffer, funcdef_no=10, decl_uid=4841, cgraph_uid=11, symbol_order=13) Siul2_Port_Ip_SetInputBuffer (struct Siul2_Port_Ip_PortType * const base, uint16 pin, boolean enable, uint32 inputMuxReg, Siul2_Port_Ip_PortInputMux inputMux) { uint32 imcrVal; struct SIUL2_Type * siul2Base; int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; long unsigned int _6; long unsigned int _7; long unsigned int iftmp.2_9; _12; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG siul2Base => 4294967295B # DEBUG BEGIN_STMT # DEBUG imcrRegIdx => inputMuxReg_13(D) # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT if (base_14(D) != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 751619278]: # DEBUG BEGIN_STMT _1 = (int) pin_16(D); _2 ={v} base_14(D)->MSCR[_1]; _3 = _2 & 4294443007; base_14(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_14(D)->MSCR[_1]; if (enable_18(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 375809639]: [local count: 751619278]: # iftmp.2_9 = PHI <524288(3), 0(4)> _5 = _4 | iftmp.2_9; base_14(D)->MSCR[_1] ={v} _5; [local count: 1073741824]: # DEBUG BEGIN_STMT if (inputMux_20(D) != 16) goto ; [66.00%] else goto ; [34.00%] [local count: 708669605]: # DEBUG BEGIN_STMT if (inputMuxReg_13(D) <= 511) goto ; [50.00%] else goto ; [50.00%] [local count: 354334802]: # DEBUG BEGIN_STMT # DEBUG siul2Base => 1076428800B [local count: 708669605]: # siul2Base_8 = PHI <4294967295B(7), 1076428800B(8)> # DEBUG siul2Base => siul2Base_8 # DEBUG BEGIN_STMT _6 = inputMuxReg_13(D) & 511; imcrVal_21 ={v} siul2Base_8->IMCR[_6]; # DEBUG imcrVal => imcrVal_21 # DEBUG BEGIN_STMT imcrVal_22 = imcrVal_21 & 4294967280; # DEBUG imcrVal => imcrVal_22 # DEBUG BEGIN_STMT _12 = inputMux_20(D) & 15; _7 = (long unsigned int) _12; imcrVal_23 = _7 | imcrVal_22; # DEBUG imcrVal => imcrVal_23 # DEBUG BEGIN_STMT siul2Base_8->IMCR[_6] ={v} imcrVal_23; [local count: 1073741824]: return; } ;; Function Siul2_Port_Ip_SetPinDirection (Siul2_Port_Ip_SetPinDirection, funcdef_no=11, decl_uid=4848, cgraph_uid=12, symbol_order=14) Siul2_Port_Ip_SetPinDirection (struct Siul2_Port_Ip_PortType * const base, uint16 pin, Siul2_Port_Ip_PortDirectionType direction) { int _1; long unsigned int _2; long unsigned int _3; long unsigned int _4; long unsigned int _5; int _6; long unsigned int _7; long unsigned int _8; long unsigned int _9; long unsigned int _10; int _11; long unsigned int _12; long unsigned int _13; int _14; long unsigned int _15; long unsigned int _16; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT switch (direction_18(D)) [20.00%], case 0: [20.00%], case 1: [20.00%], case 2: [20.00%], case 3: [20.00%]> [local count: 214748364]: : # DEBUG BEGIN_STMT _1 = (int) pin_20(D); _2 ={v} base_21(D)->MSCR[_1]; _3 = _2 & 4292870143; base_21(D)->MSCR[_1] ={v} _3; # DEBUG BEGIN_STMT _4 ={v} base_21(D)->MSCR[_1]; _5 = _4 | 524288; base_21(D)->MSCR[_1] ={v} _5; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _6 = (int) pin_20(D); _7 ={v} base_21(D)->MSCR[_6]; _8 = _7 & 4294443007; base_21(D)->MSCR[_6] ={v} _8; # DEBUG BEGIN_STMT _9 ={v} base_21(D)->MSCR[_6]; _10 = _9 | 2097152; base_21(D)->MSCR[_6] ={v} _10; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _11 = (int) pin_20(D); _12 ={v} base_21(D)->MSCR[_11]; _13 = _12 | 2621440; base_21(D)->MSCR[_11] ={v} _13; # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 214748364]: : # DEBUG BEGIN_STMT _14 = (int) pin_20(D); _15 ={v} base_21(D)->MSCR[_14]; _16 = _15 & 4292345855; base_21(D)->MSCR[_14] ={v} _16; # DEBUG BEGIN_STMT [local count: 1073741824]: : return; } ;; Function Siul2_Port_Ip_RevertPinConfiguration (Siul2_Port_Ip_RevertPinConfiguration, funcdef_no=12, decl_uid=4851, cgraph_uid=13, symbol_order=15) Siul2_Port_Ip_RevertPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, uint16 pin) { uint32 u32MscrId; uint32 portNumber; uint32 MaxPinConfigured; const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr; uint32 u32RegVal; uint16 u16PinIdx; long unsigned int base.3_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; const struct Siul2_Port_Ip_PinSettingsConfig * _5; unsigned int _6; const struct Siul2_Port_Ip_PinSettingsConfig * _7; long unsigned int _8; int _9; long unsigned int _10; [local count: 114863532]: # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG u32RegVal => 4294967295 # DEBUG BEGIN_STMT ConfigPtr_15 = pPort_Setting; # DEBUG ConfigPtr => ConfigPtr_15 # DEBUG BEGIN_STMT MaxPinConfigured_16 = u32MaxPinConfigured; # DEBUG MaxPinConfigured => MaxPinConfigured_16 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT base.3_1 = (long unsigned int) base_17(D); _2 = base.3_1 + 3218537920; portNumber_18 = _2 >> 6; # DEBUG portNumber => portNumber_18 # DEBUG BEGIN_STMT _3 = portNumber_18 << 4; _4 = (long unsigned int) pin_19(D); u32MscrId_20 = _3 + _4; # DEBUG u32MscrId => u32MscrId_20 # DEBUG BEGIN_STMT # DEBUG u16PinIdx => 0 goto ; [100.00%] [local count: 1014686025]: # DEBUG BEGIN_STMT _6 = _10 * 64; _7 = ConfigPtr_15 + _6; _8 = _7->pinPortIdx; if (_8 == u32MscrId_20) goto ; [5.50%] else goto ; [94.50%] [local count: 55807731]: # _5 = PHI <_7(3)> # DEBUG BEGIN_STMT Siul2_Port_Ip_PinInit (_5); # DEBUG BEGIN_STMT _9 = (int) pin_19(D); u32RegVal_23 ={v} base_17(D)->MSCR[_9]; # DEBUG u32RegVal => u32RegVal_23 # DEBUG BEGIN_STMT goto ; [100.00%] [local count: 958878293]: # DEBUG BEGIN_STMT u16PinIdx_21 = u16PinIdx_11 + 1; # DEBUG u16PinIdx => u16PinIdx_21 [local count: 1073741824]: # u16PinIdx_11 = PHI <0(2), u16PinIdx_21(5)> # DEBUG u16PinIdx => u16PinIdx_11 # DEBUG BEGIN_STMT _10 = (long unsigned int) u16PinIdx_11; if (_10 < MaxPinConfigured_16) goto ; [94.50%] else goto ; [5.50%] [local count: 114863532]: # u32RegVal_12 = PHI # DEBUG u32RegVal => u32RegVal_12 # DEBUG BEGIN_STMT return u32RegVal_12; } ;; Function Siul2_Port_Ip_GetPinConfiguration (Siul2_Port_Ip_GetPinConfiguration, funcdef_no=13, decl_uid=4855, cgraph_uid=14, symbol_order=16) Symbols to be put in SSA form { D.5051 } Incremental SSA update started at block: 0 Number of blocks in CFG: 15 Number of blocks to update: 14 ( 93%) Removing basic block 7 Removing basic block 11 ;; 3 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 ;; ;; Loop 2 ;; header 6, latch 5 ;; depth 1, outer 0 ;; nodes: 6 5 ;; ;; Loop 1 ;; header 11, latch 10 ;; depth 1, outer 0 ;; nodes: 11 10 3 ;; 2 succs { 11 } ;; 3 succs { 4 10 } ;; 4 succs { 6 } ;; 5 succs { 6 } ;; 6 succs { 5 7 } ;; 7 succs { 9 8 } ;; 8 succs { 9 } ;; 9 succs { 12 } ;; 10 succs { 11 } ;; 11 succs { 3 12 } ;; 12 succs { 1 } Siul2_Port_Ip_GetPinConfiguration (const struct Siul2_Port_Ip_PortType * const base, struct Siul2_Port_Ip_PinSettingsConfig * config, uint16 pin) { uint32 u32RegVal; Siul2_Port_Ip_PortPullConfig pullValue; uint8 inputMuxIterator; uint16 u16PinIdx; uint32 u32MscrId; uint32 portNumber; uint32 MaxPinConfigured; const struct Siul2_Port_Ip_PinSettingsConfig * ConfigPtr; long unsigned int base.5_1; long unsigned int _2; long unsigned int _3; long unsigned int _4; const struct Siul2_Port_Ip_PinSettingsConfig * _5; unsigned int _6; const struct Siul2_Port_Ip_PinSettingsConfig * _7; long unsigned int _8; struct SIUL2_Type * _9; unsigned char _10; int _11; long unsigned int _12; _13; long unsigned int _14; long unsigned int _15; int _36; unsigned char _38; unsigned char _39; long unsigned int _40; long unsigned int _41; _42; long unsigned int _43; long unsigned int _44; long unsigned int _45; long unsigned int _48; long unsigned int _49; _50; long unsigned int _51; long unsigned int _52; _53; long unsigned int _54; long unsigned int _55; _56; long unsigned int _57; long unsigned int _58; _59; long unsigned int _60; long unsigned int _61; _62; long unsigned int _63; long unsigned int _64; _65; long unsigned int _66; long unsigned int _67; _68; [local count: 114863532]: # DEBUG BEGIN_STMT ConfigPtr_21 = pPort_Setting; # DEBUG ConfigPtr => ConfigPtr_21 # DEBUG BEGIN_STMT MaxPinConfigured_22 = u32MaxPinConfigured; # DEBUG MaxPinConfigured => MaxPinConfigured_22 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG u32MscrBase => 1076429376 # DEBUG BEGIN_STMT base.5_1 = (long unsigned int) base_23(D); _2 = base.5_1 + 3218537920; portNumber_24 = _2 >> 6; # DEBUG portNumber => portNumber_24 # DEBUG BEGIN_STMT _3 = portNumber_24 << 4; _4 = (long unsigned int) pin_25(D); u32MscrId_26 = _3 + _4; # DEBUG u32MscrId => u32MscrId_26 # DEBUG BEGIN_STMT # DEBUG u16PinIdx => 0 goto ; [100.00%] [local count: 1014686025]: # DEBUG BEGIN_STMT _6 = _15 * 64; _7 = ConfigPtr_21 + _6; _8 = _7->pinPortIdx; if (_8 == u32MscrId_26) goto ; [5.50%] else goto ; [94.50%] [local count: 55807731]: # _5 = PHI <_7(3)> # _14 = PHI <_8(3)> # DEBUG BEGIN_STMT _9 = _5->base; config_28(D)->base = _9; # DEBUG BEGIN_STMT config_28(D)->pinPortIdx = _14; # DEBUG BEGIN_STMT _10 = _5->initValue; config_28(D)->initValue = _10; # DEBUG BEGIN_STMT # DEBUG inputMuxIterator => 0 goto ; [100.00%] [local count: 446512084]: # DEBUG BEGIN_STMT _11 = (int) inputMuxIterator_17; _12 = _5->inputMuxReg[_11]; config_28(D)->inputMuxReg[_11] = _12; # DEBUG BEGIN_STMT _13 = _5->inputMux[_11]; config_28(D)->inputMux[_11] = _13; # DEBUG BEGIN_STMT inputMuxIterator_35 = inputMuxIterator_17 + 1; # DEBUG inputMuxIterator => inputMuxIterator_35 [local count: 502319816]: # inputMuxIterator_17 = PHI <0(4), inputMuxIterator_35(5)> # DEBUG inputMuxIterator => inputMuxIterator_17 # DEBUG BEGIN_STMT if (inputMuxIterator_17 != 8) goto ; [88.89%] else goto ; [11.11%] [local count: 55807732]: # DEBUG BEGIN_STMT # DEBUG config => config_28(D) # DEBUG base => base_23(D) # DEBUG pin => pin_25(D) # DEBUG INLINE_ENTRY Siul2_Port_Ip_GetMSCRConfiguration # DEBUG BEGIN_STMT # DEBUG u32RegVal => 4294967295 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _36 = (int) pin_25(D); u32RegVal_37 ={v} base_23(D)->MSCR[_36]; # DEBUG u32RegVal => u32RegVal_37 # DEBUG BEGIN_STMT _38 = (unsigned char) u32RegVal_37; _39 = _38 & 7; config_28(D)->mux = _39; # DEBUG BEGIN_STMT _40 = u32RegVal_37 >> 5; _41 = _40 & 1; _42 = () _41; config_28(D)->safeMode = _42; # DEBUG BEGIN_STMT _43 = u32RegVal_37 & 8192; if (_43 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 27903866]: # DEBUG BEGIN_STMT _44 = u32RegVal_37 >> 11; _45 = _44 & 1; pullValue_46 = (Siul2_Port_Ip_PortPullConfig) _45; # DEBUG pullValue => pullValue_46 [local count: 55807732]: # pullValue_47 = PHI <2(7), pullValue_46(8)> # DEBUG pullValue => pullValue_47 # DEBUG BEGIN_STMT config_28(D)->pullConfig = pullValue_47; # DEBUG BEGIN_STMT _48 = u32RegVal_37 >> 14; _49 = _48 & 1; _50 = () _49; config_28(D)->slewRateCtrlSel = _50; # DEBUG BEGIN_STMT _51 = u32RegVal_37 >> 8; _52 = _51 & 1; _53 = () _52; config_28(D)->driveStrength = _53; # DEBUG BEGIN_STMT _54 = u32RegVal_37 >> 6; _55 = _54 & 1; _56 = () _55; config_28(D)->inputFilter = _56; # DEBUG BEGIN_STMT _57 = u32RegVal_37 >> 17; _58 = _57 & 1; _59 = () _58; config_28(D)->invert = _59; # DEBUG BEGIN_STMT _60 = u32RegVal_37 >> 16; _61 = _60 & 1; _62 = () _61; config_28(D)->pullKeep = _62; # DEBUG BEGIN_STMT _63 = u32RegVal_37 >> 19; _64 = _63 & 1; _65 = () _64; config_28(D)->inputBuffer = _65; # DEBUG BEGIN_STMT _66 = u32RegVal_37 >> 21; _67 = _66 & 1; _68 = () _67; config_28(D)->outputBuffer = _68; goto ; [100.00%] [local count: 958878293]: # DEBUG BEGIN_STMT u16PinIdx_27 = u16PinIdx_16 + 1; # DEBUG u16PinIdx => u16PinIdx_27 [local count: 1073741824]: # u16PinIdx_16 = PHI <0(2), u16PinIdx_27(10)> # DEBUG u16PinIdx => u16PinIdx_16 # DEBUG BEGIN_STMT _15 = (long unsigned int) u16PinIdx_16; if (_15 < MaxPinConfigured_22) goto ; [94.50%] else goto ; [5.50%] [local count: 114863532]: # DEBUG config => NULL # DEBUG base => NULL # DEBUG pin => NULL # DEBUG pullValue => NULL # DEBUG u32RegVal => NULL return; }