IPA function summary for Port_Ipw_RefreshPortDirection/8 inlinable
  global time:     128.451413
  self size:       47
  global size:     47
  min size:       18
  self stack:      0
  global stack:    0
    size:33.000000, time:105.086868
    size:4.000000, time:6.427478,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
  loop iterations:(op0[ref offset: 0] changed)
  calls:
    Port_Ci_Port_Ip_SetPIDR/18 function body not available
      loop depth: 1 freq:0.15 size: 3 time: 12
    Port_Ci_Port_Ip_ClearPDDR/17 function body not available
      loop depth: 1 freq:0.76 size: 3 time: 12
    Port_Ci_Port_Ip_SetPDDR/16 function body not available
      loop depth: 1 freq:0.41 size: 3 time: 12

IPA function summary for Port_Ipw_SetGpioPadOutput/7 inlinable
  global time:     18.044928
  self size:       26
  global size:     26
  min size:       12
  self stack:      0
  global stack:    0
    size:14.000000, time:7.457632
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op1[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op1[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op1[ref offset: 96] changed || op0 changed)
  calls:
    Port_Ci_Port_Ip_SetPCOR/15 function body not available
      loop depth: 0 freq:0.26 size: 3 time: 12
    Port_Ci_Port_Ip_SetPSOR/14 function body not available
      loop depth: 0 freq:0.20 size: 3 time: 12

IPA function summary for Port_Ipw_SetGpioDirChangeability/6 inlinable
  global time:     30.500000
  self size:       16
  global size:     16
  min size:       4
  self stack:      0
  global stack:    0
    size:2.000000, time:2.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:2.000000,  nonconst if:(op1 changed)
    size:2.000000, time:1.000000,  executed if:(op1 == 0),  nonconst if:(op0 changed) && (op1 == 0)
    size:1.000000, time:0.500000,  executed if:(op1 == 0)
    size:1.000000, time:0.500000,  executed if:(op1 != 0),  nonconst if:(op0 changed) && (op1 != 0)
    size:1.000000, time:0.500000,  executed if:(op1 != 0)
  array index:(op0 changed)
  calls:
    SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00/23 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00/22 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for Port_Ipw_SetPinMode/5 inlinable
  global time:     35.738930
  self size:       53
  global size:     53
  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:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op2[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op2[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op2[ref offset: 96] changed || op0 changed)
    size:2.000000, time:2.000000,  nonconst if:(op1 changed)
    size:13.000000, time:7.085000,  executed if:(op1 <= 7)
    size:3.000000, time:1.267500,  executed if:(op1 <= 7),  nonconst if:(op1 changed) && (op1 <= 7)
    size:0.500000, time:0.071825,  executed if:(op1 == 1) && (op1 <= 7) && (not inlined)
    size:6.500000, time:0.836043,  executed if:(op1 == 1) && (op1 <= 7)
  calls:
    Port_Ci_Port_Ip_SetPCR/19 function body not available
      loop depth: 0 freq:0.42 size: 4 time: 13 predicate: (op1 <= 7)
    Port_Ci_Port_Ip_ReadPCR/21 function body not available
      loop depth: 0 freq:0.42 size: 4 time: 13 predicate: (op1 <= 7)
    Port_Ipw_SetGpioDirChangeability/6 function not considered for inlining
      loop depth: 0 freq:0.28 size: 3 time: 12callee size: 8 stack: 0 predicate: (op1 != 1) && (op1 <= 7)
       op1 is compile time invariant
    Port_Ipw_SetPinDirection/4 function not considered for inlining
      loop depth: 0 freq:0.14 size: 4 time: 13callee size:21 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
    Port_Ipw_SetGpioPadOutput/7 function not considered for inlining
      loop depth: 0 freq:0.05 size: 3 time: 12callee size:13 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
    Port_Ipw_SetGpioDirChangeability/6 function not considered for inlining
      loop depth: 0 freq:0.14 size: 3 time: 12callee size: 8 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
       op1 is compile time invariant

IPA function summary for Port_Ipw_SetPinDirection/4 inlinable
  global time:     25.924225
  self size:       43
  global size:     43
  min size:       0
  self stack:      0
  global stack:    0
    size:11.000000, time:9.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op2[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op2[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op2[ref offset: 96] changed || op0 changed)
    size:2.000000, time:1.500000,  nonconst if:(op1 changed)
    size:2.000000, time:1.196400,  executed if:(op1 != 2),  nonconst if:(op1 changed) && (op1 != 2)
    size:2.000000, time:0.954249,  executed if:(op1 != 1) && (op1 != 2),  nonconst if:(op1 changed) && (op1 != 1) && (op1 != 2)
    size:4.000000, time:1.133192,  executed if:(op1 == 1 || op1 == 3) && (op1 != 2)
    size:2.000000, time:0.566596,  executed if:(op1 == 1 || op1 == 3) && (op1 != 2),  nonconst if:(op1 changed) && (op1 == 1 || op1 == 3) && (op1 != 2)
    size:1.000000, time:0.057340,  executed if:(op1 == 3) && (op1 != 2)
    size:4.000000, time:0.607200,  executed if:(op1 == 2)
  calls:
    Port_Ci_Port_Ip_SetPIDR/18 function body not available
      loop depth: 0 freq:0.06 size: 3 time: 12 predicate: (op1 == 3) && (op1 != 2)
    Port_Ci_Port_Ip_ClearPDDR/17 function body not available
      loop depth: 0 freq:0.28 size: 3 time: 12 predicate: (op1 == 1 || op1 == 3) && (op1 != 2)
    Port_Ci_Port_Ip_SetPDDR/16 function body not available
      loop depth: 0 freq:0.15 size: 3 time: 12 predicate: (op1 == 2)

IPA function summary for Port_Ipw_Init/3 inlinable
  global time:     358.272729
  self size:       32
  global size:     32
  min size:       22
  self stack:      0
  global stack:    0
    size:15.500000, time:129.500001
    size:4.500000, time:10.590909,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 128] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 128] changed)
  loop iterations:(op0[ref offset: 128] changed)
  calls:
    Port_Ipw_Init_UnusedPins/2 function not considered for inlining
      loop depth: 0 freq:1.00 size: 2 time: 11callee size:42 stack: 0
    Port_Ci_Port_Ip_Init/12 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant
    Port_Ci_Port_Ip_SetDFER/11 function body not available
      loop depth: 1 freq:8.09 size: 3 time: 12
    Port_Ci_Port_Ip_ConfigDigitalFilter/10 function body not available
      loop depth: 1 freq:8.09 size: 3 time: 12

IPA function summary for Port_Ipw_Init_UnusedPins/2 inlinable
  global time:     449.595084
  self size:       84
  global size:     84
  min size:       38
  self stack:      0
  global stack:    0
    size:57.000000, time:201.153353
    size:6.000000, time:11.454033,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 16] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 16] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 64] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 64] changed)
  loop iterations:(op0[ref offset: 16] changed)
  calls:
    Port_Ci_Port_Ip_SetPCR/19 function body not available
      loop depth: 1 freq:8.09 size: 4 time: 13
       op2 change 12.350000% of time
    Port_Ci_Port_Ip_SetPIDR/18 function body not available
      loop depth: 1 freq:0.80 size: 3 time: 12
    Port_Ci_Port_Ip_ClearPDDR/17 function body not available
      loop depth: 1 freq:3.95 size: 3 time: 12
    Port_Ci_Port_Ip_SetPDDR/16 function body not available
      loop depth: 1 freq:4.14 size: 3 time: 12
    Port_Ci_Port_Ip_SetPCOR/15 function body not available
      loop depth: 1 freq:1.09 size: 3 time: 12
    Port_Ci_Port_Ip_SetPSOR/14 function body not available
      loop depth: 1 freq:0.84 size: 3 time: 12


