IPA function summary for pfe_mirror_get_actions/32 inlinable
  global time:     10.290000
  self size:       11
  global size:     11
  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: 192] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 192] changed)
  calls:
    memcpy/42 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op0[ref offset: 192] != 0)
       op2 is compile time invariant

IPA function summary for pfe_mirror_set_actions/31 inlinable
  global time:     28.290000
  self size:       20
  global size:     20
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op1 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)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant
    memcpy/42 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op1 != 0)
       op2 is compile time invariant

IPA function summary for pfe_mirror_get_filter/30 inlinable
  global time:     12.000000
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 160] changed) && (not inlined)
    size:9.500000, time:9.500000,  nonconst if:(op0[ref offset: 160] changed)
  calls:

IPA function summary for pfe_mirror_set_filter/29 inlinable
  global time:     31.000000
  self size:       23
  global size:     23
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:9.000000, time:9.000000,  nonconst if:(op1 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)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant

IPA function summary for pfe_mirror_get_egress_port/28 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 704] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 704] changed)
  calls:

IPA function summary for pfe_mirror_set_egress_port/27 inlinable
  global time:     22.000000
  self size:       14
  global size:     14
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 64] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 64] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant

IPA function summary for pfe_mirror_get_name/26 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
  calls:

IPA function summary for pfe_mirror_get_address/25 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:

IPA function summary for pfe_mirror_destroy/24 inlinable
  global time:     21.645100
  self size:       20
  global size:     20
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:5.500000, time:2.940850,  executed if:(op0 != 0B)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B)
    size:2.500000, time:1.336750,  executed if:(op0 != 0B) && (not inlined)
  calls:
    oal_mm_free/35 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
    pfe_class_dmem_heap_free/40 function body not available
      loop depth: 0 freq:0.53 size: 3 time: 12 predicate: (op0 != 0B)

IPA function summary for pfe_mirror_create/23 inlinable
  global time:     30.827870
  self size:       50
  global size:     50
  min size:       48
  self stack:      0
  global stack:    0
    size:23.000000, time:7.110727
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    oal_mm_free/35 function body not available
      loop depth: 0 freq:0.02 size: 2 time: 11
    pfe_class_dmem_heap_alloc/39 function body not available
      loop depth: 0 freq:0.13 size: 4 time: 13
       op1 is compile time invariant
    strcpy/38 function body not available
      loop depth: 0 freq:0.13 size: 3 time: 12
    memset/34 function body not available
      loop depth: 0 freq:0.13 size: 4 time: 13
       op1 is compile time invariant
       op2 is compile time invariant
    oal_mm_malloc/33 function body not available
      loop depth: 0 freq:0.25 size: 3 time: 12
    strlen/37 function body not available
      loop depth: 0 freq:0.25 size: 3 time: 12
    pfe_mirror_db_get_by_crit/17 function not considered for inlining
      loop depth: 0 freq:0.74 size: 5 time: 14callee size:15 stack: 0
       op1 is compile time invariant

IPA function summary for pfe_mirror_get_next/22 inlinable
  global time:     13.853600
  self size:       9
  global size:     9
  min size:       6
  self stack:      0
  global stack:    0
    size:3.000000, time:3.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_db_get_next/18 function not considered for inlining
      loop depth: 0 freq:0.74 size: 3 time: 12callee size: 6 stack: 0

IPA function summary for pfe_mirror_get_first/21 inlinable
  global time:     15.329200
  self size:       11
  global size:     11
  min size:       10
  self stack:      0
  global stack:    0
    size:3.000000, time:3.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_db_get_by_crit/17 function not considered for inlining
      loop depth: 0 freq:0.74 size: 5 time: 14callee size:15 stack: 0

IPA function summary for pfe_mirror_deinit/20 inlinable
  global time:     11.416400
  self size:       9
  global size:     9
  min size:       4
  self stack:      0
  global stack:    0
    size:4.000000, time:3.534700
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_destroy_db/16 function not considered for inlining
      loop depth: 0 freq:0.53 size: 2 time: 11callee size: 3 stack: 0

IPA function summary for pfe_mirror_init/19 inlinable
  global time:     9.224000
  self size:       12
  global size:     12
  min size:       6
  self stack:      0
  global stack:    0
    size:6.000000, time:3.844800
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_create_db/15 function not considered for inlining
      loop depth: 0 freq:0.28 size: 3 time: 12callee size: 8 stack: 0

IPA function summary for pfe_mirror_db_get_next/18 inlinable
  global time:     9.725603
  self size:       12
  global size:     12
  min size:       0
  self stack:      0
  global stack:    0
    size:1.500000, time:1.086302
    size:3.500000, time:2.362101,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
    size:2.000000, time:2.000000,  nonconst if:(op0[ref offset: 32] changed || op0 changed)
    size:0.500000, time:0.425500,  executed if:(not inlined),  nonconst if:(op0[ref offset: 96] changed) && (not inlined)
    size:1.500000, time:1.149701,  nonconst if:(op0[ref offset: 96] changed)
    size:2.000000, time:1.702000,  nonconst if:(op0 changed || op0[ref offset: 96] changed)
  calls:

IPA function summary for pfe_mirror_db_get_by_crit/17 inlinable
  global time:     92.304837
  self size:       31
  global size:     31
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:1.998638,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
    size:2.000000, time:2.000000,  nonconst if:(op0[ref offset: 32] changed || op0 changed)
    size:2.000000, time:1.702000,  nonconst if:(op1 changed)
    size:4.000000, time:27.587791,  executed if:(op1 != 0)
    size:6.000000, time:13.618613,  executed if:(op1 != 0),  nonconst if:(op1 changed) && (op1 != 0)
    size:3.000000, time:6.808625,  executed if:(op1 == 2) && (op1 != 0)
    size:3.000000, time:6.808625,  executed if:(op1 == 1) && (op1 != 0)
    size:1.500000, time:0.638250,  executed if:(op1 == 0)
    size:0.500000, time:0.212750,  executed if:(op1 == 0) && (not inlined)
    size:1.000000, time:0.425500,  executed if:(op1 == 0),  nonconst if:(op0[ref offset: 32] changed) && (op1 == 0)
  calls:
    strcmp/36 function body not available
      loop depth: 1 freq:2.27 size: 4 time: 13 predicate: (op1 == 1) && (op1 != 0)
       op1 change 44.060000% of time

