IPA function summary for Flexio_Pwm_Ip_SetPinLevel.constprop/62 inlinable global time: 11.000000 self size: 12 global size: 12 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) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 768] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 768] changed) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 768] changed || op1 changed) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:1.000000, time:1.000000, nonconst if:(op1 changed || op2 changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 768] changed || op1 changed || op2 changed) calls: IPA function summary for Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 inlinable global time: 11.000000 self size: 12 global size: 12 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) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 800] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 800] changed) size:2.000000, time:2.000000, nonconst if:(op1 changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 800] changed || op1 changed) size:2.000000, time:2.000000, nonconst if:(op2 changed) size:1.000000, time:1.000000, nonconst if:(op1 changed || op2 changed) size:1.000000, time:1.000000, nonconst if:(op0[ref offset: 800] changed || op1 changed || op2 changed) calls: IPA function summary for Flexio_Pwm_Ip_SetTimerPin.constprop/60 inlinable global time: 8.000000 self size: 9 global size: 9 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) size:2.000000, time:2.000000, nonconst if:(op2 changed) array index:(op1 changed) calls: IPA function summary for Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 inlinable global time: 8.000000 self size: 9 global size: 9 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) size:2.000000, time:2.000000, nonconst if:(op2 changed) array index:(op1 changed) calls: IPA function summary for Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 inlinable global time: 19.000000 self size: 15 global size: 15 min size: 16 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: Flexio_Pwm_Ip_ForceOuputLevel/29 function not considered for inlining loop depth: 0 freq:0.50 size: 4 time: 13callee size:12 stack: 0 op2 is compile time invariant Flexio_Pwm_Ip_ForceOuputLevel/29 function not considered for inlining loop depth: 0 freq:0.50 size: 4 time: 13callee size:12 stack: 0 op2 is compile time invariant IPA function summary for Flexio_Pwm_Ip_UpdateInterruptMode/32 inlinable global time: 71.624800 self size: 75 global size: 75 min size: 14 self stack: 0 global stack: 0 size:34.000000, time:26.895000 size:3.000000, time:2.000000, executed if:(not inlined) size:7.000000, time:7.000000, nonconst if:(op2 changed) size:2.000000, time:1.320000, executed if:(op2 != 1), nonconst if:(op2 changed) && (op2 != 1) size:11.000000, time:5.361800, executed if:(op2 == 1 || op2 == 3) size:7.000000, time:1.416800, executed if:(op2 == 4) array index:(op1 changed) calls: Flexio_Mcl_Ip_SetTimerInterrupt/34 function body not available loop depth: 0 freq:0.20 size: 4 time: 13 predicate: (op2 == 4) op0 is compile time invariant op2 is compile time invariant Flexio_Mcl_Ip_SetTimerInterrupt/34 function body not available loop depth: 0 freq:1.00 size: 4 time: 13 op0 is compile time invariant op2 is compile time invariant Flexio_Mcl_Ip_ClearTimerStatus/33 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant IPA function summary for Flexio_Pwm_Ip_GetOutputState/31 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: IPA function summary for Flexio_Pwm_Ip_UpdatePeriodDuty/30 inlinable global time: 42.750000 self size: 51 global size: 51 min size: 20 self stack: 0 global stack: 0 size:34.000000, time:17.250000 size:3.000000, time:2.000000, executed if:(not inlined) size:1.000000, time:0.500000, nonconst if:(op3 changed) size:3.000000, time:1.500000, nonconst if:(op3 changed || op2 changed) array index:(op1 changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 function not considered for inlining loop depth: 0 freq:1.00 size: 6 time: 15callee size:12 stack: 0 Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 function not considered for inlining loop depth: 0 freq:0.50 size: 4 time: 13callee size: 6 stack: 0 op0 is compile time invariant op2 is compile time invariant IPA function summary for Flexio_Pwm_Ip_ForceOuputLevel/29 inlinable global time: 51.000000 self size: 25 global size: 25 min size: 22 self stack: 0 global stack: 0 size:11.000000, time:11.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: Flexio_Mcl_Ip_ClearTimerStatus/33 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 op0 is compile time invariant op2 is compile time invariant Flexio_Pwm_Ip_SetPinLevel.constprop/62 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 op0 is compile time invariant IPA function summary for Flexio_Pwm_Ip_UpdateClockPrescaler/28 inlinable global time: 17.000000 self size: 9 global size: 9 min size: 8 self stack: 0 global stack: 0 size:2.000000, time:2.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 op0 is compile time invariant IPA function summary for Flexio_Pwm_Ip_DeInitChannel/27 inlinable global time: 73.000000 self size: 47 global size: 47 min size: 26 self stack: 0 global stack: 0 size:31.000000, time:31.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: Flexio_Pwm_Ip_SetPinLevel.constprop/62 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 op0 is compile time invariant op2 is compile time invariant Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 op0 is compile time invariant op2 is compile time invariant Flexio_Pwm_Ip_UpdateInterruptMode/32 function not considered for inlining loop depth: 0 freq:1.00 size: 5 time: 14callee size:37 stack: 0 op2 is compile time invariant IPA function summary for Flexio_Pwm_Ip_InitChannel/26 inlinable global time: 95.500000 self size: 79 global size: 79 min size: 38 self stack: 0 global stack: 0 size:40.000000, time:26.000000 size:8.000000, time:6.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op1[ref offset: 0] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 64] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 64] changed) size:4.000000, time:2.000000, executed if:(op1[ref offset: 64] != 0) size:3.000000, time:1.500000, executed if:(op1[ref offset: 64] == 0) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 16] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op1[ref offset: 16] changed) array index:(op1[ref offset: 0] changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 function not considered for inlining loop depth: 0 freq:1.00 size: 6 time: 15callee size:12 stack: 0 Flexio_Pwm_Ip_UpdateInterruptMode/32 function not considered for inlining loop depth: 0 freq:1.00 size: 5 time: 14callee size:37 stack: 0 op2 is compile time invariant Flexio_Pwm_Ip_SetTimerPin.constprop/60 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 op0 is compile time invariant Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 function not considered for inlining loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 op0 is compile time invariant IPA function summary for Flexio_Pwm_Ip_PinOverrideNeeded/25 inlinable global time: 19.355000 self size: 25 global size: 25 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:(op3 changed) size:2.000000, time:1.000000, executed if:(op3 != 0), nonconst if:(op2 changed) && (op3 != 0) size:2.000000, time:0.500000, executed if:(op2 != 0) && (op3 != 0), nonconst if:(op3 changed || op2 changed) && (op2 != 0) && (op3 != 0) size:4.000000, time:3.000000, executed if:(op3 == 0 || op2 == 0) array index:(op1 changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 function not considered for inlining loop depth: 0 freq:0.09 size: 4 time: 13callee size: 7 stack: 0 predicate: (op2 != 0) && (op3 != 0) Flexio_Pwm_Ip_ForceOuputLevel/29 function not considered for inlining loop depth: 0 freq:0.38 size: 4 time: 13callee size:12 stack: 0 predicate: (op3 == 0 || op2 == 0) op2 is compile time invariant Flexio_Pwm_Ip_ForceOuputLevel/29 function not considered for inlining loop depth: 0 freq:0.38 size: 4 time: 13callee size:12 stack: 0 predicate: (op3 == 0 || op2 == 0) op2 is compile time invariant Flattening functions: Overall time estimate: 433.229800 weighted by profile: 0.000000 Deciding on inlining of small functions. Starting with size 0. Enqueueing calls in Flexio_Pwm_Ip_SetPinLevel.constprop/62. Enqueueing calls in Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61. Enqueueing calls in Flexio_Pwm_Ip_SetTimerPin.constprop/60. Enqueueing calls in Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59. Enqueueing calls in Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37. Enqueueing calls in Flexio_Pwm_Ip_UpdateInterruptMode/32. Enqueueing calls in Flexio_Pwm_Ip_GetOutputState/31. Enqueueing calls in Flexio_Pwm_Ip_UpdatePeriodDuty/30. Enqueueing calls in Flexio_Pwm_Ip_ForceOuputLevel/29. Enqueueing calls in Flexio_Pwm_Ip_UpdateClockPrescaler/28. Enqueueing calls in Flexio_Pwm_Ip_DeInitChannel/27. Enqueueing calls in Flexio_Pwm_Ip_InitChannel/26. Enqueueing calls in Flexio_Pwm_Ip_PinOverrideNeeded/25. Considering Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 with 9 size to be inlined into Flexio_Pwm_Ip_UpdateClockPrescaler/28 in ../RTD/src/Flexio_Pwm_Ip.c:374 Estimated badness is -51.200000, frequency 1.00. Considering Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 with 12 size to be inlined into Flexio_Pwm_Ip_ForceOuputLevel/29 in ../RTD/src/Flexio_Pwm_Ip.c:406 Estimated badness is -10.962963, frequency 1.00. Considering Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 with 9 size to be inlined into Flexio_Pwm_Ip_InitChannel/26 in ../RTD/src/Flexio_Pwm_Ip.c:270 Estimated badness is -6.400000, frequency 1.00. Considering Flexio_Pwm_Ip_SetTimerPin.constprop/60 with 9 size to be inlined into Flexio_Pwm_Ip_InitChannel/26 in ../RTD/src/Flexio_Pwm_Ip.c:273 Estimated badness is -6.400000, frequency 1.00. Considering Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 with 12 size to be inlined into Flexio_Pwm_Ip_DeInitChannel/27 in ../RTD/src/Flexio_Pwm_Ip.c:340 Estimated badness is -6.040816, frequency 1.00. Considering Flexio_Pwm_Ip_SetPinLevel.constprop/62 with 12 size to be inlined into Flexio_Pwm_Ip_DeInitChannel/27 in ../RTD/src/Flexio_Pwm_Ip.c:341 Estimated badness is -6.040816, frequency 1.00. Considering Flexio_Pwm_Ip_SetPinLevel.constprop/62 with 12 size to be inlined into Flexio_Pwm_Ip_ForceOuputLevel/29 in ../RTD/src/Flexio_Pwm_Ip.c:405 Estimated badness is -4.551724, frequency 1.00. Considering Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 with 12 size to be inlined into Flexio_Pwm_Ip_UpdatePeriodDuty/30 in ../RTD/src/Flexio_Pwm_Ip.c:460 Estimated badness is -2.792453, frequency 0.50. Considering Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 with 15 size to be inlined into Flexio_Pwm_Ip_PinOverrideNeeded/25 in unknown:0 Estimated badness is -0.000394, frequency 0.09. Reclaiming functions: Reclaiming variables: Clearing address taken flags: Deciding on functions to be inlined into all callers and removing useless speculations: Overall time estimate: 320.819800 weighted by profile: 0.000000 Why inlining failed? function body not available : 4 calls, 3.202400 freq, 0 count call is unlikely and code size would grow : 8 calls, 4.835000 freq, 0 count IPA function summary for Flexio_Pwm_Ip_UpdateInterruptMode/32 inlinable global time: 71.624800 self size: 75 global size: 75 min size: 34 self stack: 0 global stack: 0 estimated growth:72 size:34.000000, time:26.895000 size:3.000000, time:2.000000, executed if:(not inlined) size:7.000000, time:7.000000, nonconst if:(op2 changed) size:2.000000, time:1.320000, executed if:(op2 != 1), nonconst if:(op2 changed) && (op2 != 1) size:11.000000, time:5.361800, executed if:(op2 == 1 || op2 == 3) size:7.000000, time:1.416800, executed if:(op2 == 4) array index:(op1 changed) calls: Flexio_Mcl_Ip_SetTimerInterrupt/34 function body not available loop depth: 0 freq:0.20 size: 4 time: 13 predicate: (op2 == 4) op0 is compile time invariant op2 is compile time invariant Flexio_Mcl_Ip_SetTimerInterrupt/34 function body not available loop depth: 0 freq:1.00 size: 4 time: 13 op0 is compile time invariant op2 is compile time invariant Flexio_Mcl_Ip_ClearTimerStatus/33 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant IPA function summary for Flexio_Pwm_Ip_GetOutputState/31 inlinable global time: 6.000000 self size: 7 global size: 7 min size: 0 self stack: 0 global stack: 0 size:4.000000, time:4.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: IPA function summary for Flexio_Pwm_Ip_UpdatePeriodDuty/30 inlinable global time: 39.000000 self size: 51 global size: 53 min size: 32 self stack: 0 global stack: 0 size:40.000000, time:20.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:1.000000, time:0.500000, nonconst if:(op3 changed) size:3.000000, time:1.500000, nonconst if:(op3 changed || op2 changed) array index:(op1 changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 6 time: 15callee size:16 stack: 0 Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 inlined loop depth: 0 freq:0.50 size: 4 time: 13callee size: 6 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Flexio_Pwm_Ip_ForceOuputLevel/29 inlinable global time: 38.000000 self size: 25 global size: 31 min size: 23 self stack: 0 global stack: 0 estimated growth:72 size:23.000000, time:22.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) array index:(op1 changed) calls: Flexio_Mcl_Ip_ClearTimerStatus/33 function body not available loop depth: 0 freq:1.00 size: 3 time: 12 op0 is compile time invariant Flexio_Pwm_Ip_ConfigurePinOverride.constprop/64 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 Flexio_Pwm_Ip_SetPinLevel.constprop/62 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Flexio_Pwm_Ip_UpdateClockPrescaler/28 inlinable global time: 9.000000 self size: 9 global size: 10 min size: 8 self stack: 0 global stack: 0 size:5.000000, time:5.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op2 changed) array index:(op1 changed) calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop/63 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Flexio_Pwm_Ip_DeInitChannel/27 inlinable global time: 58.000000 self size: 47 global size: 51 min size: 54 self stack: 0 global stack: 0 size:43.000000, time:42.000000 size:3.000000, time:2.000000, executed if:(not inlined) array index:(op1 changed) calls: Flexio_Pwm_Ip_SetPinLevel.constprop/66 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 Flexio_Pwm_Ip_ConfigurePinOverride.constprop/65 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 6 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 Flexio_Pwm_Ip_UpdateInterruptMode/32 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 5 time: 14callee size:37 stack: 0 op2 is compile time invariant IPA function summary for Flexio_Pwm_Ip_InitChannel/26 inlinable global time: 79.500000 self size: 79 global size: 81 min size: 90 self stack: 0 global stack: 0 size:50.000000, time:36.000000 size:8.000000, time:6.000000, executed if:(not inlined) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 0] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op1[ref offset: 0] changed) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 64] changed) && (not inlined) size:2.500000, time:2.500000, nonconst if:(op1[ref offset: 64] changed) size:4.000000, time:2.000000, executed if:(op1[ref offset: 64] != 0) size:3.000000, time:1.500000, executed if:(op1[ref offset: 64] == 0) size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op1[ref offset: 16] changed) && (not inlined) size:0.500000, time:0.500000, nonconst if:(op1[ref offset: 16] changed) array index:(op1[ref offset: 0] changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 6 time: 15callee size:16 stack: 0 Flexio_Pwm_Ip_UpdateInterruptMode/32 call is unlikely and code size would grow loop depth: 0 freq:1.00 size: 5 time: 14callee size:37 stack: 0 op2 is compile time invariant Flexio_Pwm_Ip_SetTimerPin.constprop/60 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 inlined loop depth: 0 freq:1.00 size: 4 time: 13callee size: 4 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 IPA function summary for Flexio_Pwm_Ip_PinOverrideNeeded/25 inlinable global time: 19.695000 self size: 25 global size: 33 min size: 0 self stack: 0 global stack: 0 estimated growth:7 size:0.000000, time:0.000000 size:3.000000, time:2.000000, executed if:(not inlined) size:2.000000, time:2.000000, nonconst if:(op3 changed) size:2.000000, time:1.000000, executed if:(op3 != 0), nonconst if:(op2 changed) && (op3 != 0) size:2.000000, time:0.500000, executed if:(op2 != 0) && (op3 != 0), nonconst if:(op3 changed || op2 changed) && (op2 != 0) && (op3 != 0) size:4.000000, time:3.000000, executed if:(op3 == 0 || op2 == 0) size:4.000000, time:0.340000, executed if:(op2 != 0) && (op3 != 0) array index:(op1 changed) calls: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 inlined loop depth: 0 freq:0.09 size: 4 time: 13callee size: 7 stack: 0 Stack frame offset 0, callee self size 0, callee size 0 Flexio_Pwm_Ip_ForceOuputLevel/29 call is unlikely and code size would grow loop depth: 0 freq:0.04 size: 4 time: 13callee size:15 stack: 0 predicate: (op2 != 0) && (op3 != 0) op2 is compile time invariant Flexio_Pwm_Ip_ForceOuputLevel/29 call is unlikely and code size would grow loop depth: 0 freq:0.04 size: 4 time: 13callee size:15 stack: 0 predicate: (op2 != 0) && (op3 != 0) op2 is compile time invariant Flexio_Pwm_Ip_ForceOuputLevel/29 call is unlikely and code size would grow loop depth: 0 freq:0.38 size: 4 time: 13callee size:15 stack: 0 predicate: (op3 == 0 || op2 == 0) op2 is compile time invariant Flexio_Pwm_Ip_ForceOuputLevel/29 call is unlikely and code size would grow loop depth: 0 freq:0.38 size: 4 time: 13callee size:15 stack: 0 predicate: (op3 == 0 || op2 == 0) op2 is compile time invariant Symbol table: Flexio_Pwm_Ip_SetPinLevel.constprop.0/66 (Flexio_Pwm_Ip_SetPinLevel.constprop) @05cc1620 Type: function definition analyzed Visibility: next sharing asm name: 62 References: Referring: Function Flexio_Pwm_Ip_SetPinLevel.constprop/66 is inline copy in Flexio_Pwm_Ip_DeInitChannel/27 Clone of Flexio_Pwm_Ip_SetPinLevel.constprop.0/62 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_DeInitChannel/27 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/65 (Flexio_Pwm_Ip_ConfigurePinOverride.constprop) @05cc12a0 Type: function definition analyzed Visibility: next sharing asm name: 64 References: Referring: Function Flexio_Pwm_Ip_ConfigurePinOverride.constprop/65 is inline copy in Flexio_Pwm_Ip_DeInitChannel/27 Clone of Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/61 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_DeInitChannel/27 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/64 (Flexio_Pwm_Ip_ConfigurePinOverride.constprop) @05c7f0e0 Type: function definition analyzed Visibility: next sharing asm name: 61 previous sharing asm name: 65 References: Referring: Function Flexio_Pwm_Ip_ConfigurePinOverride.constprop/64 is inline copy in Flexio_Pwm_Ip_ForceOuputLevel/29 Clone of Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/61 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_ForceOuputLevel/29 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop.0/63 (Flexio_Pwm_Ip_SetTimerPrescaler.constprop) @05c8cb60 Type: function definition analyzed Visibility: next sharing asm name: 59 References: Referring: Function Flexio_Pwm_Ip_SetTimerPrescaler.constprop/63 is inline copy in Flexio_Pwm_Ip_UpdateClockPrescaler/28 Clone of Flexio_Pwm_Ip_SetTimerPrescaler.constprop.0/59 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_UpdateClockPrescaler/28 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_SetPinLevel.constprop.0/62 (Flexio_Pwm_Ip_SetPinLevel.constprop) @05c87d20 Type: function definition analyzed Visibility: previous sharing asm name: 66 References: Referring: Function Flexio_Pwm_Ip_SetPinLevel.constprop/62 is inline copy in Flexio_Pwm_Ip_ForceOuputLevel/29 Clone of Flexio_Pwm_Ip_SetPinLevel/8 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_ForceOuputLevel/29 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_ConfigurePinOverride.constprop.0/61 (Flexio_Pwm_Ip_ConfigurePinOverride.constprop) @05c7f620 Type: function definition analyzed Visibility: previous sharing asm name: 64 References: Referring: Function Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 is inline copy in Flexio_Pwm_Ip_UpdatePeriodDuty/30 Clone of Flexio_Pwm_Ip_ConfigurePinOverride/9 Availability: local Function flags: count:536870913 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_UpdatePeriodDuty/30 (inlined) (536870913 (estimated locally),0.50 per call) Calls: Flexio_Pwm_Ip_SetTimerPin.constprop.0/60 (Flexio_Pwm_Ip_SetTimerPin.constprop) @05c8c460 Type: function definition analyzed Visibility: References: Referring: Function Flexio_Pwm_Ip_SetTimerPin.constprop/60 is inline copy in Flexio_Pwm_Ip_InitChannel/26 Clone of Flexio_Pwm_Ip_SetTimerPin/12 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_InitChannel/26 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop.0/59 (Flexio_Pwm_Ip_SetTimerPrescaler.constprop) @05c8c7e0 Type: function definition analyzed Visibility: previous sharing asm name: 63 References: Referring: Function Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 is inline copy in Flexio_Pwm_Ip_InitChannel/26 Clone of Flexio_Pwm_Ip_SetTimerPrescaler/16 Availability: local Function flags: count:1073741824 (estimated locally) local optimize_size Called by: Flexio_Pwm_Ip_InitChannel/26 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (Flexio_Pwm_Ip_PinOverrideNeeded.part.0) @05c7f380 Type: function definition analyzed Visibility: prevailing_def_ironly artificial References: Flexio_Pwm_Ip_aState/22 (read) Referring: Function Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 is inline copy in Flexio_Pwm_Ip_PinOverrideNeeded/25 Availability: local Function flags: count:91268056 (estimated locally) first_run:1 body local split_part optimize_size Called by: Flexio_Pwm_Ip_PinOverrideNeeded/25 (inlined) (91268056 (estimated locally),0.09 per call) Calls: Flexio_Pwm_Ip_ForceOuputLevel/29 (45634028 (estimated locally),0.04 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (45634028 (estimated locally),0.04 per call) Flexio_Mcl_Ip_SetTimerInterrupt/34 (Flexio_Mcl_Ip_SetTimerInterrupt) @05d37460 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: Flexio_Pwm_Ip_UpdateInterruptMode/32 (217325345 (estimated locally),0.20 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741823 (estimated locally),1.00 per call) Calls: Flexio_Mcl_Ip_ClearTimerStatus/33 (Flexio_Mcl_Ip_ClearTimerStatus) @05e4fe00 Type: function Visibility: external public References: Referring: Availability: not_available Function flags: optimize_size Called by: Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741823 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_UpdateInterruptMode/32 (Flexio_Pwm_Ip_UpdateInterruptMode) @05ce29a0 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read)timerIrqMask/23 (read)timerIrqMask/23 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)pinIrqMask/24 (read)pinIrqMask/24 (write)timerIrqMask/23 (read)timerIrqMask/23 (write) Referring: Availability: available Function flags: count:1073741823 (estimated locally) body optimize_size Called by: Flexio_Pwm_Ip_DeInitChannel/27 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Mcl_Ip_SetTimerInterrupt/34 (217325345 (estimated locally),0.20 per call) Flexio_Mcl_Ip_SetTimerInterrupt/34 (1073741823 (estimated locally),1.00 per call) Flexio_Mcl_Ip_ClearTimerStatus/33 (1073741823 (estimated locally),1.00 per call) Flexio_Pwm_Ip_GetOutputState/31 (Flexio_Pwm_Ip_GetOutputState) @05ce2460 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_UpdatePeriodDuty/30 (Flexio_Pwm_Ip_UpdatePeriodDuty) @05ce2e00 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/61 (inlined) (536870913 (estimated locally),0.50 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (Flexio_Pwm_Ip_ForceOuputLevel) @05ce2b60 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Flexio_Pwm_Ip_PinOverrideNeeded/25 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_PinOverrideNeeded/25 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (45634028 (estimated locally),0.04 per call) Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (45634028 (estimated locally),0.04 per call) Calls: Flexio_Mcl_Ip_ClearTimerStatus/33 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/64 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetPinLevel.constprop/62 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdateClockPrescaler/28 (Flexio_Pwm_Ip_UpdateClockPrescaler) @05ce28c0 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_SetTimerPrescaler.constprop/63 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_DeInitChannel/27 (Flexio_Pwm_Ip_DeInitChannel) @05ce2620 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (read)Flexio_Pwm_Ip_aState/22 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_SetPinLevel.constprop/66 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_ConfigurePinOverride.constprop/65 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_InitChannel/26 (Flexio_Pwm_Ip_InitChannel) @05ce2380 Type: function definition analyzed Visibility: externally_visible public References: Flexio_Pwm_Ip_aState/22 (write) Referring: Availability: available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_PinOverrideNeeded/25 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdateInterruptMode/32 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetTimerPin.constprop/60 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_SetTimerPrescaler.constprop/59 (inlined) (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_PinOverrideNeeded/25 (Flexio_Pwm_Ip_PinOverrideNeeded) @05ce20e0 Type: function definition analyzed Visibility: prevailing_def_ironly References: Flexio_Pwm_Ip_aState/22 (read) Referring: Availability: local Function flags: count:1073741823 (estimated locally) body local optimize_size Called by: Flexio_Pwm_Ip_InitChannel/26 (1073741824 (estimated locally),1.00 per call) Flexio_Pwm_Ip_UpdatePeriodDuty/30 (1073741824 (estimated locally),1.00 per call) Calls: Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (inlined) (91268056 (estimated locally),0.09 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (402653184 (estimated locally),0.38 per call) Flexio_Pwm_Ip_ForceOuputLevel/29 (402653184 (estimated locally),0.38 per call) pinIrqMask/24 (pinIrqMask) @05cdc990 Type: variable definition analyzed Visibility: force_output externally_visible public References: Referring: Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write) Availability: available Varpool flags: initialized timerIrqMask/23 (timerIrqMask) @05cdc900 Type: variable definition analyzed Visibility: force_output externally_visible public References: Referring: Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (write) Availability: available Varpool flags: initialized Flexio_Pwm_Ip_aState/22 (Flexio_Pwm_Ip_aState) @05cdc870 Type: variable definition analyzed Visibility: externally_visible public References: Referring: Flexio_Pwm_Ip_GetOutputState/31 (read)Flexio_Pwm_Ip_PinOverrideNeeded/25 (read)Flexio_Pwm_Ip_UpdateClockPrescaler/28 (read)Flexio_Pwm_Ip_PinOverrideNeeded.part.0/37 (read)Flexio_Pwm_Ip_UpdateInterruptMode/32 (read)Flexio_Pwm_Ip_UpdatePeriodDuty/30 (read)Flexio_Pwm_Ip_InitChannel/26 (write)Flexio_Pwm_Ip_ForceOuputLevel/29 (read)Flexio_Pwm_Ip_DeInitChannel/27 (read)Flexio_Pwm_Ip_DeInitChannel/27 (write) Availability: available Varpool flags: initialized Flexio_Pwm_Ip_aBasePtr/21 (Flexio_Pwm_Ip_aBasePtr) @05cdc798 Type: variable definition analyzed Visibility: externally_visible public References: Referring: Availability: available Varpool flags: initialized read-only const-value-known Flexio_Pwm_Ip_SetTimerPrescaler/16 (Flexio_Pwm_Ip_SetTimerPrescaler) @05c8cee0 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_SetTimerPin/12 (Flexio_Pwm_Ip_SetTimerPin) @05c8c0e0 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_ConfigurePinOverride/9 (Flexio_Pwm_Ip_ConfigurePinOverride) @05c87700 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: Flexio_Pwm_Ip_SetPinLevel/8 (Flexio_Pwm_Ip_SetPinLevel) @05c87460 Type: function Body removed by symtab_remove_unreachable_nodes Visibility: prevailing_def_ironly References: Referring: Availability: not_available Function flags: count:1073741824 (estimated locally) body optimize_size Called by: Calls: ;; Function Flexio_Pwm_Ip_UpdateClockPrescaler (Flexio_Pwm_Ip_UpdateClockPrescaler, funcdef_no=24, decl_uid=4342, cgraph_uid=25, symbol_order=28) Symbols to be put in SSA form { D.4817 } Incremental SSA update started at block: 0 Number of blocks in CFG: 6 Number of blocks to update: 5 ( 83%) Merging blocks 2 and 4 Merging blocks 2 and 5 Merging blocks 2 and 3 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Flexio_Pwm_Ip_UpdateClockPrescaler (uint8 instanceId, uint8 channel, Flexio_Pwm_Ip_ClockPrescalerType prescaler) { const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; int _9; long unsigned int _10; long unsigned int _11; long unsigned int _12; long unsigned int _13; long unsigned int _14; long unsigned int _15; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_4(D); userCfg_6 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_6 # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = userCfg_6->timerId; # DEBUG timer => _2 # DEBUG prescaler => prescaler_7(D) # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPrescaler # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _9 = (int) _2; _10 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_9]; _11 = _10 & 4287627263; _12 = (long unsigned int) prescaler_7(D); _13 = _12 << 20; _14 = _13 & 7340032; _15 = _11 | _14; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_9] ={v} _15; # DEBUG timer => NULL # DEBUG prescaler => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT return 0; } ;; Function Flexio_Pwm_Ip_ForceOuputLevel (Flexio_Pwm_Ip_ForceOuputLevel, funcdef_no=25, decl_uid=4346, cgraph_uid=26, symbol_order=29) Removing basic block 6 Symbols to be put in SSA form { D.4818 } Incremental SSA update started at block: 0 Number of blocks in CFG: 13 Number of blocks to update: 11 ( 85%) Merging blocks 2 and 9 Removing basic block 4 Merging blocks 12 and 8 Merging blocks 2 and 10 Merging blocks 12 and 5 Merging blocks 12 and 7 Merging blocks 12 and 3 ;; 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 } Flexio_Pwm_Ip_ForceOuputLevel (uint8 instanceId, uint8 channel, boolean level) { const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; unsigned char _3; unsigned char _4; unsigned char _5; unsigned char _6; int _15; long unsigned int _16; long unsigned int _17; int _18; long unsigned int _19; long unsigned int _22; int _23; long unsigned int _24; long unsigned int _25; long unsigned int _26; long unsigned int _28; long unsigned int _29; long unsigned int _30; int _31; long unsigned int _32; long unsigned int _33; long unsigned int _34; long unsigned int iftmp.1_35; long unsigned int _36; long unsigned int _37; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_8(D); userCfg_10 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_10 # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = userCfg_10->pinId; # DEBUG pin => _2 # DEBUG level => level_11(D) # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetPinLevel # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _30 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTD; _31 = (int) _2; _32 = 1 << _31; _33 = ~_32; _34 = _30 & _33; if (level_11(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # iftmp.1_35 = PHI <1(2), 0(3)> _36 = iftmp.1_35 << _31; _37 = _34 | _36; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTD ={v} _37; # DEBUG pin => NULL # DEBUG level => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _3 = userCfg_10->pinId; # DEBUG pin => _3 # DEBUG enabled => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinOverride # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _22 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE; _23 = (int) _3; _24 = 1 << _23; _25 = ~_24; _26 = _22 & _25; _28 = 1 << _23; _29 = _26 | _28; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE ={v} _29; # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _4 = userCfg_10->timerId; Flexio_Mcl_Ip_ClearTimerStatus (1077035008B, _4); # DEBUG BEGIN_STMT _5 = userCfg_10->pinId; # DEBUG base => 1077035008B # DEBUG pin => _5 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ClearPinFlag # DEBUG BEGIN_STMT _18 = (int) _5; _19 = 1 << _18; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINSTAT ={v} _19; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG BEGIN_STMT _6 = userCfg_10->timerId; # DEBUG base => 1077035008B # DEBUG timer => _6 # DEBUG timerMode => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _15 = (int) _6; _16 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_15]; _17 = _16 & 4294967288; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_15] ={v} _17; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG BEGIN_STMT return 0; } ;; Function Flexio_Pwm_Ip_PinOverrideNeeded (Flexio_Pwm_Ip_PinOverrideNeeded, funcdef_no=21, decl_uid=4651, cgraph_uid=22, symbol_order=25) Symbols to be put in SSA form { D.4819 D.5004 } Incremental SSA update started at block: 0 Number of blocks in CFG: 16 Number of blocks to update: 15 ( 94%) Removing basic block 8 Removing basic block 11 Merging blocks 15 and 10 ;; 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 ;; 2 succs { 4 3 } ;; 3 succs { 4 7 } ;; 4 succs { 5 6 } ;; 5 succs { 12 } ;; 6 succs { 12 } ;; 7 succs { 8 12 } ;; 8 succs { 9 10 } ;; 9 succs { 11 } ;; 10 succs { 11 } ;; 11 succs { 12 } ;; 12 succs { 1 } Flexio_Pwm_Ip_PinOverrideNeeded (uint8 instanceId, uint8 channel, uint16 period, uint16 dutyCycle) { boolean retStatus; boolean D.5004; boolean retStatus; int _1; const struct Flexio_Pwm_Ip_ChannelConfigType * _2; _3; int _15; const struct Flexio_Pwm_Ip_ChannelConfigType * _16; _17; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG retStatus => 1 # DEBUG BEGIN_STMT # DEBUG status => 0 # DEBUG BEGIN_STMT if (dutyCycle_5(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: if (period_6(D) == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 805306369]: # DEBUG BEGIN_STMT _1 = (int) channel_8(D); _2 = Flexio_Pwm_Ip_aState[_1]; _3 = _2->polarity; if (_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 402653184]: # DEBUG BEGIN_STMT Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 0); # DEBUG status => NULL goto ; [100.00%] [local count: 402653184]: # DEBUG BEGIN_STMT Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 1); # DEBUG status => NULL goto ; [100.00%] [local count: 268435456]: # DEBUG BEGIN_STMT if (dutyCycle_5(D) == period_6(D)) goto ; [34.00%] else goto ; [66.00%] [local count: 91268055]: # DEBUG D#1 => period_6(D) # DEBUG D#2 => dutyCycle_5(D) # DEBUG instanceId => instanceId_9(D) # DEBUG channel => channel_8(D) # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_PinOverrideNeeded # DEBUG D#4 => D#1 # DEBUG period => D#4 # DEBUG D#3 => D#2 # DEBUG dutyCycle => D#3 # DEBUG BEGIN_STMT _15 = (int) channel_8(D); _16 = Flexio_Pwm_Ip_aState[_15]; _17 = _16->polarity; if (_17 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 45634028]: # DEBUG BEGIN_STMT Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 1); # DEBUG status => NULL goto ; [100.00%] [local count: 45634028]: # DEBUG BEGIN_STMT Flexio_Pwm_Ip_ForceOuputLevel (instanceId_9(D), channel_8(D), 0); # DEBUG status => NULL [local count: 91268055]: # retStatus_18 = PHI <1(9), 1(10)> # DEBUG retStatus => retStatus_18 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _22 = retStatus_18; # DEBUG instanceId => NULL # DEBUG channel => NULL # DEBUG retStatus => NULL # DEBUG status => NULL # DEBUG period => NULL # DEBUG dutyCycle => NULL retStatus_12 = _22; [local count: 1073741824]: # retStatus_4 = PHI <1(6), retStatus_12(11), 0(7), 1(5)> # DEBUG retStatus => retStatus_4 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT return retStatus_4; } ;; Function Flexio_Pwm_Ip_UpdatePeriodDuty (Flexio_Pwm_Ip_UpdatePeriodDuty, funcdef_no=26, decl_uid=4351, cgraph_uid=27, symbol_order=30) Symbols to be put in SSA form { D.4820 } Incremental SSA update started at block: 0 Number of blocks in CFG: 15 Number of blocks to update: 14 ( 93%) Merging blocks 6 and 11 Removing basic block 10 Removing basic block 13 Merging blocks 6 and 12 Merging blocks 6 and 14 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 ;; 2 succs { 3 7 } ;; 3 succs { 4 5 } ;; 4 succs { 6 } ;; 5 succs { 6 } ;; 6 succs { 7 } ;; 7 succs { 8 9 } ;; 8 succs { 9 } ;; 9 succs { 1 } Flexio_Pwm_Ip_UpdatePeriodDuty (uint8 instanceId, uint8 channel, uint16 period, uint16 dutyCycle) { const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; _3; _Bool _4; unsigned char _5; unsigned char _6; unsigned char _7; unsigned char _8; unsigned char _9; long unsigned int _21; int _22; long unsigned int _23; _Bool _24; long unsigned int _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; long unsigned int _29; long unsigned int _30; long unsigned int _31; long unsigned int _32; long unsigned int _33; long unsigned int _34; long unsigned int _35; long unsigned int _36; long unsigned int _37; long unsigned int _38; long unsigned int _39; long unsigned int _40; long unsigned int _41; long unsigned int _42; long unsigned int _43; long unsigned int _44; long unsigned int _51; int _52; long unsigned int _53; long unsigned int _54; long unsigned int _55; long unsigned int _57; long unsigned int _58; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_14(D); userCfg_16 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_16 # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = userCfg_16->pinId; # DEBUG base => 1077035008B # DEBUG pin => _2 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_GetPinOverride # DEBUG BEGIN_STMT _21 ={v} MEM[(const struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE; _22 = (int) _2; _23 = _21 >> _22; _24 = (_Bool) _23; # DEBUG base => NULL # DEBUG pin => NULL if (_24 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _3 = userCfg_16->polarity; if (_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG timerInitOut => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode # DEBUG BEGIN_STMT _28 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1]; _29 = _28 & 4244635647; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1] ={v} _29; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerInitOut => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG timerMode => 2 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _25 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1]; _26 = _25 & 4294967288; _27 = _26 | 2; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1] ={v} _27; goto ; [100.00%] [local count: 268435456]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG timerInitOut => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode # DEBUG BEGIN_STMT _33 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1]; _34 = _33 & 4244635647; _35 = _34 | 16777216; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_1] ={v} _35; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerInitOut => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG timerMode => 6 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _30 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1]; _31 = _30 & 4294967288; _32 = _31 | 6; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_1] ={v} _32; [local count: 536870913]: # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG BEGIN_STMT # DEBUG pin => _2 # DEBUG enabled => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinOverride # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _51 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE; _52 = (int) _2; _53 = 1 << _52; _54 = ~_53; _55 = _51 & _54; _57 = 0; _58 = _55 | _57; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE ={v} _58; [local count: 1073741824]: # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _4 = Flexio_Pwm_Ip_PinOverrideNeeded (instanceId_13(D), channel_14(D), period_18(D), dutyCycle_19(D)); if (_4 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _5 = (unsigned char) dutyCycle_19(D); _6 = _5 + 255; # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG value => _6 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue # DEBUG BEGIN_STMT _41 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1]; _42 = _41 & 4294967040; _43 = (long unsigned int) _6; _44 = _42 | _43; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1] ={v} _44; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT _7 = (unsigned char) period_18(D); _8 = _7 - _5; _9 = _8 + 255; # DEBUG base => 1077035008B # DEBUG timer => channel_14(D) # DEBUG value => _9 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue # DEBUG BEGIN_STMT _36 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1]; _37 = _36 & 4294902015; _38 = (long unsigned int) _9; _39 = _38 << 8; _40 = _37 | _39; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_1] ={v} _40; [local count: 1073741824]: # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT return 0; } ;; Function Flexio_Pwm_Ip_GetOutputState (Flexio_Pwm_Ip_GetOutputState, funcdef_no=27, decl_uid=4354, cgraph_uid=28, symbol_order=31) Flexio_Pwm_Ip_GetOutputState (uint8 instanceId, uint8 channel) { const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; long unsigned int _7; int _8; long unsigned int _9; _Bool _10; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_4(D); userCfg_6 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_6 # DEBUG BEGIN_STMT _2 = userCfg_6->pinId; # DEBUG base => 1077035008B # DEBUG pin => _2 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_GetPinState # DEBUG BEGIN_STMT _7 ={v} MEM[(const struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PIN; _8 = (int) _2; _9 = _7 >> _8; _10 = (_Bool) _9; # DEBUG base => NULL # DEBUG pin => NULL return _10; } ;; Function Flexio_Pwm_Ip_UpdateInterruptMode (Flexio_Pwm_Ip_UpdateInterruptMode, funcdef_no=28, decl_uid=4358, cgraph_uid=29, symbol_order=32) Flexio_Pwm_Ip_UpdateInterruptMode (uint8 instanceId, uint8 channel, Flexio_Pwm_Ip_InterruptType irqMode) { const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; unsigned char _3; unsigned char _4; int _5; int _6; signed char _7; signed char _8; unsigned char timerIrqMask.2_9; signed char timerIrqMask.3_10; signed char _11; unsigned char _12; long unsigned int _13; long unsigned int pinIrqMask.4_14; long unsigned int _15; unsigned int _16; unsigned char _17; unsigned char _18; void (*) (Flexio_Pwm_Ip_OccurredIRQType, void *) _19; long unsigned int pinIrqMask.5_20; long unsigned int _21; unsigned char _22; void (*) (Flexio_Pwm_Ip_OccurredIRQType, void *) _23; long unsigned int pinIrqMask.6_24; long unsigned int _25; unsigned char _26; int _27; unsigned int _28; unsigned char _29; unsigned char _30; int _31; int _32; unsigned char _33; unsigned char timerIrqMask.7_34; unsigned char _35; long unsigned int vol.12_52; long unsigned int vol.10_53; long unsigned int vol.8_54; int _55; int _56; long unsigned int _57; long unsigned int vol.8_58; long unsigned int _59; long unsigned int vol.12_60; long unsigned int vol.10_61; long unsigned int _62; long unsigned int vol.12_63; [local count: 1073741823]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_40(D); userCfg_42 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_42 # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT _2 = userCfg_42->timerId; Flexio_Mcl_Ip_ClearTimerStatus (1077035008B, _2); # DEBUG BEGIN_STMT _3 = userCfg_42->pinId; # DEBUG base => 1077035008B # DEBUG pin => _3 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ClearPinFlag # DEBUG BEGIN_STMT _56 = (int) _3; _57 = 1 << _56; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINSTAT ={v} _57; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG BEGIN_STMT _4 = userCfg_42->timerId; _5 = (int) _4; _6 = 1 << _5; _7 = (signed char) _6; _8 = ~_7; timerIrqMask.2_9 ={v} timerIrqMask; timerIrqMask.3_10 = (signed char) timerIrqMask.2_9; _11 = _8 & timerIrqMask.3_10; _12 = (unsigned char) _11; timerIrqMask ={v} _12; # DEBUG BEGIN_STMT _13 = ~_57; pinIrqMask.4_14 ={v} pinIrqMask; _15 = _13 & pinIrqMask.4_14; pinIrqMask ={v} _15; # DEBUG BEGIN_STMT _16 = 1 << _5; _17 = (unsigned char) _16; Flexio_Mcl_Ip_SetTimerInterrupt (1077035008B, _17, 0); # DEBUG BEGIN_STMT _18 = userCfg_42->pinId; # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinRisingEdge # DEBUG BEGIN_STMT vol.8_54 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN; _55 = (int) _18; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN ={v} 0; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinFallingEdge # DEBUG BEGIN_STMT vol.10_53 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN ={v} 0; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq # DEBUG BEGIN_STMT vol.12_52 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} 0; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT if (irqMode_47(D) == 1) goto ; [34.00%] else goto ; [66.00%] [local count: 708669604]: if (irqMode_47(D) == 3) goto ; [34.00%] else goto ; [66.00%] [local count: 606019886]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinRisingEdge # DEBUG BEGIN_STMT vol.8_58 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN; _59 = 1 << _55; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINREN ={v} _59; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT _19 = userCfg_42->callback.cbFunction; if (_19 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 424213919]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq # DEBUG BEGIN_STMT vol.12_60 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} _59; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT pinIrqMask.5_20 ={v} pinIrqMask; _21 = pinIrqMask.5_20 | _59; pinIrqMask ={v} _21; [local count: 1073741824]: # DEBUG BEGIN_STMT _22 = irqMode_47(D) + 254; if (_22 <= 1) goto ; [41.00%] else goto ; [59.00%] [local count: 440234148]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinFallingEdge # DEBUG BEGIN_STMT vol.10_61 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN; _62 = 1 << _55; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINFEN ={v} _62; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT _23 = userCfg_42->callback.cbFunction; if (_23 != 0B) goto ; [70.00%] else goto ; [30.00%] [local count: 308163904]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG pin => _18 # DEBUG enabled => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinIrq # DEBUG BEGIN_STMT vol.12_63 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINIEN ={v} _62; # DEBUG base => NULL # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG BEGIN_STMT pinIrqMask.6_24 ={v} pinIrqMask; _25 = pinIrqMask.6_24 | _62; pinIrqMask ={v} _25; [local count: 1073741824]: # DEBUG BEGIN_STMT if (irqMode_47(D) == 4) goto ; [20.24%] else goto ; [79.76%] [local count: 217325345]: # DEBUG BEGIN_STMT _26 = userCfg_42->timerId; _27 = (int) _26; _28 = 1 << _27; _29 = (unsigned char) _28; Flexio_Mcl_Ip_SetTimerInterrupt (1077035008B, _29, 1); # DEBUG BEGIN_STMT _30 = userCfg_42->timerId; _31 = (int) _30; _32 = 1 << _31; _33 = (unsigned char) _32; timerIrqMask.7_34 ={v} timerIrqMask; _35 = _33 | timerIrqMask.7_34; timerIrqMask ={v} _35; [local count: 1073741824]: # DEBUG BEGIN_STMT return 0; } ;; Function Flexio_Pwm_Ip_InitChannel (Flexio_Pwm_Ip_InitChannel, funcdef_no=22, decl_uid=4335, cgraph_uid=23, symbol_order=26) Symbols to be put in SSA form { D.4823 } Incremental SSA update started at block: 0 Number of blocks in CFG: 16 Number of blocks to update: 15 ( 94%) Merging blocks 5 and 14 Removing basic block 11 Merging blocks 5 and 15 Merging blocks 5 and 13 Merging blocks 5 and 12 Merging blocks 5 and 10 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 3 4 5 6 7 8 9 ;; 2 succs { 3 4 } ;; 3 succs { 5 } ;; 4 succs { 5 } ;; 5 succs { 6 9 } ;; 6 succs { 7 8 } ;; 7 succs { 9 } ;; 8 succs { 9 } ;; 9 succs { 1 } Flexio_Pwm_Ip_InitChannel (uint8 instanceId, const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg) { Flexio_Pwm_Ip_StatusType retStatus; unsigned char _1; int _2; _3; _4; unsigned char _5; unsigned char _6; unsigned char _7; unsigned char _8; short unsigned int _9; short unsigned int _10; _Bool _11; unsigned char _12; short unsigned int _13; unsigned char _14; unsigned char _15; short unsigned int _16; unsigned char _17; unsigned char _18; unsigned char _19; _20; long unsigned int _32; long unsigned int _33; long unsigned int _34; long unsigned int _35; long unsigned int _36; long unsigned int _37; long unsigned int _38; int _39; long unsigned int _40; long unsigned int _41; int _42; long unsigned int _43; long unsigned int _44; long unsigned int _45; long unsigned int _46; long unsigned int _47; long unsigned int _48; long unsigned int _49; long unsigned int _50; int _51; long unsigned int _52; long unsigned int _53; long unsigned int _54; long unsigned int _55; long unsigned int _56; long unsigned int _57; long unsigned int _58; long unsigned int _59; long unsigned int _60; long unsigned int _61; int _71; long unsigned int _72; long unsigned int _73; long unsigned int _74; long unsigned int _75; long unsigned int _76; long unsigned int _77; int _78; long unsigned int _79; long unsigned int _80; long unsigned int _81; long unsigned int _82; long unsigned int _83; long unsigned int _84; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT _1 = userCfg_25(D)->timerId; _2 = (int) _1; Flexio_Pwm_Ip_aState[_2] = userCfg_25(D); # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _1 # DEBUG timerMode => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _32 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_2]; _33 = _32 & 4294967288; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_2] ={v} _33; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG BEGIN_STMT _3 = userCfg_25(D)->polarity; if (_3 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _1 # DEBUG timerInitOut => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode # DEBUG BEGIN_STMT _34 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2]; _35 = _34 & 4244635647; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2] ={v} _35; goto ; [100.00%] [local count: 536870913]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _1 # DEBUG timerInitOut => 1 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode # DEBUG BEGIN_STMT _36 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2]; _37 = _36 & 4244635647; _38 = _37 | 16777216; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_2] ={v} _38; [local count: 1073741824]: # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerInitOut => NULL # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerInitOut => NULL # DEBUG BEGIN_STMT _4 = userCfg_25(D)->prescaler; # DEBUG timer => _1 # DEBUG prescaler => _4 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPrescaler # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _78 = (int) _1; _79 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_78]; _80 = _79 & 4287627263; _81 = (long unsigned int) _4; _82 = _81 << 20; _83 = _82 & 7340032; _84 = _80 | _83; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_78] ={v} _84; # DEBUG timer => NULL # DEBUG prescaler => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _5 = userCfg_25(D)->timerId; # DEBUG base => 1077035008B # DEBUG timer => _5 # DEBUG pinMode => 3 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinOutput # DEBUG BEGIN_STMT _42 = (int) _5; _43 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_42]; _44 = _43 & 4294770687; _45 = _44 | 196608; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_42] ={v} _45; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG pinMode => NULL # DEBUG BEGIN_STMT _6 = userCfg_25(D)->pinId; # DEBUG timer => _5 # DEBUG pin => _6 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPin # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _71 = (int) _5; _72 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_71]; _73 = _72 & 4294959359; _74 = (long unsigned int) _6; _75 = _74 << 8; _76 = _75 & 7936; _77 = _73 | _76; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_71] ={v} _77; # DEBUG timer => NULL # DEBUG pin => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _7 = userCfg_25(D)->timerId; # DEBUG base => 1077035008B # DEBUG timer => _7 # DEBUG polarity => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinPolarity # DEBUG BEGIN_STMT _39 = (int) _7; _40 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_39]; _41 = _40 & 4294967167; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_39] ={v} _41; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG polarity => NULL # DEBUG BEGIN_STMT retStatus_30 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_23(D), _7, 0); # DEBUG retStatus => retStatus_30 # DEBUG BEGIN_STMT _8 = userCfg_25(D)->timerId; _9 = userCfg_25(D)->period; _10 = userCfg_25(D)->dutyCycle; _11 = Flexio_Pwm_Ip_PinOverrideNeeded (instanceId_23(D), _8, _9, _10); if (_11 != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: # DEBUG BEGIN_STMT _12 = userCfg_25(D)->timerId; _13 = userCfg_25(D)->dutyCycle; _14 = (unsigned char) _13; _15 = _14 + 255; # DEBUG base => 1077035008B # DEBUG timer => _12 # DEBUG value => _15 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue # DEBUG BEGIN_STMT _51 = (int) _12; _52 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51]; _53 = _52 & 4294967040; _54 = (long unsigned int) _15; _55 = _53 | _54; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51] ={v} _55; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT _16 = userCfg_25(D)->period; _17 = (unsigned char) _16; _18 = _17 - _14; _19 = _18 + 255; # DEBUG base => 1077035008B # DEBUG timer => _12 # DEBUG value => _19 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue # DEBUG BEGIN_STMT _46 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51]; _47 = _46 & 4294902015; _48 = (long unsigned int) _19; _49 = _48 << 8; _50 = _47 | _49; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_51] ={v} _50; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT _20 = userCfg_25(D)->polarity; if (_20 == 0) goto ; [50.00%] else goto ; [50.00%] [local count: 268435456]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _12 # DEBUG timerMode => 2 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _56 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51]; _57 = _56 & 4294967288; _58 = _57 | 2; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51] ={v} _58; goto ; [100.00%] [local count: 268435456]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _12 # DEBUG timerMode => 6 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _59 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51]; _60 = _59 & 4294967288; _61 = _60 | 6; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_51] ={v} _61; [local count: 1073741824]: # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG BEGIN_STMT return retStatus_30; } ;; Function Flexio_Pwm_Ip_DeInitChannel (Flexio_Pwm_Ip_DeInitChannel, funcdef_no=23, decl_uid=4338, cgraph_uid=24, symbol_order=27) Symbols to be put in SSA form { D.4824 } Incremental SSA update started at block: 0 Number of blocks in CFG: 13 Number of blocks to update: 12 ( 92%) Merging blocks 2 and 9 Removing basic block 4 Removing basic block 6 Removing basic block 11 Merging blocks 2 and 10 Merging blocks 2 and 12 Merging blocks 2 and 8 Merging blocks 2 and 5 Merging blocks 2 and 7 Merging blocks 2 and 3 ;; 1 loops found ;; ;; Loop 0 ;; header 0, latch 1 ;; depth 0, outer -1 ;; nodes: 0 1 2 ;; 2 succs { 1 } Flexio_Pwm_Ip_DeInitChannel (uint8 instanceId, uint8 channel) { Flexio_Pwm_Ip_StatusType retStatus; const struct Flexio_Pwm_Ip_ChannelConfigType * const userCfg; int _1; unsigned char _2; unsigned char _3; unsigned char _4; unsigned char _5; unsigned char _6; int _7; long unsigned int _17; long unsigned int _18; long unsigned int _19; long unsigned int _20; long unsigned int _21; long unsigned int _22; long unsigned int _23; long unsigned int _24; long unsigned int _25; long unsigned int _26; long unsigned int _27; long unsigned int _28; int _29; long unsigned int _30; long unsigned int _31; int _32; long unsigned int _33; long unsigned int _34; long unsigned int _43; int _44; long unsigned int _45; long unsigned int _46; long unsigned int _47; long unsigned int _49; long unsigned int _50; long unsigned int _51; int _52; long unsigned int _53; long unsigned int _54; long unsigned int _55; long unsigned int _57; long unsigned int _58; [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _1 = (int) channel_9(D); userCfg_11 = Flexio_Pwm_Ip_aState[_1]; # DEBUG userCfg => userCfg_11 # DEBUG BEGIN_STMT # DEBUG retStatus => 0 # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT _2 = userCfg_11->timerId; # DEBUG base => 1077035008B # DEBUG timer => _2 # DEBUG timerMode => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerMode # DEBUG BEGIN_STMT _32 = (int) _2; _33 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_32]; _34 = _33 & 4294967288; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_32] ={v} _34; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerMode => NULL # DEBUG BEGIN_STMT retStatus_13 = Flexio_Pwm_Ip_UpdateInterruptMode (instanceId_8(D), channel_9(D), 0); # DEBUG retStatus => retStatus_13 # DEBUG BEGIN_STMT _3 = userCfg_11->timerId; # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG polarity => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinPolarity # DEBUG BEGIN_STMT _29 = (int) _3; _30 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29]; _31 = _30 & 4294967167; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _31; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG polarity => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG pin => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPin # DEBUG BEGIN_STMT _27 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29]; _28 = _27 & 4294959359; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _28; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG pin => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG pinMode => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPinOutput # DEBUG BEGIN_STMT _25 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29]; _26 = _25 & 4294770687; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCTL[_29] ={v} _26; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG pinMode => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG timerInitOut => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerInitMode # DEBUG BEGIN_STMT _23 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29]; _24 = _23 & 4244635647; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29] ={v} _24; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG timerInitOut => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG prescaler => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetTimerPrescaler # DEBUG BEGIN_STMT _21 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29]; _22 = _21 & 4287627263; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCFG[_29] ={v} _22; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG prescaler => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG value => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetUpperValue # DEBUG BEGIN_STMT _19 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29]; _20 = _19 & 4294902015; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29] ={v} _20; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT # DEBUG base => 1077035008B # DEBUG timer => _3 # DEBUG value => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetLowerValue # DEBUG BEGIN_STMT _17 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29]; _18 = _17 & 4294967040; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].TIMCMP[_29] ={v} _18; # DEBUG base => NULL # DEBUG timer => NULL # DEBUG value => NULL # DEBUG BEGIN_STMT _4 = userCfg_11->pinId; # DEBUG pin => _4 # DEBUG enabled => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_ConfigurePinOverride # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _51 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE; _52 = (int) _4; _53 = 1 << _52; _54 = ~_53; _55 = _51 & _54; _57 = 0; _58 = _55 | _57; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTE ={v} _58; # DEBUG pin => NULL # DEBUG enabled => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _5 = userCfg_11->pinId; # DEBUG pin => _5 # DEBUG level => 0 # DEBUG INLINE_ENTRY Flexio_Pwm_Ip_SetPinLevel # DEBUG base => 1077035008B # DEBUG BEGIN_STMT _43 ={v} MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTD; _44 = (int) _5; _45 = 1 << _44; _46 = ~_45; _47 = _43 & _46; _49 = 0; _50 = _47 | _49; MEM[(struct Flexio_Pwm_Ip_HwAddrType *)1077035008B].PINOUTD ={v} _50; # DEBUG pin => NULL # DEBUG level => NULL # DEBUG base => NULL # DEBUG BEGIN_STMT _6 = userCfg_11->timerId; _7 = (int) _6; Flexio_Pwm_Ip_aState[_7] = 0B; # DEBUG retStatus => retStatus_13 # DEBUG BEGIN_STMT return retStatus_13; }