Flattening functions:
Overall time estimate: 1046.527309 weighted by profile: 0.000000

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in Port_Ipw_RefreshPortDirection/8.
Enqueueing calls in Port_Ipw_SetGpioPadOutput/7.
Enqueueing calls in Port_Ipw_SetGpioDirChangeability/6.
Enqueueing calls in Port_Ipw_SetPinMode/5.
Enqueueing calls in Port_Ipw_SetPinDirection/4.
Enqueueing calls in Port_Ipw_Init/3.
Enqueueing calls in Port_Ipw_Init_UnusedPins/2.

Considering Port_Ipw_Init_UnusedPins/2 with 84 size
 to be inlined into Port_Ipw_Init/3 in ../RTD/src/Port_Ipw.c:394
 Estimated badness is -0.093524, frequency 1.00.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

Deciding on functions to be inlined into all callers and removing useless speculations:
Overall time estimate: 1023.073275 weighted by profile: 0.000000

Why inlining failed?
function body not available                       :       21 calls, 41.221018 freq, 0 count
--param max-inline-insns-auto limit reached       :        1 calls, 0.143650 freq, 0 count
call is unlikely and code size would grow         :        3 calls, 0.468843 freq, 0 count
IPA function summary for Port_Ipw_RefreshPortDirection/8 inlinable
  global time:     128.451413
  self size:       47
  global size:     47
  min size:       18
  self stack:      0
  global stack:    0
    size:33.000000, time:105.086868
    size:4.000000, time:6.427478,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
  loop iterations:(op0[ref offset: 0] changed)
  calls:
    Port_Ci_Port_Ip_SetPIDR/18 function body not available
      loop depth: 1 freq:0.15 size: 3 time: 12
    Port_Ci_Port_Ip_ClearPDDR/17 function body not available
      loop depth: 1 freq:0.76 size: 3 time: 12
    Port_Ci_Port_Ip_SetPDDR/16 function body not available
      loop depth: 1 freq:0.41 size: 3 time: 12

IPA function summary for Port_Ipw_SetGpioPadOutput/7 inlinable
  global time:     18.044928
  self size:       26
  global size:     26
  min size:       14
  self stack:      0
  global stack:    0
  estimated growth:20
    size:14.000000, time:7.457632
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op1[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op1[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op1[ref offset: 96] changed || op0 changed)
  calls:
    Port_Ci_Port_Ip_SetPCOR/15 function body not available
      loop depth: 0 freq:0.26 size: 3 time: 12
    Port_Ci_Port_Ip_SetPSOR/14 function body not available
      loop depth: 0 freq:0.20 size: 3 time: 12

IPA function summary for Port_Ipw_SetGpioDirChangeability/6 inlinable
  global time:     30.500000
  self size:       16
  global size:     16
  min size:       2
  self stack:      0
  global stack:    0
  estimated growth:11
    size:2.000000, time:2.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:2.000000,  nonconst if:(op1 changed)
    size:2.000000, time:1.000000,  executed if:(op1 == 0),  nonconst if:(op0 changed) && (op1 == 0)
    size:1.000000, time:0.500000,  executed if:(op1 == 0)
    size:1.000000, time:0.500000,  executed if:(op1 != 0),  nonconst if:(op0 changed) && (op1 != 0)
    size:1.000000, time:0.500000,  executed if:(op1 != 0)
  array index:(op0 changed)
  calls:
    SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00/23 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10
    SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00/22 function body not available
      loop depth: 0 freq:1.00 size: 1 time: 10

IPA function summary for Port_Ipw_SetPinMode/5 inlinable
  global time:     35.738930
  self size:       53
  global size:     53
  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:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op2[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op2[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op2[ref offset: 96] changed || op0 changed)
    size:2.000000, time:2.000000,  nonconst if:(op1 changed)
    size:13.000000, time:7.085000,  executed if:(op1 <= 7)
    size:3.000000, time:1.267500,  executed if:(op1 <= 7),  nonconst if:(op1 changed) && (op1 <= 7)
    size:0.500000, time:0.071825,  executed if:(op1 == 1) && (op1 <= 7) && (not inlined)
    size:6.500000, time:0.836043,  executed if:(op1 == 1) && (op1 <= 7)
  calls:
    Port_Ci_Port_Ip_SetPCR/19 function body not available
      loop depth: 0 freq:0.42 size: 4 time: 13 predicate: (op1 <= 7)
    Port_Ci_Port_Ip_ReadPCR/21 function body not available
      loop depth: 0 freq:0.42 size: 4 time: 13 predicate: (op1 <= 7)
    Port_Ipw_SetGpioDirChangeability/6 call is unlikely and code size would grow
      loop depth: 0 freq:0.28 size: 3 time: 12callee size: 8 stack: 0 predicate: (op1 != 1) && (op1 <= 7)
       op1 is compile time invariant
    Port_Ipw_SetPinDirection/4 --param max-inline-insns-auto limit reached
      loop depth: 0 freq:0.14 size: 4 time: 13callee size:21 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
    Port_Ipw_SetGpioPadOutput/7 call is unlikely and code size would grow
      loop depth: 0 freq:0.05 size: 3 time: 12callee size:13 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
    Port_Ipw_SetGpioDirChangeability/6 call is unlikely and code size would grow
      loop depth: 0 freq:0.14 size: 3 time: 12callee size: 8 stack: 0 predicate: (op1 == 1) && (op1 <= 7)
       op1 is compile time invariant

IPA function summary for Port_Ipw_SetPinDirection/4 inlinable
  global time:     25.924225
  self size:       43
  global size:     43
  min size:       11
  self stack:      0
  global stack:    0
  estimated growth:36
    size:11.000000, time:9.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op2[ref offset: 96] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op2[ref offset: 96] changed)
    size:1.000000, time:1.000000,  nonconst if:(op0 changed)
    size:1.000000, time:1.000000,  nonconst if:(op2[ref offset: 96] changed || op0 changed)
    size:2.000000, time:1.500000,  nonconst if:(op1 changed)
    size:2.000000, time:1.196400,  executed if:(op1 != 2),  nonconst if:(op1 changed) && (op1 != 2)
    size:2.000000, time:0.954249,  executed if:(op1 != 1) && (op1 != 2),  nonconst if:(op1 changed) && (op1 != 1) && (op1 != 2)
    size:4.000000, time:1.133192,  executed if:(op1 == 1 || op1 == 3) && (op1 != 2)
    size:2.000000, time:0.566596,  executed if:(op1 == 1 || op1 == 3) && (op1 != 2),  nonconst if:(op1 changed) && (op1 == 1 || op1 == 3) && (op1 != 2)
    size:1.000000, time:0.057340,  executed if:(op1 == 3) && (op1 != 2)
    size:4.000000, time:0.607200,  executed if:(op1 == 2)
  calls:
    Port_Ci_Port_Ip_SetPIDR/18 function body not available
      loop depth: 0 freq:0.06 size: 3 time: 12 predicate: (op1 == 3) && (op1 != 2)
    Port_Ci_Port_Ip_ClearPDDR/17 function body not available
      loop depth: 0 freq:0.28 size: 3 time: 12 predicate: (op1 == 1 || op1 == 3) && (op1 != 2)
    Port_Ci_Port_Ip_SetPDDR/16 function body not available
      loop depth: 0 freq:0.15 size: 3 time: 12 predicate: (op1 == 2)

IPA function summary for Port_Ipw_Init/3 inlinable
  global time:     784.413778
  self size:       32
  global size:     107
  min size:       78
  self stack:      0
  global stack:    0
    size:73.500000, time:331.653354
    size:4.500000, time:10.590909,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 128] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 128] changed)
  loop iterations:(op0[ref offset: 128] changed)
  calls:
    Port_Ipw_Init_UnusedPins/2 inlined
      loop depth: 0 freq:1.00 size: 2 time: 11callee size:42 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      Port_Ci_Port_Ip_SetPCR/19 function body not available
        loop depth: 1 freq:8.09 size: 4 time: 13
         op2 change 12.350000% of time
      Port_Ci_Port_Ip_SetPIDR/18 function body not available
        loop depth: 1 freq:0.80 size: 3 time: 12
      Port_Ci_Port_Ip_ClearPDDR/17 function body not available
        loop depth: 1 freq:3.95 size: 3 time: 12
      Port_Ci_Port_Ip_SetPDDR/16 function body not available
        loop depth: 1 freq:4.14 size: 3 time: 12
      Port_Ci_Port_Ip_SetPCOR/15 function body not available
        loop depth: 1 freq:1.09 size: 3 time: 12
      Port_Ci_Port_Ip_SetPSOR/14 function body not available
        loop depth: 1 freq:0.84 size: 3 time: 12
    Port_Ci_Port_Ip_Init/12 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant
    Port_Ci_Port_Ip_SetDFER/11 function body not available
      loop depth: 1 freq:8.09 size: 3 time: 12
    Port_Ci_Port_Ip_ConfigDigitalFilter/10 function body not available
      loop depth: 1 freq:8.09 size: 3 time: 12