IPA function summary for pfe_mirror_destroy_db/16 inlinable
  global time:     9.881700
  self size:       7
  global size:     7
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
  calls:
    oal_mm_free/35 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)

IPA function summary for pfe_mirror_create_db/15 inlinable
  global time:     25.089900
  self size:       16
  global size:     16
  min size:       14
  self stack:      0
  global stack:    0
    size:6.000000, time:4.138800
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    memset/34 function body not available
      loop depth: 0 freq:0.53 size: 4 time: 13
       op1 is compile time invariant
       op2 is compile time invariant
    oal_mm_malloc/33 function body not available
      loop depth: 0 freq:1.00 size: 3 time: 12
       op0 is compile time invariant


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

Deciding on inlining of small functions.  Starting with size 0.
Enqueueing calls in pfe_mirror_get_actions/32.
Enqueueing calls in pfe_mirror_set_actions/31.
Enqueueing calls in pfe_mirror_get_filter/30.
Enqueueing calls in pfe_mirror_set_filter/29.
Enqueueing calls in pfe_mirror_get_egress_port/28.
Enqueueing calls in pfe_mirror_set_egress_port/27.
Enqueueing calls in pfe_mirror_get_name/26.
Enqueueing calls in pfe_mirror_get_address/25.
Enqueueing calls in pfe_mirror_destroy/24.
Enqueueing calls in pfe_mirror_create/23.
Enqueueing calls in pfe_mirror_get_next/22.
Enqueueing calls in pfe_mirror_get_first/21.
Enqueueing calls in pfe_mirror_deinit/20.
Enqueueing calls in pfe_mirror_init/19.
Enqueueing calls in pfe_mirror_db_get_next/18.
Enqueueing calls in pfe_mirror_db_get_by_crit/17.
Enqueueing calls in pfe_mirror_destroy_db/16.
Enqueueing calls in pfe_mirror_create_db/15.

Considering pfe_mirror_destroy_db/16 with 7 size
 to be inlined into pfe_mirror_deinit/20 in C:/NXP/SW32_RTD_4.4_4.0.0/eclipse/plugins/Eth_43_PFE_TS_T40D11M10I0R0/src/pfe_mirror.c:273
 Estimated badness is -1.263836, frequency 0.53.

Considering pfe_mirror_db_get_next/18 with 12 size
 to be inlined into pfe_mirror_get_next/22 in C:/NXP/SW32_RTD_4.4_4.0.0/eclipse/plugins/Eth_43_PFE_TS_T40D11M10I0R0/src/pfe_mirror.c:310
 Estimated badness is -0.644525, frequency 0.74.

Considering pfe_mirror_db_get_by_crit/17 with 31 size
 to be inlined into pfe_mirror_create/23 in C:/NXP/SW32_RTD_4.4_4.0.0/eclipse/plugins/Eth_43_PFE_TS_T40D11M10I0R0/src/pfe_mirror.c:336
 Estimated badness is -0.176846, frequency 0.74.

Considering pfe_mirror_create_db/15 with 16 size
 to be inlined into pfe_mirror_init/19 in C:/NXP/SW32_RTD_4.4_4.0.0/eclipse/plugins/Eth_43_PFE_TS_T40D11M10I0R0/src/pfe_mirror.c:255
 Estimated badness is -0.071680, frequency 0.28.

Considering pfe_mirror_db_get_by_crit/17 with 31 size
 to be inlined into pfe_mirror_get_first/21 in C:/NXP/SW32_RTD_4.4_4.0.0/eclipse/plugins/Eth_43_PFE_TS_T40D11M10I0R0/src/pfe_mirror.c:289
 Estimated badness is -0.067932, frequency 0.74.

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:

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

Why inlining failed?
function body not available                       :       18 calls, 9.724882 freq, 0 count
IPA function summary for pfe_mirror_get_actions/32 inlinable
  global time:     10.290000
  self size:       11
  global size:     11
  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: 192] changed) && (not inlined)
    size:2.500000, time:2.500000,  nonconst if:(op0[ref offset: 192] changed)
  calls:
    memcpy/42 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op0[ref offset: 192] != 0)
       op2 is compile time invariant

IPA function summary for pfe_mirror_set_actions/31 inlinable
  global time:     28.290000
  self size:       20
  global size:     20
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op1 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)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant
    memcpy/42 function body not available
      loop depth: 0 freq:0.33 size: 4 time: 13 predicate: (op1 != 0)
       op2 is compile time invariant

IPA function summary for pfe_mirror_get_filter/30 inlinable
  global time:     12.000000
  self size:       13
  global size:     13
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 160] changed) && (not inlined)
    size:9.500000, time:9.500000,  nonconst if:(op0[ref offset: 160] changed)
  calls:

IPA function summary for pfe_mirror_set_filter/29 inlinable
  global time:     31.000000
  self size:       23
  global size:     23
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:9.000000, time:9.000000,  nonconst if:(op1 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)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant

IPA function summary for pfe_mirror_get_egress_port/28 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 704] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 704] changed)
  calls:

IPA function summary for pfe_mirror_set_egress_port/27 inlinable
  global time:     22.000000
  self size:       14
  global size:     14
  min size:       14
  self stack:      0
  global stack:    0
    size:1.500000, time:1.500000
    size:3.500000, time:2.500000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 64] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 64] changed)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:
    pfe_class_write_dmem/41 function body not available
      loop depth: 0 freq:1.00 size: 7 time: 16
       op1 is compile time invariant
       op4 is compile time invariant

IPA function summary for pfe_mirror_get_name/26 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 0] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 0] changed)
  calls:

IPA function summary for pfe_mirror_get_address/25 inlinable
  global time:     3.000000
  self size:       4
  global size:     4
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:0.500000, time:0.500000,  executed if:(not inlined),  nonconst if:(op0[ref offset: 32] changed) && (not inlined)
    size:0.500000, time:0.500000,  nonconst if:(op0[ref offset: 32] changed)
  calls:

IPA function summary for pfe_mirror_destroy/24 inlinable
  global time:     21.645100
  self size:       20
  global size:     20
  min size:       0
  self stack:      0
  global stack:    0
    size:0.000000, time:0.000000
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:2.000000, time:2.000000,  nonconst if:(op0 changed)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 64] changed) && (op0 != 0B)
    size:5.500000, time:2.940850,  executed if:(op0 != 0B)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B) && (not inlined),  nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B) && (not inlined)
    size:0.500000, time:0.267350,  executed if:(op0 != 0B),  nonconst if:(op0[ref offset: 32] changed) && (op0 != 0B)
    size:2.500000, time:1.336750,  executed if:(op0 != 0B) && (not inlined)
  calls:
    oal_mm_free/35 function body not available
      loop depth: 0 freq:0.53 size: 2 time: 11 predicate: (op0 != 0B)
    pfe_class_dmem_heap_free/40 function body not available
      loop depth: 0 freq:0.53 size: 3 time: 12 predicate: (op0 != 0B)

IPA function summary for pfe_mirror_create/23 inlinable
  global time:     69.488930
  self size:       50
  global size:     59
  min size:       94
  self stack:      0
  global stack:    0
    size:32.500000, time:34.332904
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    oal_mm_free/35 function body not available
      loop depth: 0 freq:0.02 size: 2 time: 11
    pfe_class_dmem_heap_alloc/39 function body not available
      loop depth: 0 freq:0.13 size: 4 time: 13
       op1 is compile time invariant
    strcpy/38 function body not available
      loop depth: 0 freq:0.13 size: 3 time: 12
    memset/34 function body not available
      loop depth: 0 freq:0.13 size: 4 time: 13
       op1 is compile time invariant
       op2 is compile time invariant
    oal_mm_malloc/33 function body not available
      loop depth: 0 freq:0.25 size: 3 time: 12
    strlen/37 function body not available
      loop depth: 0 freq:0.25 size: 3 time: 12
    pfe_mirror_db_get_by_crit/43 inlined
      loop depth: 0 freq:0.74 size: 5 time: 14callee size:15 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      strcmp/36 function body not available
        loop depth: 1 freq:1.67 size: 4 time: 13
         op1 change 44.060000% of time

IPA function summary for pfe_mirror_get_next/22 inlinable
  global time:     9.749958
  self size:       9
  global size:     14
  min size:       6
  self stack:      0
  global stack:    0
    size:10.500000, time:7.749958
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_db_get_next/18 inlined
      loop depth: 0 freq:0.74 size: 3 time: 12callee size: 6 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0

IPA function summary for pfe_mirror_get_first/21 inlinable
  global time:     71.102047
  self size:       11
  global size:     33
  min size:       10
  self stack:      0
  global stack:    0
    size:5.500000, time:4.844500
    size:3.000000, time:2.000000,  executed if:(not inlined)
    size:2.000000, time:1.255736,  nonconst if:(op0 changed)
    size:4.000000, time:20.354272,  executed if:(op0 != 0)
    size:6.000000, time:10.047813,  executed if:(op0 != 0),  nonconst if:(op0 != 0) && (op0 changed)
    size:3.000000, time:5.023404,  executed if:(op0 == 2) && (op0 != 0)
    size:3.000000, time:5.023404,  executed if:(op0 == 1) && (op0 != 0)
    size:2.500000, time:0.784835,  executed if:(op0 == 0)
  calls:
    pfe_mirror_db_get_by_crit/17 inlined
      loop depth: 0 freq:0.74 size: 5 time: 14callee size:15 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      strcmp/36 function body not available
        loop depth: 1 freq:1.67 size: 4 time: 13 predicate: (op0 == 1) && (op0 != 0)
         op1 change 44.060000% of time

IPA function summary for pfe_mirror_deinit/20 inlinable
  global time:     9.749045
  self size:       9
  global size:     11
  min size:       8
  self stack:      0
  global stack:    0
    size:6.000000, time:4.604100
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_destroy_db/16 inlined
      loop depth: 0 freq:0.53 size: 2 time: 11callee size: 3 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      oal_mm_free/35 function body not available
        loop depth: 0 freq:0.29 size: 2 time: 11

IPA function summary for pfe_mirror_init/19 inlinable
  global time:     12.346916
  self size:       12
  global size:     22
  min size:       20
  self stack:      0
  global stack:    0
    size:12.000000, time:5.010286
    size:3.000000, time:2.000000,  executed if:(not inlined)
  calls:
    pfe_mirror_create_db/15 inlined
      loop depth: 0 freq:0.28 size: 3 time: 12callee size: 8 stack: 0
      Stack frame offset 0, callee self size 0, callee size 0
      memset/34 function body not available
        loop depth: 0 freq:0.15 size: 4 time: 13
         op1 is compile time invariant
         op2 is compile time invariant
      oal_mm_malloc/33 function body not available
        loop depth: 0 freq:0.28 size: 3 time: 12
         op0 is compile time invariant

Symbol table:

pfe_mirror_db_get_by_crit/43 (pfe_mirror_db_get_by_crit) @06ad80e0
  Type: function definition analyzed
  Visibility:
  next sharing asm name: 17
  References: 
  Referring: 
  Function pfe_mirror_db_get_by_crit/43 is inline copy in pfe_mirror_create/23
  Clone of pfe_mirror_db_get_by_crit/17
  Availability: local
  Function flags: count:792206719 (estimated locally) body local optimize_size
  Called by: pfe_mirror_create/23 (inlined) (792206719 (estimated locally),0.74 per call) 
  Calls: strcmp/36 (1797946271 (estimated locally),1.67 per call) 
memcpy/42 (memcpy) @070fe7e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_get_actions/32 (354334802 (estimated locally),0.33 per call) pfe_mirror_set_actions/31 (354334802 (estimated locally),0.33 per call) 
  Calls: 
pfe_class_write_dmem/41 (pfe_class_write_dmem) @070fe380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_set_actions/31 (1073741824 (estimated locally),1.00 per call) pfe_mirror_set_filter/29 (1073741824 (estimated locally),1.00 per call) pfe_mirror_set_egress_port/27 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_class_dmem_heap_free/40 (pfe_class_dmem_heap_free) @070fe000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_destroy/24 (574129754 (estimated locally),0.53 per call) 
  Calls: 
pfe_class_dmem_heap_alloc/39 (pfe_class_dmem_heap_alloc) @070cfd20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_create/23 (144318112 (estimated locally),0.13 per call) 
  Calls: 
strcpy/38 (strcpy) @070cfc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_create/23 (144318112 (estimated locally),0.13 per call) 
  Calls: 