Symbol table:

SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00/23 (SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00) @05fc47e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetGpioDirChangeability/6 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00/22 (SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00) @05fc4700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetGpioDirChangeability/6 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
Port_Ci_Port_Ip_ReadPCR/21 (Port_Ci_Port_Ip_ReadPCR) @05fc4540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetPinMode/5 (453655921 (estimated locally),0.42 per call) 
  Calls: 
Port_au16PinDescription/20 (Port_au16PinDescription) @05fc2f30
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Port_Ipw_SetPinMode/5 (read)
  Availability: not_available
  Varpool flags: read-only
Port_Ci_Port_Ip_SetPCR/19 (Port_Ci_Port_Ip_SetPCR) @05fc42a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetPinMode/5 (453655921 (estimated locally),0.42 per call) Port_Ipw_Init_UnusedPins/2 (868754750 (estimated locally),8.09 per call) 
  Calls: 
Port_Ci_Port_Ip_SetPIDR/18 (Port_Ci_Port_Ip_SetPIDR) @05fc40e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_RefreshPortDirection/8 (18265121 (estimated locally),0.15 per call) Port_Ipw_SetPinDirection/4 (61567824 (estimated locally),0.06 per call) Port_Ipw_Init_UnusedPins/2 (85948617 (estimated locally),0.80 per call) 
  Calls: 
Port_Ci_Port_Ip_ClearPDDR/17 (Port_Ci_Port_Ip_ClearPDDR) @05fc4000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_RefreshPortDirection/8 (90242694 (estimated locally),0.76 per call) Port_Ipw_SetPinDirection/4 (304188856 (estimated locally),0.28 per call) Port_Ipw_Init_UnusedPins/2 (424647321 (estimated locally),3.95 per call) 
  Calls: 
Port_Ci_Port_Ip_SetPDDR/16 (Port_Ci_Port_Ip_SetPDDR) @05edce00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_RefreshPortDirection/8 (48354889 (estimated locally),0.41 per call) Port_Ipw_SetPinDirection/4 (162994009 (estimated locally),0.15 per call) Port_Ipw_Init_UnusedPins/2 (444107427 (estimated locally),4.14 per call) 
  Calls: 
Port_Ci_Port_Ip_SetPCOR/15 (Port_Ci_Port_Ip_SetPCOR) @05edc000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetGpioPadOutput/7 (282617438 (estimated locally),0.26 per call) Port_Ipw_Init_UnusedPins/2 (116892627 (estimated locally),1.09 per call) 
  Calls: 
Port_Ci_Port_Ip_SetPSOR/14 (Port_Ci_Port_Ip_SetPSOR) @05edcee0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_SetGpioPadOutput/7 (217325345 (estimated locally),0.20 per call) Port_Ipw_Init_UnusedPins/2 (89887343 (estimated locally),0.84 per call) 
  Calls: 
Port_au32PortCiGpioBaseAddr/13 (Port_au32PortCiGpioBaseAddr) @05fc2438
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_SetPinDirection/4 (read)Port_Ipw_SetPinDirection/4 (read)Port_Ipw_SetPinDirection/4 (read)Port_Ipw_SetGpioPadOutput/7 (read)Port_Ipw_SetGpioPadOutput/7 (read)Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_RefreshPortDirection/8 (read)Port_Ipw_RefreshPortDirection/8 (read)Port_Ipw_RefreshPortDirection/8 (read)
  Availability: not_available
  Varpool flags:
Port_Ci_Port_Ip_Init/12 (Port_Ci_Port_Ip_Init) @05edcd20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_Init/3 (107374182 (estimated locally),1.00 per call) 
  Calls: 
Port_Ci_Port_Ip_SetDFER/11 (Port_Ci_Port_Ip_SetDFER) @05edcc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_Init/3 (868754747 (estimated locally),8.09 per call) 
  Calls: 
Port_Ci_Port_Ip_ConfigDigitalFilter/10 (Port_Ci_Port_Ip_ConfigDigitalFilter) @05edcb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Port_Ipw_Init/3 (868754747 (estimated locally),8.09 per call) 
  Calls: 
Port_au32PortCiPortBaseAddr/9 (Port_au32PortCiPortBaseAddr) @05e2eea0
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: Port_Ipw_Init/3 (read)Port_Ipw_Init/3 (read)Port_Ipw_Init_UnusedPins/2 (read)Port_Ipw_SetPinMode/5 (read)Port_Ipw_SetPinMode/5 (read)
  Availability: not_available
  Varpool flags:
Port_Ipw_RefreshPortDirection/8 (Port_Ipw_RefreshPortDirection) @05edc700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: 
  Calls: Port_Ci_Port_Ip_SetPIDR/18 (18265121 (estimated locally),0.15 per call) Port_Ci_Port_Ip_ClearPDDR/17 (90242694 (estimated locally),0.76 per call) Port_Ci_Port_Ip_SetPDDR/16 (48354889 (estimated locally),0.41 per call) 
Port_Ipw_SetGpioPadOutput/7 (Port_Ipw_SetGpioPadOutput) @05ed6c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: Port_Ipw_SetPinMode/5 (49760030 (estimated locally),0.05 per call) 
  Calls: Port_Ci_Port_Ip_SetPCOR/15 (282617438 (estimated locally),0.26 per call) Port_Ci_Port_Ip_SetPSOR/14 (217325345 (estimated locally),0.20 per call) 