strlen/37 (strlen) @070cfb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_create/23 (269904829 (estimated locally),0.25 per call) 
  Calls: 
strcmp/36 (strcmp) @070cf7e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_db_get_by_crit/43 (1797946271 (estimated locally),1.67 per call) pfe_mirror_db_get_by_crit/17 (1797946271 (estimated locally),1.67 per call) 
  Calls: 
oal_mm_free/35 (oal_mm_free) @070cf540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_destroy/24 (574129754 (estimated locally),0.53 per call) pfe_mirror_create/23 (24173284 (estimated locally),0.02 per call) pfe_mirror_destroy_db/16 (306987180 (estimated locally),0.29 per call) 
  Calls: 
memset/34 (memset) @070cf2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_create/23 (144318112 (estimated locally),0.13 per call) pfe_mirror_create_db/15 (161674939 (estimated locally),0.15 per call) 
  Calls: 
oal_mm_malloc/33 (oal_mm_malloc) @070cf1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_mirror_create/23 (269904829 (estimated locally),0.25 per call) pfe_mirror_create_db/15 (302365698 (estimated locally),0.28 per call) 
  Calls: 
pfe_mirror_get_actions/32 (pfe_mirror_get_actions) @070c7620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: memcpy/42 (354334802 (estimated locally),0.33 per call) 
pfe_mirror_set_actions/31 (pfe_mirror_set_actions) @070c70e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_class_write_dmem/41 (1073741824 (estimated locally),1.00 per call) memcpy/42 (354334802 (estimated locally),0.33 per call) 
pfe_mirror_get_filter/30 (pfe_mirror_get_filter) @070c7d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_mirror_set_filter/29 (pfe_mirror_set_filter) @070c7a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_class_write_dmem/41 (1073741824 (estimated locally),1.00 per call) 
pfe_mirror_get_egress_port/28 (pfe_mirror_get_egress_port) @070c77e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_mirror_set_egress_port/27 (pfe_mirror_set_egress_port) @070c7540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_class_write_dmem/41 (1073741824 (estimated locally),1.00 per call) 
pfe_mirror_get_name/26 (pfe_mirror_get_name) @070c72a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_mirror_get_address/25 (pfe_mirror_get_address) @070c7000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_mirror_destroy/24 (pfe_mirror_destroy) @070bdc40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: oal_mm_free/35 (574129754 (estimated locally),0.53 per call) pfe_class_dmem_heap_free/40 (574129754 (estimated locally),0.53 per call) 
pfe_mirror_create/23 (pfe_mirror_create) @070bd700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_mirror_db/14 (read)pfe_mirror_db/14 (read)pfe_mirror_db/14 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: oal_mm_free/35 (24173284 (estimated locally),0.02 per call) pfe_class_dmem_heap_alloc/39 (144318112 (estimated locally),0.13 per call) strcpy/38 (144318112 (estimated locally),0.13 per call) memset/34 (144318112 (estimated locally),0.13 per call) oal_mm_malloc/33 (269904829 (estimated locally),0.25 per call) strlen/37 (269904829 (estimated locally),0.25 per call) pfe_mirror_db_get_by_crit/43 (inlined) (792206719 (estimated locally),0.74 per call) 
pfe_mirror_get_next/22 (pfe_mirror_get_next) @070bde00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_mirror_db/14 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_mirror_db_get_next/18 (inlined) (792206719 (estimated locally),0.74 per call) 
pfe_mirror_get_first/21 (pfe_mirror_get_first) @070bdb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_mirror_db/14 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_mirror_db_get_by_crit/17 (inlined) (792206719 (estimated locally),0.74 per call) 
pfe_mirror_deinit/20 (pfe_mirror_deinit) @070bd8c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_mirror_db/14 (read)pfe_mirror_db/14 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_mirror_destroy_db/16 (inlined) (574129754 (estimated locally),0.53 per call) 
pfe_mirror_init/19 (pfe_mirror_init) @070bd620
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_mirror_db/14 (read)pfe_mirror_db/14 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_mirror_create_db/15 (inlined) (302365698 (estimated locally),0.28 per call) 
pfe_mirror_db_get_next/18 (pfe_mirror_db_get_next) @070bd380
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function pfe_mirror_db_get_next/18 is inline copy in pfe_mirror_get_next/22
  Availability: local
  Function flags: count:792206719 (estimated locally) body local optimize_size
  Called by: pfe_mirror_get_next/22 (inlined) (792206719 (estimated locally),0.74 per call) 
  Calls: 
pfe_mirror_db_get_by_crit/17 (pfe_mirror_db_get_by_crit) @070b62a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  previous sharing asm name: 43
  References: 
  Referring: 
  Function pfe_mirror_db_get_by_crit/17 is inline copy in pfe_mirror_get_first/21
  Availability: local
  Function flags: count:792206719 (estimated locally) body local optimize_size
  Called by: pfe_mirror_get_first/21 (inlined) (792206719 (estimated locally),0.74 per call) 
  Calls: strcmp/36 (1797946271 (estimated locally),1.67 per call) 
pfe_mirror_destroy_db/16 (pfe_mirror_destroy_db) @070b69a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function pfe_mirror_destroy_db/16 is inline copy in pfe_mirror_deinit/20
  Availability: local
  Function flags: count:574129754 (estimated locally) body local optimize_size
  Called by: pfe_mirror_deinit/20 (inlined) (574129754 (estimated locally),0.53 per call) 
  Calls: oal_mm_free/35 (306987180 (estimated locally),0.29 per call) 
pfe_mirror_create_db/15 (pfe_mirror_create_db) @070b6620
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Function pfe_mirror_create_db/15 is inline copy in pfe_mirror_init/19
  Availability: local
  Function flags: count:302365698 (estimated locally) body local optimize_size
  Called by: pfe_mirror_init/19 (inlined) (302365698 (estimated locally),0.28 per call) 
  Calls: memset/34 (161674939 (estimated locally),0.15 per call) oal_mm_malloc/33 (302365698 (estimated locally),0.28 per call) 
pfe_mirror_db/14 (pfe_mirror_db) @070b0900
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_mirror_deinit/20 (write)pfe_mirror_deinit/20 (read)pfe_mirror_get_first/21 (read)pfe_mirror_init/19 (read)pfe_mirror_init/19 (write)pfe_mirror_get_next/22 (read)pfe_mirror_create/23 (read)pfe_mirror_create/23 (read)pfe_mirror_create/23 (read)
  Availability: available
  Varpool flags: initialized