Port_Ipw_SetGpioDirChangeability/6 (Port_Ipw_SetGpioDirChangeability) @05ed6b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_Ipw_au16GpioDirChangeability/1 (read)Port_Ipw_au16GpioDirChangeability/1 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: Port_Ipw_SetPinMode/5 (299412908 (estimated locally),0.28 per call) Port_Ipw_SetPinMode/5 (154243013 (estimated locally),0.14 per call) 
  Calls: SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00/23 (1073741824 (estimated locally),1.00 per call) SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00/22 (1073741824 (estimated locally),1.00 per call) 
Port_Ipw_SetPinMode/5 (Port_Ipw_SetPinMode) @05ed68c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_au16PinDescription/20 (read)Port_au32PortCiPortBaseAddr/9 (read)Port_au32PortCiPortBaseAddr/9 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: Port_Ci_Port_Ip_SetPCR/19 (453655921 (estimated locally),0.42 per call) Port_Ci_Port_Ip_ReadPCR/21 (453655921 (estimated locally),0.42 per call) Port_Ipw_SetGpioDirChangeability/6 (299412908 (estimated locally),0.28 per call) Port_Ipw_SetPinDirection/4 (154243013 (estimated locally),0.14 per call) Port_Ipw_SetGpioPadOutput/7 (49760030 (estimated locally),0.05 per call) Port_Ipw_SetGpioDirChangeability/6 (154243013 (estimated locally),0.14 per call) 
Port_Ipw_SetPinDirection/4 (Port_Ipw_SetPinDirection) @05ed62a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_Ipw_au16GpioDirChangeability/1 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: Port_Ipw_SetPinMode/5 (154243013 (estimated locally),0.14 per call) 
  Calls: Port_Ci_Port_Ip_SetPIDR/18 (61567824 (estimated locally),0.06 per call) Port_Ci_Port_Ip_ClearPDDR/17 (304188856 (estimated locally),0.28 per call) Port_Ci_Port_Ip_SetPDDR/16 (162994009 (estimated locally),0.15 per call) 
Port_Ipw_Init/3 (Port_Ipw_Init) @05e34c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: Port_au32PortCiPortBaseAddr/9 (read)Port_au32PortCiPortBaseAddr/9 (read)Port_Ipw_au16GpioDirChangeability/1 (write)
  Referring: 
  Availability: available
  Function flags: count:107374182 (estimated locally) body optimize_size
  Called by: 
  Calls: Port_Ipw_Init_UnusedPins/2 (inlined) (107374182 (estimated locally),1.00 per call) Port_Ci_Port_Ip_Init/12 (107374182 (estimated locally),1.00 per call) Port_Ci_Port_Ip_SetDFER/11 (868754747 (estimated locally),8.09 per call) Port_Ci_Port_Ip_ConfigDigitalFilter/10 (868754747 (estimated locally),8.09 per call) 
Port_Ipw_Init_UnusedPins/2 (Port_Ipw_Init_UnusedPins) @05e349a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiGpioBaseAddr/13 (read)Port_au32PortCiPortBaseAddr/9 (read)
  Referring: 
  Function Port_Ipw_Init_UnusedPins/2 is inline copy in Port_Ipw_Init/3
  Availability: local
  Function flags: count:107374182 (estimated locally) body local optimize_size
  Called by: Port_Ipw_Init/3 (inlined) (107374182 (estimated locally),1.00 per call) 
  Calls: Port_Ci_Port_Ip_SetPCR/19 (868754750 (estimated locally),8.09 per call) Port_Ci_Port_Ip_SetPIDR/18 (85948617 (estimated locally),0.80 per call) Port_Ci_Port_Ip_ClearPDDR/17 (424647321 (estimated locally),3.95 per call) Port_Ci_Port_Ip_SetPDDR/16 (444107427 (estimated locally),4.14 per call) Port_Ci_Port_Ip_SetPCOR/15 (116892627 (estimated locally),1.09 per call) Port_Ci_Port_Ip_SetPSOR/14 (89887343 (estimated locally),0.84 per call) 
Port_Ipw_au16GpioDirChangeability/1 (Port_Ipw_au16GpioDirChangeability) @05e2e048
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: Port_Ipw_Init/3 (write)Port_Ipw_SetPinDirection/4 (read)Port_Ipw_SetGpioDirChangeability/6 (read)Port_Ipw_SetGpioDirChangeability/6 (write)
  Availability: available
  Varpool flags:

;; Function Port_Ipw_Init (Port_Ipw_Init, funcdef_no=2, decl_uid=5685, cgraph_uid=3, symbol_order=3)


Symbols to be put in SSA form
{ D.5891 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 22
Number of blocks to update: 21 ( 95%)


Merging blocks 5 and 10
Removing basic block 9
Removing basic block 21
;; 4 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
;;
;; Loop 2
;;  header 17, latch 16
;;  depth 1, outer 0
;;  nodes: 17 16
;;
;; Loop 3
;;  header 15, latch 14
;;  depth 1, outer 0
;;  nodes: 15 14 11 12 13 6 8 9 10 7
;;
;; Loop 1
;;  header 4, latch 3
;;  depth 1, outer 0
;;  nodes: 4 3
;; 2 succs { 4 }
;; 3 succs { 4 }
;; 4 succs { 3 5 }
;; 5 succs { 15 }
;; 6 succs { 7 12 }
;; 7 succs { 8 9 }
;; 8 succs { 11 }
;; 9 succs { 10 11 }
;; 10 succs { 11 }
;; 11 succs { 14 }
;; 12 succs { 13 14 }
;; 13 succs { 14 }
;; 14 succs { 15 }
;; 15 succs { 6 17 }
;; 16 succs { 17 }
;; 17 succs { 16 18 }
;; 18 succs { 1 }
Port_Ipw_Init (const struct Port_ConfigType * pConfigPtr)
{
  uint16 u16PinIndex;
  uint16 u16NumUnusedPins;
  uint8 u8LocalPDO;
  uint32 u32LocalPCR;
  Port_PinDirectionType eLocalPDDIR;
  uint8 u8Port;
  uint8 u8NumDigFilterPorts;
  uint16 u16PinIndex;
  const struct Port_Ci_Port_Ip_DigitalFilterConfigType * _1;
  unsigned int _2;
  unsigned int _3;
  const struct Port_Ci_Port_Ip_DigitalFilterConfigType * _4;
  int _5;
  struct PORT_Type * _6;
  struct PORT_Type * _7;
  const struct Port_Ci_Port_Ip_DigitalFilterConfigType * _8;
  const struct Port_Ci_Port_Ip_DigitalFilterConfigType * _9;
  long unsigned int _10;
  short unsigned int _11;
  const struct Port_Ci_Port_Ip_PinSettingsConfig * _12;
  int _13;
  const struct Port_UnUsedPinConfigType * _30;
  const uint16 * _34;
  unsigned int _36;
  unsigned int _37;
  const uint16 * _38;
  short unsigned int _39;
  short unsigned int _40;
  long unsigned int _41;
  struct GPIO_Type * _42;
  short unsigned int _43;
  long unsigned int _44;
  long unsigned int _45;
  const uint16 * _46;
  unsigned int _47;
  unsigned int _48;
  const uint16 * _49;
  short unsigned int _50;
  short unsigned int _51;
  long unsigned int _52;
  struct GPIO_Type * _53;
  short unsigned int _54;
  long unsigned int _55;
  long unsigned int _56;
  const uint16 * _57;
  unsigned int _58;
  unsigned int _59;
  const uint16 * _60;
  short unsigned int _61;
  short unsigned int _62;
  long unsigned int _63;
  struct GPIO_Type * _64;
  short unsigned int _65;
  long unsigned int _66;
  long unsigned int _67;
  const uint16 * _68;
  unsigned int _69;
  unsigned int _70;
  const uint16 * _71;
  short unsigned int _72;
  short unsigned int _73;
  long unsigned int _74;
  struct GPIO_Type * _75;
  short unsigned int _76;
  long unsigned int _77;
  long unsigned int _78;
  const uint16 * _79;
  const uint16 * _80;
  short unsigned int _81;
  short unsigned int _82;
  long unsigned int _83;
  struct GPIO_Type * _84;
  short unsigned int _85;
  long unsigned int _86;
  long unsigned int _87;
  const uint16 * _88;
  unsigned int _89;
  unsigned int _90;
  const uint16 * _91;
  short unsigned int _92;
  short unsigned int _93;
  long unsigned int _94;
  struct PORT_Type * _95;
  short unsigned int _96;
  long unsigned int _97;

  <bb 2> [local count: 107374181]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  u8NumDigFilterPorts_20 = pConfigPtr_19(D)->u8NumDigitalFilterPorts;
  # DEBUG u8NumDigFilterPorts => u8NumDigFilterPorts_20
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG u16PinIndex => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 868754742]:
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_19(D)->pDigitalFilterConfig;
  _2 = (unsigned int) u16PinIndex_14;
  _3 = _2 * 8;
  _4 = _1 + _3;
  u8Port_25 = _4->u8Port;
  # DEBUG u8Port => u8Port_25
  # DEBUG BEGIN_STMT
  _5 = (int) u8Port_25;
  _6 = Port_au32PortCiPortBaseAddr[_5];
  Port_Ci_Port_Ip_ConfigDigitalFilter (_6, _4);
  # DEBUG BEGIN_STMT
  _7 = Port_au32PortCiPortBaseAddr[_5];
  _8 = pConfigPtr_19(D)->pDigitalFilterConfig;
  _9 = _8 + _3;
  _10 = _9->u32PinMask;
  Port_Ci_Port_Ip_SetDFER (_7, _10);
  # DEBUG BEGIN_STMT
  u16PinIndex_28 = u16PinIndex_14 + 1;
  # DEBUG u16PinIndex => u16PinIndex_28

  <bb 4> [local count: 976128924]:
  # u16PinIndex_14 = PHI <0(2), u16PinIndex_28(3)>
  # DEBUG u16PinIndex => u16PinIndex_14
  # DEBUG BEGIN_STMT
  _11 = (short unsigned int) u8NumDigFilterPorts_20;
  if (_11 > u16PinIndex_14)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 107374181]:
  # DEBUG BEGIN_STMT
  _12 = pConfigPtr_19(D)->IpConfigPtr;
  Port_Ci_Port_Ip_Init (13, _12);
  # DEBUG BEGIN_STMT
  # DEBUG pConfigPtr => pConfigPtr_19(D)
  # DEBUG INLINE_ENTRY Port_Ipw_Init_UnusedPins
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  u16NumUnusedPins_29 = pConfigPtr_19(D)->u16NumUnusedPins;
  # DEBUG u16NumUnusedPins => u16NumUnusedPins_29
  # DEBUG BEGIN_STMT
  _30 = pConfigPtr_19(D)->pUnusedPadConfig;
  u8LocalPDO_31 = _30->u8PDO;
  # DEBUG u8LocalPDO => u8LocalPDO_31
  # DEBUG BEGIN_STMT
  u32LocalPCR_32 = _30->u32PCR;
  # DEBUG u32LocalPCR => u32LocalPCR_32
  # DEBUG BEGIN_STMT
  eLocalPDDIR_33 = _30->ePadDir;
  # DEBUG eLocalPDDIR => eLocalPDDIR_33
  # DEBUG BEGIN_STMT
  # DEBUG u16PinIndex => 0
  goto <bb 15>; [100.00%]

  <bb 6> [local count: 868754745]:
  # DEBUG BEGIN_STMT
  if (eLocalPDDIR_33 == 2)
    goto <bb 7>; [51.12%]
  else
    goto <bb 12>; [48.88%]

  <bb 7> [local count: 444107426]:
  # DEBUG BEGIN_STMT
  if (u8LocalPDO_31 == 1)
    goto <bb 8>; [20.24%]
  else
    goto <bb 9>; [79.76%]

  <bb 8> [local count: 89887343]:
  # DEBUG BEGIN_STMT
  _34 = pConfigPtr_19(D)->pUnusedPads;
  _36 = (unsigned int) u16PinIndex_35;
  _37 = _36 * 2;
  _38 = _34 + _37;
  _39 = *_38;
  _40 = _39 >> 5;
  _41 = (long unsigned int) _40;
  _42 = Port_au32PortCiGpioBaseAddr[_41];
  _43 = _39 & 31;
  _44 = (long unsigned int) _43;
  _45 = 1 << _44;
  Port_Ci_Port_Ip_SetPSOR (_42, _45);
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 354220082]:
  # DEBUG BEGIN_STMT
  if (u8LocalPDO_31 == 0)
    goto <bb 10>; [33.00%]
  else
    goto <bb 11>; [67.00%]

  <bb 10> [local count: 116892627]:
  # DEBUG BEGIN_STMT
  _46 = pConfigPtr_19(D)->pUnusedPads;
  _47 = (unsigned int) u16PinIndex_35;
  _48 = _47 * 2;
  _49 = _46 + _48;
  _50 = *_49;
  _51 = _50 >> 5;
  _52 = (long unsigned int) _51;
  _53 = Port_au32PortCiGpioBaseAddr[_52];
  _54 = _50 & 31;
  _55 = (long unsigned int) _54;
  _56 = 1 << _55;
  Port_Ci_Port_Ip_SetPCOR (_53, _56);

  <bb 11> [local count: 444107426]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _57 = pConfigPtr_19(D)->pUnusedPads;
  _58 = (unsigned int) u16PinIndex_35;
  _59 = _58 * 2;
  _60 = _57 + _59;
  _61 = *_60;
  _62 = _61 >> 5;
  _63 = (long unsigned int) _62;
  _64 = Port_au32PortCiGpioBaseAddr[_63];
  _65 = _61 & 31;
  _66 = (long unsigned int) _65;
  _67 = 1 << _66;
  Port_Ci_Port_Ip_SetPDDR (_64, _67);
  goto <bb 14>; [100.00%]

  <bb 12> [local count: 424647319]:
  # DEBUG BEGIN_STMT
  _68 = pConfigPtr_19(D)->pUnusedPads;
  _69 = (unsigned int) u16PinIndex_35;
  _70 = _69 * 2;
  _71 = _68 + _70;
  _72 = *_71;
  _73 = _72 >> 5;
  _74 = (long unsigned int) _73;
  _75 = Port_au32PortCiGpioBaseAddr[_74];
  _76 = _72 & 31;
  _77 = (long unsigned int) _76;
  _78 = 1 << _77;
  Port_Ci_Port_Ip_ClearPDDR (_75, _78);
  # DEBUG BEGIN_STMT
  if (eLocalPDDIR_33 == 3)
    goto <bb 13>; [20.24%]
  else
    goto <bb 14>; [79.76%]

  <bb 13> [local count: 85948617]:
  # DEBUG BEGIN_STMT
  _79 = pConfigPtr_19(D)->pUnusedPads;
  _80 = _79 + _70;
  _81 = *_80;
  _82 = _81 >> 5;
  _83 = (long unsigned int) _82;
  _84 = Port_au32PortCiGpioBaseAddr[_83];
  _85 = _81 & 31;
  _86 = (long unsigned int) _85;
  _87 = 1 << _86;
  Port_Ci_Port_Ip_SetPIDR (_84, _87);

  <bb 14> [local count: 868754746]:
  # DEBUG BEGIN_STMT
  _88 = pConfigPtr_19(D)->pUnusedPads;
  _89 = (unsigned int) u16PinIndex_35;
  _90 = _89 * 2;
  _91 = _88 + _90;
  _92 = *_91;
  _93 = _92 >> 5;
  _94 = (long unsigned int) _93;
  _95 = Port_au32PortCiPortBaseAddr[_94];
  _96 = _92 & 31;
  _97 = (long unsigned int) _96;
  Port_Ci_Port_Ip_SetPCR (_95, _97, u32LocalPCR_32);
  # DEBUG BEGIN_STMT
  u16PinIndex_98 = u16PinIndex_35 + 1;
  # DEBUG u16PinIndex => u16PinIndex_98

  <bb 15> [local count: 976128927]:
  # u16PinIndex_35 = PHI <0(5), u16PinIndex_98(14)>
  # DEBUG u16PinIndex => u16PinIndex_35
  # DEBUG BEGIN_STMT
  if (u16NumUnusedPins_29 > u16PinIndex_35)
    goto <bb 6>; [89.00%]
  else
    goto <bb 17>; [11.00%]

  <bb 16> [local count: 966367643]:
  # DEBUG BEGIN_STMT
  _13 = (int) u16PinIndex_15;
  Port_Ipw_au16GpioDirChangeability[_13] = 0;
  # DEBUG BEGIN_STMT
  u16PinIndex_24 = u16PinIndex_15 + 1;
  # DEBUG u16PinIndex => u16PinIndex_24

  <bb 17> [local count: 1073741824]:
  # u16PinIndex_15 = PHI <0(15), u16PinIndex_24(16)>
  # DEBUG pConfigPtr => NULL
  # DEBUG eLocalPDDIR => NULL
  # DEBUG u32LocalPCR => NULL
  # DEBUG u8LocalPDO => NULL
  # DEBUG u16NumUnusedPins => NULL
  # DEBUG u16PinIndex => NULL
  # DEBUG u16PinIndex => NULL
  # DEBUG u16PinIndex => u16PinIndex_15
  # DEBUG BEGIN_STMT
  if (u16PinIndex_15 != 9)
    goto <bb 16>; [90.00%]
  else
    goto <bb 18>; [10.00%]

  <bb 18> [local count: 107374182]:
  return;

}