;; Function pfe_mirror_init (pfe_mirror_init, funcdef_no=16, decl_uid=8323, cgraph_uid=17, symbol_order=19)


Symbols to be put in SSA form
{ D.8546 D.8581 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 10
Number of blocks to update: 9 ( 90%)


Removing basic block 3
Merging blocks 9 and 6
;; 1 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7
;; 2 succs { 7 3 }
;; 3 succs { 4 5 }
;; 4 succs { 5 }
;; 5 succs { 6 7 }
;; 6 succs { 7 }
;; 7 succs { 1 }
pfe_mirror_init (struct pfe_class_t * class)
{
  struct pfe_mirror_db_t * db;
  struct pfe_mirror_db_t * D.8581;
  errno_t ret;
  struct pfe_mirror_db_t * pfe_mirror_db.0_1;
  struct pfe_mirror_db_t * _2;
  struct pfe_mirror_db_t * _10;
  struct LLIST_t * _11;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  pfe_mirror_db.0_1 = pfe_mirror_db;
  if (pfe_mirror_db.0_1 != 0B)
    goto <bb 7>; [71.84%]
  else
    goto <bb 3>; [28.16%]

  <bb 3> [local count: 302365698]:
  # DEBUG BEGIN_STMT
  # DEBUG class => class_6(D)
  # DEBUG INLINE_ENTRY pfe_mirror_create_db
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  db_9 = oal_mm_malloc (16);
  # DEBUG db => db_9
  # DEBUG BEGIN_STMT
  if (db_9 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 161674938]:
  # DEBUG BEGIN_STMT
  _10 = db_9 + 12;
  memset (_10, 0, 4);
  # DEBUG BEGIN_STMT
  db_9->class = class_6(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _11 = &db_9->mirrors;
  db_9->mirrors.prNext = _11;
  # DEBUG BEGIN_STMT
  db_9->mirrors.prPrev = _11;

  <bb 5> [local count: 302365697]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _18 = db_9;
  # DEBUG class => NULL
  # DEBUG db => NULL
  _2 = _18;
  pfe_mirror_db = _2;
  # DEBUG BEGIN_STMT
  if (_2 == 0B)
    goto <bb 6>; [18.75%]
  else
    goto <bb 7>; [81.25%]

  <bb 6> [local count: 56693568]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 11

  <bb 7> [local count: 1073741824]:
  # ret_3 = PHI <115(2), 0(5), 11(6)>
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}



;; Function pfe_mirror_deinit (pfe_mirror_deinit, funcdef_no=17, decl_uid=8325, cgraph_uid=18, symbol_order=20)


Symbols to be put in SSA form
{ D.8547 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 9
Number of blocks to update: 8 ( 89%)


Removing basic block 3
Merging blocks 8 and 5
;; 1 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6
;; 2 succs { 3 6 }
;; 3 succs { 4 5 }
;; 4 succs { 5 }
;; 5 succs { 6 }
;; 6 succs { 1 }
pfe_mirror_deinit ()
{
  struct pfe_mirror_db_t * pfe_mirror_db.2_1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  pfe_mirror_db.2_1 = pfe_mirror_db;
  if (pfe_mirror_db.2_1 != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  # DEBUG db => pfe_mirror_db.2_1
  # DEBUG INLINE_ENTRY pfe_mirror_destroy_db
  # DEBUG BEGIN_STMT
  if (pfe_mirror_db.2_1 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 306987179]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (pfe_mirror_db.2_1);

  <bb 5> [local count: 574129754]:
  # DEBUG db => NULL
  # DEBUG BEGIN_STMT
  pfe_mirror_db = 0B;

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

}



;; Function pfe_mirror_get_first (pfe_mirror_get_first, funcdef_no=18, decl_uid=8328, cgraph_uid=19, symbol_order=21)


Symbols to be put in SSA form
{ D.8548 D.8593 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 16
Number of blocks to update: 15 ( 94%)


Removing basic block 3
Removing basic block 8
Merging blocks 15 and 5
;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12
;;
;; Loop 1
;;  header 10, latch 9
;;  depth 1, outer 0
;;  nodes: 10 9 6 7 8
;; 2 succs { 3 12 }
;; 3 succs { 11 4 }
;; 4 succs { 5 10 }
;; 5 succs { 11 }
;; 6 succs { 9 7 8 }
;; 7 succs { 11 9 }
;; 8 succs { 11 9 }
;; 9 succs { 10 }
;; 10 succs { 6 11 }
;; 11 succs { 12 }
;; 12 succs { 1 }
pfe_mirror_get_first (pfe_mirror_db_crit_t crit, const void * arg)
{
  struct LLIST_t * curr;
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_t * D.8593;
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_db_t * pfe_mirror_db.4_1;
  struct LLIST_Struct * _9;
  struct LLIST_t * _10;
  struct LLIST_Struct * _11;
  int _12;
  int _15;
  char * _17;
  int _18;
  unsigned int _19;
  unsigned int arg.6_20;

  <bb 2> [local count: 205904096]:
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  pfe_mirror_db.4_1 = pfe_mirror_db;
  if (pfe_mirror_db.4_1 != 0B)
    goto <bb 3>; [73.78%]
  else
    goto <bb 12>; [26.22%]

  <bb 3> [local count: 151916042]:
  # DEBUG BEGIN_STMT
  # DEBUG db => pfe_mirror_db.4_1
  # DEBUG crit => crit_5(D)
  # DEBUG arg => arg_6(D)
  # DEBUG INLINE_ENTRY pfe_mirror_db_get_by_crit
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  _9 = pfe_mirror_db.4_1->mirrors.prNext;
  _10 = &pfe_mirror_db.4_1->mirrors;
  if (_9 == _10)
    goto <bb 11>; [14.90%]
  else
    goto <bb 4>; [85.10%]

  <bb 4> [local count: 129280552]:
  # DEBUG BEGIN_STMT
  if (crit_5(D) == 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 5> [local count: 64640276]:
  # DEBUG BEGIN_STMT
  _11 = _9->prNext;
  pfe_mirror_db.4_1->curr = _11;
  # DEBUG BEGIN_STMT
  _12 = _9 - 12B;
  mirror_13 = (struct pfe_mirror_t *) _12;
  # DEBUG mirror => mirror_13
  goto <bb 11>; [100.00%]

  <bb 6> [local count: 1034442875]:
  # DEBUG BEGIN_STMT
  _15 = curr_14 - 12B;
  mirror_16 = (struct pfe_mirror_t *) _15;
  # DEBUG mirror => mirror_16
  # DEBUG BEGIN_STMT
  switch (crit_5(D)) <default: <L5> [33.33%], case 1: <L3> [33.33%], case 2: <L4> [33.33%]>

  <bb 7> [local count: 344779810]:
<L3>:
  # DEBUG BEGIN_STMT
  _17 = mirror_16->name;
  _18 = strcmp (_17, arg_6(D));
  if (_18 == 0)
    goto <bb 11>; [3.66%]
  else
    goto <bb 9>; [96.34%]

  <bb 8> [local count: 344779810]:
<L4>:
  # DEBUG BEGIN_STMT
  _19 = mirror_16->phys_addr;
  arg.6_20 = (unsigned int) arg_6(D);
  if (_19 == arg.6_20)
    goto <bb 11>; [3.66%]
  else
    goto <bb 9>; [96.34%]

  <bb 9> [local count: 1009101548]:
<L5>:
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  curr_21 = curr_14->prNext;
  # DEBUG curr => curr_21

  <bb 10> [local count: 1073741824]:
  # curr_14 = PHI <_9(4), curr_21(9)>
  # DEBUG match => 0
  # DEBUG mirror => 0B
  # DEBUG curr => curr_14
  # DEBUG BEGIN_STMT
  if (_10 != curr_14)
    goto <bb 6>; [96.34%]
  else
    goto <bb 11>; [3.66%]

  <bb 11> [local count: 151812599]:
  # mirror_22 = PHI <0B(3), mirror_13(5), mirror_16(7), mirror_16(8), 0B(10)>
  # DEBUG match => NULL
  # DEBUG mirror => mirror_22
  # DEBUG BEGIN_STMT
  _25 = mirror_22;
  # DEBUG db => NULL
  # DEBUG crit => NULL
  # DEBUG arg => NULL
  # DEBUG mirror => NULL
  # DEBUG curr => NULL
  mirror_8 = _25;
  # DEBUG mirror => mirror_8

  <bb 12> [local count: 205800653]:
  # mirror_2 = PHI <0B(2), mirror_8(11)>
  # DEBUG mirror => mirror_2
  # DEBUG BEGIN_STMT
  return mirror_2;

}



;; Function pfe_mirror_get_next (pfe_mirror_get_next, funcdef_no=19, decl_uid=8330, cgraph_uid=20, symbol_order=22)


Symbols to be put in SSA form
{ D.8549 D.8604 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 10
Number of blocks to update: 9 ( 90%)


Removing basic block 3
Merging blocks 9 and 5
;; 1 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7
;; 2 succs { 3 7 }
;; 3 succs { 6 4 }
;; 4 succs { 5 6 }
;; 5 succs { 6 }
;; 6 succs { 7 }
;; 7 succs { 1 }
pfe_mirror_get_next ()
{
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_t * D.8604;
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_db_t * pfe_mirror_db.7_1;
  struct LLIST_Struct * _7;
  struct LLIST_t * _8;
  struct LLIST_t * _9;
  int _10;
  struct LLIST_Struct * _12;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  pfe_mirror_db.7_1 = pfe_mirror_db;
  if (pfe_mirror_db.7_1 != 0B)
    goto <bb 3>; [73.78%]
  else
    goto <bb 7>; [26.22%]

  <bb 3> [local count: 792206719]:
  # DEBUG BEGIN_STMT
  # DEBUG db => pfe_mirror_db.7_1
  # DEBUG INLINE_ENTRY pfe_mirror_db_get_next
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  _7 = pfe_mirror_db.7_1->mirrors.prNext;
  _8 = &pfe_mirror_db.7_1->mirrors;
  if (_7 == _8)
    goto <bb 6>; [14.90%]
  else
    goto <bb 4>; [85.10%]

  <bb 4> [local count: 674167918]:
  # DEBUG BEGIN_STMT
  _9 = pfe_mirror_db.7_1->curr;
  if (_8 != _9)
    goto <bb 5>; [85.10%]
  else
    goto <bb 6>; [14.90%]

  <bb 5> [local count: 573716898]:
  # DEBUG BEGIN_STMT
  _10 = _9 - 12B;
  mirror_11 = (struct pfe_mirror_t *) _10;
  # DEBUG mirror => mirror_11
  # DEBUG BEGIN_STMT
  _12 = _9->prNext;
  pfe_mirror_db.7_1->curr = _12;

  <bb 6> [local count: 792206719]:
  # mirror_13 = PHI <0B(3), 0B(4), mirror_11(5)>
  # DEBUG mirror => mirror_13
  # DEBUG BEGIN_STMT
  _16 = mirror_13;
  # DEBUG db => NULL
  # DEBUG mirror => NULL
  mirror_6 = _16;
  # DEBUG mirror => mirror_6

  <bb 7> [local count: 1073741824]:
  # mirror_2 = PHI <0B(2), mirror_6(6)>
  # DEBUG mirror => mirror_2
  # DEBUG BEGIN_STMT
  return mirror_2;

}



;; Function pfe_mirror_create (pfe_mirror_create, funcdef_no=20, decl_uid=8332, cgraph_uid=21, symbol_order=23)

Removing basic block 13
Removing basic block 16

Symbols to be put in SSA form
{ D.8550 D.8613 }
Incremental SSA update started at block: 0
Number of blocks in CFG: 20
Number of blocks to update: 17 ( 85%)


Removing basic block 3
Removing basic block 11
Removing basic block 12
Merging blocks 14 and 15
Merging blocks 19 and 9
;; 2 loops found
;;
;; Loop 0
;;  header 0, latch 1
;;  depth 0, outer -1
;;  nodes: 0 1 2 3 4 5 6 7 8 9 10 11 12
;;
;; Loop 1
;;  header 6, latch 5
;;  depth 1, outer 0
;;  nodes: 6 5 4
;; 2 succs { 3 12 }
;; 3 succs { 7 6 }
;; 4 succs { 7 5 }
;; 5 succs { 6 }
;; 6 succs { 4 7 }
;; 7 succs { 8 12 }
;; 8 succs { 9 12 }
;; 9 succs { 10 11 }
;; 10 succs { 12 }
;; 11 succs { 12 }
;; 12 succs { 1 }
pfe_mirror_create (const char * name)
{
  struct LLIST_t * curr;
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_t * D.8613;
  struct pfe_mirror_t * mirror;
  struct pfe_mirror_db_t * pfe_mirror_db.9_1;
  struct pfe_mirror_t * _2;
  struct pfe_mirror_t * _3;
  unsigned int _4;
  unsigned int _5;
  struct pfe_mirror_db_t * pfe_mirror_db.11_6;
  struct pfe_mirror_t * _7;
  struct pfe_class_t * _8;
  unsigned int _9;
  struct pfe_mirror_db_t * pfe_mirror_db.12_10;
  struct LLIST_Struct * _11;
  struct LLIST_t * _12;
  struct LLIST_t * _13;
  struct LLIST_Struct * _32;
  struct LLIST_t * _33;
  int _38;
  char * _40;
  int _41;

  <bb 2> [local count: 122891411]:
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  pfe_mirror_db.9_1 = pfe_mirror_db;
  if (pfe_mirror_db.9_1 != 0B)
    goto <bb 3>; [73.78%]
  else
    goto <bb 12>; [26.22%]

  <bb 3> [local count: 90669283]:
  # DEBUG BEGIN_STMT
  # DEBUG db => pfe_mirror_db.9_1
  # DEBUG crit => 1
  # DEBUG arg => name_17(D)
  # DEBUG INLINE_ENTRY pfe_mirror_db_get_by_crit
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  _32 = pfe_mirror_db.9_1->mirrors.prNext;
  _33 = &pfe_mirror_db.9_1->mirrors;
  if (_32 == _33)
    goto <bb 7>; [14.90%]
  else
    goto <bb 6>; [85.10%]

  <bb 4> [local count: 1034442874]:
  # DEBUG BEGIN_STMT
  _38 = curr_37 - 12B;
  mirror_39 = (struct pfe_mirror_t *) _38;
  # DEBUG mirror => mirror_39
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _40 = mirror_39->name;
  _41 = strcmp (_40, name_17(D));
  if (_41 == 0)
    goto <bb 7>; [3.66%]
  else
    goto <bb 5>; [96.34%]

  <bb 5> [local count: 996582267]:
<L12>:
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  # DEBUG BEGIN_STMT
  curr_44 = curr_37->prNext;
  # DEBUG curr => curr_44

  <bb 6> [local count: 1073741824]:
  # curr_37 = PHI <_32(3), curr_44(5)>
  # DEBUG match => 0
  # DEBUG mirror => 0B
  # DEBUG curr => curr_37
  # DEBUG BEGIN_STMT
  if (_33 != curr_37)
    goto <bb 4>; [96.34%]
  else
    goto <bb 7>; [3.66%]

  <bb 7> [local count: 90669283]:
  # mirror_45 = PHI <0B(3), 0B(6), mirror_39(4)>
  # DEBUG match => NULL
  # DEBUG mirror => mirror_45
  # DEBUG BEGIN_STMT
  _46 = mirror_45;
  # DEBUG db => NULL
  # DEBUG crit => NULL
  # DEBUG arg => NULL
  # DEBUG mirror => NULL
  # DEBUG curr => NULL
  _3 = _46;
  if (_3 == 0B)
    goto <bb 8>; [34.07%]
  else
    goto <bb 12>; [65.93%]

  <bb 8> [local count: 30891025]:
  # DEBUG BEGIN_STMT
  _4 = strlen (name_17(D));
  _5 = _4 + 92;
  mirror_20 = oal_mm_malloc (_5);
  # DEBUG mirror => mirror_20
  # DEBUG BEGIN_STMT
  if (mirror_20 != 0B)
    goto <bb 9>; [53.47%]
  else
    goto <bb 12>; [46.53%]

  <bb 9> [local count: 16517431]:
  # DEBUG BEGIN_STMT
  _2 = mirror_20 + 4;
  memset (_2, 0, 88);
  # DEBUG BEGIN_STMT
  pfe_mirror_db.11_6 = pfe_mirror_db;
  mirror_20->db = pfe_mirror_db.11_6;
  # DEBUG BEGIN_STMT
  _7 = mirror_20 + 92;
  mirror_20->name = _7;
  # DEBUG BEGIN_STMT
  strcpy (_7, name_17(D));
  # DEBUG BEGIN_STMT
  _8 = pfe_mirror_db.11_6->class;
  _9 = pfe_class_dmem_heap_alloc (_8, 72);
  mirror_20->phys_addr = _9;
  # DEBUG BEGIN_STMT
  if (_9 == 0)
    goto <bb 10>; [16.75%]
  else
    goto <bb 11>; [83.25%]

  <bb 10> [local count: 2766670]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (mirror_20);
  # DEBUG BEGIN_STMT
  # DEBUG mirror => 0B
  goto <bb 12>; [100.00%]

  <bb 11> [local count: 13750761]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_mirror_db.12_10 = pfe_mirror_db;
  _11 = pfe_mirror_db.12_10->mirrors.prPrev;
  mirror_20->this.prPrev = _11;
  # DEBUG BEGIN_STMT
  _12 = &pfe_mirror_db.12_10->mirrors;
  mirror_20->this.prNext = _12;
  # DEBUG BEGIN_STMT
  _13 = &mirror_20->this;
  _11->prNext = _13;
  # DEBUG BEGIN_STMT
  pfe_mirror_db.12_10->mirrors.prPrev = _13;

  <bb 12> [local count: 122891411]:
  # mirror_14 = PHI <0B(2), 0B(7), mirror_20(8), 0B(10), mirror_20(11)>
  # DEBUG mirror => mirror_14
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return mirror_14;

}



;; Function pfe_mirror_destroy (pfe_mirror_destroy, funcdef_no=21, decl_uid=8334, cgraph_uid=22, symbol_order=24)

pfe_mirror_destroy (struct pfe_mirror_t * mirror)
{
  struct pfe_mirror_db_t * _1;
  struct pfe_class_t * _2;
  unsigned int _3;
  struct LLIST_Struct * _4;
  struct LLIST_Struct * _5;
  struct LLIST_Struct * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (mirror_8(D) != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  _1 = mirror_8(D)->db;
  _2 = _1->class;
  _3 = mirror_8(D)->phys_addr;
  pfe_class_dmem_heap_free (_2, _3);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = mirror_8(D)->this.prPrev;
  _5 = mirror_8(D)->this.prNext;
  _4->prNext = _5;
  # DEBUG BEGIN_STMT
  _6 = mirror_8(D)->this.prNext;
  _6->prPrev = _4;
  # DEBUG BEGIN_STMT
  mirror_8(D)->this.prPrev = 0B;
  # DEBUG BEGIN_STMT
  mirror_8(D)->this.prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (mirror_8(D));

  <bb 4> [local count: 1073741824]:
  return;

}



;; Function pfe_mirror_get_address (pfe_mirror_get_address, funcdef_no=22, decl_uid=8336, cgraph_uid=23, symbol_order=25)

pfe_mirror_get_address (const struct pfe_mirror_t * mirror)
{
  uint32_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_3 = mirror_2(D)->phys_addr;
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}



;; Function pfe_mirror_get_name (pfe_mirror_get_name, funcdef_no=23, decl_uid=8338, cgraph_uid=24, symbol_order=26)

pfe_mirror_get_name (const struct pfe_mirror_t * mirror)
{
  const char * str;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  str_3 = mirror_2(D)->name;
  # DEBUG str => str_3
  # DEBUG BEGIN_STMT
  return str_3;

}



;; Function pfe_mirror_set_egress_port (pfe_mirror_set_egress_port, funcdef_no=24, decl_uid=8341, cgraph_uid=25, symbol_order=27)

pfe_mirror_set_egress_port (struct pfe_mirror_t * mirror, pfe_ct_phy_if_id_t egress)
{
  errno_t ret;
  struct pfe_mirror_db_t * _1;
  struct pfe_class_t * _2;
  unsigned int _3;
  struct pfe_ct_mirror_t * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  mirror_6(D)->phys.e_phy_if = egress_7(D);
  # DEBUG BEGIN_STMT
  _1 = mirror_6(D)->db;
  _2 = _1->class;
  _3 = mirror_6(D)->phys_addr;
  _4 = &mirror_6(D)->phys;
  ret_10 = pfe_class_write_dmem (_2, -1, _3, _4, 72);
  # DEBUG ret => ret_10
  # DEBUG BEGIN_STMT
  return ret_10;

}



;; Function pfe_mirror_get_egress_port (pfe_mirror_get_egress_port, funcdef_no=25, decl_uid=8343, cgraph_uid=26, symbol_order=28)

pfe_mirror_get_egress_port (const struct pfe_mirror_t * mirror)
{
  pfe_ct_phy_if_id_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_3 = mirror_2(D)->phys.e_phy_if;
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}



;; Function pfe_mirror_set_filter (pfe_mirror_set_filter, funcdef_no=26, decl_uid=8346, cgraph_uid=27, symbol_order=29)

pfe_mirror_set_filter (struct pfe_mirror_t * mirror, uint32_t filter_address)
{
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  struct pfe_mirror_db_t * _10;
  struct pfe_class_t * _11;
  unsigned int _12;
  struct pfe_ct_mirror_t * _13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = filter_address_14(D) >> 24;
  _2 = filter_address_14(D) >> 8;
  _3 = _2 & 65280;
  _4 = _1 | _3;
  _5 = filter_address_14(D) << 8;
  _6 = _5 & 16711680;
  _7 = _4 | _6;
  _8 = filter_address_14(D) << 24;
  _9 = _7 | _8;
  mirror_16(D)->phys.flexible_filter = _9;
  # DEBUG BEGIN_STMT
  _10 = mirror_16(D)->db;
  _11 = _10->class;
  _12 = mirror_16(D)->phys_addr;
  _13 = &mirror_16(D)->phys;
  ret_19 = pfe_class_write_dmem (_11, -1, _12, _13, 72);
  # DEBUG ret => ret_19
  # DEBUG BEGIN_STMT
  return ret_19;

}



;; Function pfe_mirror_get_filter (pfe_mirror_get_filter, funcdef_no=27, decl_uid=8348, cgraph_uid=28, symbol_order=30)

pfe_mirror_get_filter (const struct pfe_mirror_t * mirror)
{
  uint32_t ret;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = mirror_11(D)->phys.flexible_filter;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  ret_12 = _8 | _9;
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  return ret_12;

}



;; Function pfe_mirror_set_actions (pfe_mirror_set_actions, funcdef_no=28, decl_uid=8352, cgraph_uid=29, symbol_order=31)

pfe_mirror_set_actions (struct pfe_mirror_t * mirror, pfe_ct_route_actions_t actions, const struct pfe_ct_route_actions_args_t * args)
{
  errno_t ret;
  struct pfe_ct_route_actions_args_t * _1;
  struct pfe_mirror_db_t * _2;
  struct pfe_class_t * _3;
  unsigned int _4;
  struct pfe_ct_mirror_t * _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  mirror_8(D)->phys.actions = actions_9(D);
  # DEBUG BEGIN_STMT
  if (actions_9(D) != 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 4>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _1 = &mirror_8(D)->phys.args;
  memcpy (_1, args_11(D), 60);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = mirror_8(D)->db;
  _3 = _2->class;
  _4 = mirror_8(D)->phys_addr;
  _5 = &mirror_8(D)->phys;
  ret_14 = pfe_class_write_dmem (_3, -1, _4, _5, 72);
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  return ret_14;

}



;; Function pfe_mirror_get_actions (pfe_mirror_get_actions, funcdef_no=29, decl_uid=8356, cgraph_uid=30, symbol_order=32)

pfe_mirror_get_actions (const struct pfe_mirror_t * mirror, pfe_ct_route_actions_t * actions, struct pfe_ct_route_actions_args_t * args)
{
  <unnamed type> _1;
  const struct pfe_ct_route_actions_args_t * _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  _1 = mirror_5(D)->phys.actions;
  *actions_6(D) = _1;
  # DEBUG BEGIN_STMT
  if (_1 != 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 4>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _2 = &mirror_5(D)->phys.args;
  memcpy (args_8(D), _2, 60);

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

}