;; Function Port_Ipw_SetPinDirection (Port_Ipw_SetPinDirection, funcdef_no=3, decl_uid=5689, cgraph_uid=4, symbol_order=4)

Port_Ipw_SetPinDirection (Port_PinType PinIndex, Port_PinDirectionType eDirection, const struct Port_ConfigType * pConfigPtr)
{
  uint16 u16PinChangeDirFlagWord;
  uint8 u8PinDescBitOffset;
  Std_ReturnType PinDirError;
  uint16 Pin;
  const struct Port_PinConfigType * _1;
  long unsigned int _2;
  const struct Port_PinConfigType * _3;
  unsigned char _4;
  short unsigned int _5;
  unsigned char _6;
  int _7;
  _Bool _8;
  int _9;
  long unsigned int _10;
  short unsigned int _11;
  short unsigned int _12;
  short unsigned int _13;
  long unsigned int _14;
  struct GPIO_Type * _15;
  long unsigned int _16;
  long unsigned int _17;
  short unsigned int _18;
  long unsigned int _19;
  struct GPIO_Type * _20;
  long unsigned int _21;
  long unsigned int _22;
  struct GPIO_Type * _23;
  short unsigned int _30;
  short unsigned int _37;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_27(D)->pUsedPadConfig;
  _2 = PinIndex_28(D) * 20;
  _3 = _1 + _2;
  Pin_29 = _3->Pin;
  # DEBUG Pin => Pin_29
  # DEBUG BEGIN_STMT
  # DEBUG PinDirError => 0
  # DEBUG BEGIN_STMT
  _4 = (unsigned char) Pin_29;
  u8PinDescBitOffset_31 = _4 & 15;
  # DEBUG u8PinDescBitOffset => u8PinDescBitOffset_31
  # DEBUG BEGIN_STMT
  _5 = Pin_29 >> 4;
  _6 = (unsigned char) _5;
  _7 = (int) _6;
  u16PinChangeDirFlagWord_32 = Port_Ipw_au16GpioDirChangeability[_7];
  # DEBUG u16PinChangeDirFlagWord => u16PinChangeDirFlagWord_32
  # DEBUG BEGIN_STMT
  _8 = _3->bDC;
  if (_8 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870911]:
  _9 = (int) u8PinDescBitOffset_31;
  _10 = 1 << _9;
  _11 = (short unsigned int) _10;
  _12 = _11 & u16PinChangeDirFlagWord_32;
  if (_12 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 4> [local count: 805306368]:
  # DEBUG BEGIN_STMT
  if (eDirection_33(D) == 2)
    goto <bb 5>; [20.24%]
  else
    goto <bb 6>; [79.76%]

  <bb 5> [local count: 162994009]:
  # DEBUG BEGIN_STMT
  _13 = Pin_29 >> 5;
  _14 = (long unsigned int) _13;
  _15 = Port_au32PortCiGpioBaseAddr[_14];
  _37 = Pin_29 & 31;
  _16 = (long unsigned int) _37;
  _17 = 1 << _16;
  Port_Ci_Port_Ip_SetPDDR (_15, _17);
  goto <bb 10>; [100.00%]

  <bb 6> [local count: 642312359]:
  # DEBUG BEGIN_STMT
  if (eDirection_33(D) == 1)
    goto <bb 8>; [20.24%]
  else
    goto <bb 7>; [79.76%]

  <bb 7> [local count: 512308337]:
  if (eDirection_33(D) == 3)
    goto <bb 8>; [34.00%]
  else
    goto <bb 10>; [66.00%]

  <bb 8> [local count: 304188856]:
  # DEBUG BEGIN_STMT
  _18 = Pin_29 >> 5;
  _19 = (long unsigned int) _18;
  _20 = Port_au32PortCiGpioBaseAddr[_19];
  _30 = Pin_29 & 31;
  _21 = (long unsigned int) _30;
  _22 = 1 << _21;
  Port_Ci_Port_Ip_ClearPDDR (_20, _22);
  # DEBUG BEGIN_STMT
  if (eDirection_33(D) == 3)
    goto <bb 9>; [20.24%]
  else
    goto <bb 10>; [79.76%]

  <bb 9> [local count: 61567824]:
  # DEBUG BEGIN_STMT
  _23 = Port_au32PortCiGpioBaseAddr[_19];
  Port_Ci_Port_Ip_SetPIDR (_23, _22);

  <bb 10> [local count: 1073741824]:
  # PinDirError_24 = PHI <0(7), 1(3), 0(5), 0(9), 0(8)>
  # DEBUG PinDirError => PinDirError_24
  # DEBUG BEGIN_STMT
  return PinDirError_24;

}



;; Function Port_Ipw_SetGpioDirChangeability (Port_Ipw_SetGpioDirChangeability, funcdef_no=5, decl_uid=5680, cgraph_uid=6, symbol_order=6)

Port_Ipw_SetGpioDirChangeability (uint16 PadID, boolean bStatus)
{
  uint16 u16PinDirFlagWord;
  uint8 u8PinBitOffset;
  unsigned char _1;
  unsigned char _2;
  int _3;
  int _4;
  long unsigned int _5;
  short unsigned int _6;
  int _7;
  long unsigned int _8;
  short unsigned int _9;
  short unsigned int _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  SchM_Enter_Port_PORT_EXCLUSIVE_AREA_00 ();
  # DEBUG BEGIN_STMT
  _1 = (unsigned char) PadID_14(D);
  u8PinBitOffset_15 = _1 & 15;
  # DEBUG u8PinBitOffset => u8PinBitOffset_15
  # DEBUG BEGIN_STMT
  _2 = _1 >> 4;
  _3 = (int) _2;
  u16PinDirFlagWord_16 = Port_Ipw_au16GpioDirChangeability[_3];
  # DEBUG u16PinDirFlagWord => u16PinDirFlagWord_16
  # DEBUG BEGIN_STMT
  if (bStatus_17(D) != 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _4 = (int) u8PinBitOffset_15;
  _5 = 1 << _4;
  _6 = (short unsigned int) _5;
  u16PinDirFlagWord_19 = _6 | u16PinDirFlagWord_16;
  # DEBUG u16PinDirFlagWord => u16PinDirFlagWord_19
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _7 = (int) u8PinBitOffset_15;
  _8 = 1 << _7;
  _9 = (short unsigned int) _8;
  _10 = ~_9;
  u16PinDirFlagWord_18 = _10 & u16PinDirFlagWord_16;
  # DEBUG u16PinDirFlagWord => u16PinDirFlagWord_18

  <bb 5> [local count: 1073741824]:
  # u16PinDirFlagWord_11 = PHI <u16PinDirFlagWord_19(3), u16PinDirFlagWord_18(4)>
  # DEBUG u16PinDirFlagWord => u16PinDirFlagWord_11
  # DEBUG BEGIN_STMT
  Port_Ipw_au16GpioDirChangeability[_3] = u16PinDirFlagWord_11;
  # DEBUG BEGIN_STMT
  SchM_Exit_Port_PORT_EXCLUSIVE_AREA_00 ();
  return;

}



;; Function Port_Ipw_SetGpioPadOutput (Port_Ipw_SetGpioPadOutput, funcdef_no=6, decl_uid=5683, cgraph_uid=7, symbol_order=7)

Port_Ipw_SetGpioPadOutput (Port_PinType PinIndex, const struct Port_ConfigType * pConfigPtr)
{
  uint8 u8LocalPDO;
  uint16 Pin;
  const struct Port_PinConfigType * _1;
  long unsigned int _2;
  const struct Port_PinConfigType * _3;
  short unsigned int _4;
  long unsigned int _5;
  struct GPIO_Type * _6;
  long unsigned int _7;
  long unsigned int _8;
  short unsigned int _9;
  long unsigned int _10;
  struct GPIO_Type * _11;
  long unsigned int _12;
  long unsigned int _13;
  short unsigned int _22;
  short unsigned int _23;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_16(D)->pUsedPadConfig;
  _2 = PinIndex_17(D) * 20;
  _3 = _1 + _2;
  Pin_18 = _3->Pin;
  # DEBUG Pin => Pin_18
  # DEBUG BEGIN_STMT
  u8LocalPDO_19 = _3->u8PDO;
  # DEBUG u8LocalPDO => u8LocalPDO_19
  # DEBUG BEGIN_STMT
  if (u8LocalPDO_19 == 1)
    goto <bb 3>; [20.24%]
  else
    goto <bb 4>; [79.76%]

  <bb 3> [local count: 217325345]:
  # DEBUG BEGIN_STMT
  _4 = Pin_18 >> 5;
  _5 = (long unsigned int) _4;
  _6 = Port_au32PortCiGpioBaseAddr[_5];
  _23 = Pin_18 & 31;
  _7 = (long unsigned int) _23;
  _8 = 1 << _7;
  Port_Ci_Port_Ip_SetPSOR (_6, _8);
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 856416480]:
  # DEBUG BEGIN_STMT
  if (u8LocalPDO_19 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 6>; [67.00%]

  <bb 5> [local count: 282617438]:
  # DEBUG BEGIN_STMT
  _9 = Pin_18 >> 5;
  _10 = (long unsigned int) _9;
  _11 = Port_au32PortCiGpioBaseAddr[_10];
  _22 = Pin_18 & 31;
  _12 = (long unsigned int) _22;
  _13 = 1 << _12;
  Port_Ci_Port_Ip_SetPCOR (_11, _13);

  <bb 6> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function Port_Ipw_SetPinMode (Port_Ipw_SetPinMode, funcdef_no=4, decl_uid=5693, cgraph_uid=5, symbol_order=5)

Port_Ipw_SetPinMode (Port_PinType PinIndex, Port_PinModeType PinMode, const struct Port_ConfigType * pConfigPtr)
{
  Port_PinDirectionType ePadDirection;
  uint32 u32LocalPCR;
  uint16 u16PinDescBitOffset;
  uint16 u16PinDescWord;
  uint16 PinPad;
  Std_ReturnType PinModeError;
  const struct Port_PinConfigType * _1;
  long unsigned int _2;
  const struct Port_PinConfigType * _3;
  int _4;
  short unsigned int _5;
  int _6;
  int _7;
  int _8;
  int _9;
  int _10;
  const struct Port_PinConfigType * _11;
  const struct Port_PinConfigType * _12;
  short unsigned int _13;
  long unsigned int _14;
  struct PORT_Type * _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  struct PORT_Type * _19;
  short unsigned int _24;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG PinModeError => 0
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_26(D)->pUsedPadConfig;
  _2 = PinIndex_27(D) * 20;
  _3 = _1 + _2;
  PinPad_28 = _3->Pin;
  # DEBUG PinPad => PinPad_28
  # DEBUG BEGIN_STMT
  # DEBUG PinCfgRegValue => PinMode_29(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (PinMode_29(D) > 7)
    goto <bb 11>; [35.00%]
  else
    goto <bb 3>; [65.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  # DEBUG ePadDirection => 0
  # DEBUG BEGIN_STMT
  u16PinDescBitOffset_30 = PinPad_28 & 15;
  # DEBUG u16PinDescBitOffset => u16PinDescBitOffset_30
  # DEBUG BEGIN_STMT
  _4 = (int) PinMode_29(D);
  _5 = PinPad_28 >> 4;
  _6 = (int) _5;
  u16PinDescWord_31 = Port_au16PinDescription[_4][_6];
  # DEBUG u16PinDescWord => u16PinDescWord_31
  # DEBUG BEGIN_STMT
  _7 = (int) u16PinDescWord_31;
  _8 = (int) u16PinDescBitOffset_30;
  _9 = _7 >> _8;
  _10 = _9 & 1;
  if (_10 != 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 11>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  if (PinMode_29(D) == 1)
    goto <bb 5>; [34.00%]
  else
    goto <bb 9>; [66.00%]

  <bb 5> [local count: 154243013]:
<L3>:
  # DEBUG BEGIN_STMT
  Port_Ipw_SetGpioDirChangeability (PinPad_28, 1);
  # DEBUG BEGIN_STMT
  _11 = pConfigPtr_26(D)->pUsedPadConfig;
  _12 = _11 + _2;
  ePadDirection_33 = _12->ePadDir;
  # DEBUG ePadDirection => ePadDirection_33
  # DEBUG BEGIN_STMT
  if (ePadDirection_33 != 1)
    goto <bb 6>; [66.00%]
  else
    goto <bb 8>; [34.00%]

  <bb 6> [local count: 101800389]:
  if (ePadDirection_33 != 3)
    goto <bb 7>; [48.88%]
  else
    goto <bb 8>; [51.12%]

  <bb 7> [local count: 49760030]:
  # DEBUG BEGIN_STMT
  Port_Ipw_SetGpioPadOutput (PinIndex_27(D), pConfigPtr_26(D));

  <bb 8> [local count: 154243013]:
  # DEBUG BEGIN_STMT
  Port_Ipw_SetPinDirection (PinIndex_27(D), ePadDirection_33, pConfigPtr_26(D));
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 9> [local count: 299412908]:
<L8>:
  # DEBUG BEGIN_STMT
  Port_Ipw_SetGpioDirChangeability (PinPad_28, 0);
  # DEBUG BEGIN_STMT

  <bb 10> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  _13 = PinPad_28 >> 5;
  _14 = (long unsigned int) _13;
  _15 = Port_au32PortCiPortBaseAddr[_14];
  _24 = PinPad_28 & 31;
  _16 = (long unsigned int) _24;
  u32LocalPCR_38 = Port_Ci_Port_Ip_ReadPCR (_15, _16);
  # DEBUG u32LocalPCR => u32LocalPCR_38
  # DEBUG BEGIN_STMT
  u32LocalPCR_39 = u32LocalPCR_38 & 4294965503;
  # DEBUG u32LocalPCR => u32LocalPCR_39
  # DEBUG BEGIN_STMT
  _17 = (long unsigned int) PinMode_29(D);
  _18 = _17 << 8;
  u32LocalPCR_40 = _18 | u32LocalPCR_39;
  # DEBUG u32LocalPCR => u32LocalPCR_40
  # DEBUG BEGIN_STMT
  _19 = Port_au32PortCiPortBaseAddr[_14];
  Port_Ci_Port_Ip_SetPCR (_19, _16, u32LocalPCR_40);

  <bb 11> [local count: 1073741824]:
  # PinModeError_20 = PHI <13(2), 0(10), 13(3)>
  # DEBUG PinModeError => PinModeError_20
  # DEBUG BEGIN_STMT
  return PinModeError_20;

}



;; Function Port_Ipw_RefreshPortDirection (Port_Ipw_RefreshPortDirection, funcdef_no=7, decl_uid=5695, cgraph_uid=8, symbol_order=8)

Port_Ipw_RefreshPortDirection (const struct Port_ConfigType * pConfigPtr)
{
  uint16 PinPad;
  uint16 u16PinIndex;
  uint16 u16NumPins;
  const struct Port_PinConfigType * _1;
  unsigned int _2;
  unsigned int _3;
  const struct Port_PinConfigType * _4;
  _Bool _5;
  _Bool _6;
  <unnamed type> _7;
  short unsigned int _8;
  long unsigned int _9;
  struct GPIO_Type * _10;
  long unsigned int _11;
  long unsigned int _12;
  short unsigned int _13;
  long unsigned int _14;
  struct GPIO_Type * _15;
  long unsigned int _16;
  long unsigned int _17;
  const struct Port_PinConfigType * _18;
  const struct Port_PinConfigType * _19;
  <unnamed type> _20;
  struct GPIO_Type * _21;
  short unsigned int _28;
  short unsigned int _34;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  u16NumPins_27 = pConfigPtr_26(D)->u16NumPins;
  # DEBUG u16NumPins => u16NumPins_27
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG u16PinIndex => 0
  goto <bb 12>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _1 = pConfigPtr_26(D)->pUsedPadConfig;
  _2 = (unsigned int) u16PinIndex_22;
  _3 = _2 * 20;
  _4 = _1 + _3;
  _5 = _4->bDC;
  if (_5 != 0)
    goto <bb 11>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 4> [local count: 477815111]:
  # DEBUG BEGIN_STMT
  _6 = _4->bGPIO;
  if (_6 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 5> [local count: 238907556]:
  # DEBUG BEGIN_STMT
  PinPad_29 = _4->Pin;
  # DEBUG PinPad => PinPad_29
  # DEBUG BEGIN_STMT
  _7 = _4->ePadDir;
  if (_7 == 2)
    goto <bb 6>; [20.24%]
  else
    goto <bb 7>; [79.76%]

  <bb 6> [local count: 48354889]:
  # DEBUG BEGIN_STMT
  _8 = PinPad_29 >> 5;
  _9 = (long unsigned int) _8;
  _10 = Port_au32PortCiGpioBaseAddr[_9];
  _34 = PinPad_29 & 31;
  _11 = (long unsigned int) _34;
  _12 = 1 << _11;
  Port_Ci_Port_Ip_SetPDDR (_10, _12);
  goto <bb 11>; [100.00%]

  <bb 7> [local count: 190552666]:
  # DEBUG BEGIN_STMT
  if (_7 == 1)
    goto <bb 9>; [20.24%]
  else
    goto <bb 8>; [79.76%]

  <bb 8> [local count: 151984807]:
  if (_7 == 3)
    goto <bb 9>; [34.00%]
  else
    goto <bb 11>; [66.00%]

  <bb 9> [local count: 90242694]:
  # DEBUG BEGIN_STMT
  _13 = PinPad_29 >> 5;
  _14 = (long unsigned int) _13;
  _15 = Port_au32PortCiGpioBaseAddr[_14];
  _28 = PinPad_29 & 31;
  _16 = (long unsigned int) _28;
  _17 = 1 << _16;
  Port_Ci_Port_Ip_ClearPDDR (_15, _17);
  # DEBUG BEGIN_STMT
  _18 = pConfigPtr_26(D)->pUsedPadConfig;
  _19 = _18 + _3;
  _20 = _19->ePadDir;
  if (_20 == 3)
    goto <bb 10>; [20.24%]
  else
    goto <bb 11>; [79.76%]

  <bb 10> [local count: 18265121]:
  # DEBUG BEGIN_STMT
  _21 = Port_au32PortCiGpioBaseAddr[_14];
  Port_Ci_Port_Ip_SetPIDR (_21, _17);

  <bb 11> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  u16PinIndex_33 = u16PinIndex_22 + 1;
  # DEBUG u16PinIndex => u16PinIndex_33

  <bb 12> [local count: 1073741824]:
  # u16PinIndex_22 = PHI <0(2), u16PinIndex_33(11)>
  # DEBUG u16PinIndex => u16PinIndex_22
  # DEBUG BEGIN_STMT
  if (u16PinIndex_22 < u16NumPins_27)
    goto <bb 3>; [89.00%]
  else
    goto <bb 13>; [11.00%]

  <bb 13> [local count: 118111601]:
  return;

}


