
IPA constant propagation start:
Determining dynamic type for call: ret_5 = pfe_util_write_dmem.part.0 (util_p_6(D), dst_addr_10(D), src_ptr_11(D), len_12(D));
  Starting walk at: ret_5 = pfe_util_write_dmem.part.0 (util_p_6(D), dst_addr_10(D), src_ptr_11(D), len_12(D));
  instance pointer: util_p_6(D)  Outer instance pointer: util_p_6(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: ret_5 = pfe_util_write_dmem.part.0 (util_p_6(D), dst_addr_10(D), src_ptr_11(D), len_12(D));
  Starting walk at: ret_5 = pfe_util_write_dmem.part.0 (util_p_6(D), dst_addr_10(D), src_ptr_11(D), len_12(D));
  instance pointer: src_ptr_11(D)  Outer instance pointer: src_ptr_11(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: pfe_util_destroy.part.0 (util_1(D));
  Starting walk at: pfe_util_destroy.part.0 (util_1(D));
  instance pointer: util_1(D)  Outer instance pointer: util_1(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: ret_9 = pfe_util_load_fw_features (util_3(D));
  Starting walk at: ret_9 = pfe_util_load_fw_features (util_3(D));
  instance pointer: util_3(D)  Outer instance pointer: util_3(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pfe_pe_load_firmware (_1, _2, elf_5(D));
Determining dynamic type for call: ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  Starting walk at: ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  instance pointer: &util_instance  Outer instance pointer: util_instance offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:memset (&util_instance, 0, 292);
Determining dynamic type for call: pfe_util_reset (&util_instance);
  Starting walk at: pfe_util_reset (&util_instance);
  instance pointer: &util_instance  Outer instance pointer: util_instance offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  Function call may change dynamic type:memset (&util_instance, 0, 292);
Determining dynamic type for call: pfe_util_disable (&util_instance);
  Starting walk at: pfe_util_disable (&util_instance);
  instance pointer: &util_instance  Outer instance pointer: util_instance offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pfe_util_reset (&util_instance);
  Function call may change dynamic type:ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  Function call may change dynamic type:memset (&util_instance, 0, 292);
Determining dynamic type for call: pfe_util_set_config.isra.0 (_15, cfg_12(D));
  Starting walk at: pfe_util_set_config.isra.0 (_15, cfg_12(D));
  instance pointer: cfg_12(D)  Outer instance pointer: cfg_12(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pfe_util_disable (&util_instance);
  Function call may change dynamic type:pfe_util_reset (&util_instance);
  Function call may change dynamic type:ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  Function call may change dynamic type:memset (&util_instance, 0, 292);
Determining dynamic type for call: pfe_util_destroy (&util_instance);
  Starting walk at: pfe_util_destroy (&util_instance);
  instance pointer: &util_instance  Outer instance pointer: util_instance offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  Function call may change dynamic type:memset (&util_instance, 0, 292);
Determining dynamic type for call: val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  Starting walk at: val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  instance pointer: util_20(D)  Outer instance pointer: util_20(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pfe_fw_feature_create (_13);
  Function call may change dynamic type:_2 = pfe_pe_get_mmap (_1, &mmap);
  Function call may change dynamic type:val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  Function call may change dynamic type:pfe_fw_feature_create (_13);
Determining dynamic type for call: val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  Starting walk at: val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  instance pointer: &ret  Outer instance pointer: ret offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pfe_fw_feature_create (_13);
  Function call may change dynamic type:_2 = pfe_pe_get_mmap (_1, &mmap);
  Function call may change dynamic type:val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  Function call may change dynamic type:pfe_fw_feature_create (_13);

IPA structures before propagation:

Jump functions:
  Jump functions of caller  pfe_util_destroy.part.0/70:
  Jump functions of caller  pfe_util_write_dmem.part.0/69:
  Jump functions of caller  pfe_util_set_config.isra.0/68:
  Jump functions of caller  pfe_util_cfg_isr/67:
  Jump functions of caller  pfe_pe_unlock/66:
  Jump functions of caller  pfe_pe_check_stalled_nolock/65:
  Jump functions of caller  pfe_pe_get_fw_messages_nolock/64:
  Jump functions of caller  pfe_pe_lock/63:
  Jump functions of caller  strcmp/62:
  Jump functions of caller  pfe_fw_feature_get_name/61:
  Jump functions of caller  pfe_pe_destroy/60:
  Jump functions of caller  pfe_pe_memcpy_from_dmem_to_host_32/59:
  Jump functions of caller  pfe_pe_memcpy_from_host_to_dmem_32/58:
  Jump functions of caller  pfe_fw_feature_set_dmem_funcs/57:
  Jump functions of caller  pfe_fw_feature_set_string_base/56:
  Jump functions of caller  pfe_pe_get_fw_feature_str_base/55:
  Jump functions of caller  pfe_fw_feature_set_ll_data/54:
  Jump functions of caller  pfe_fw_feature_destroy/53:
  Jump functions of caller  pfe_pe_get_fw_feature_entry/52:
  Jump functions of caller  pfe_fw_feature_create/51:
  Jump functions of caller  pfe_pe_get_mmap/50:
  Jump functions of caller  pfe_pe_load_firmware/49:
  Jump functions of caller  pfe_pe_mem_default_init/48:
  Jump functions of caller  pfe_pe_set_imem/46:
  Jump functions of caller  pfe_pe_set_dmem/45:
  Jump functions of caller  pfe_pe_set_iaccess/44:
  Jump functions of caller  pfe_pe_create/43:
  Jump functions of caller  memset/42:
  Jump functions of caller  pfe_util_get_fw_version/41:
  Jump functions of caller  pfe_util_irq_unmask/40:
  Jump functions of caller  pfe_util_irq_mask/39:
  Jump functions of caller  pfe_util_isr/38:
  Jump functions of caller  pfe_util_read_dmem/37:
  Jump functions of caller  pfe_util_write_dmem/36:
    callsite  pfe_util_write_dmem/36 -> pfe_util_write_dmem.part.0/69 : 
       param 0: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: PASS THROUGH: 2, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: PASS THROUGH: 3, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: PASS THROUGH: 4, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_util_get_feature_next/35:
  Jump functions of caller  pfe_util_get_feature_first/34:
  Jump functions of caller  pfe_util_get_feature/33:
  Jump functions of caller  pfe_util_destroy/32:
    callsite  pfe_util_destroy/32 -> pfe_util_destroy.part.0/70 : 
       param 0: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_util_load_firmware/31:
    callsite  pfe_util_load_firmware/31 -> pfe_util_load_fw_features/23 : 
       param 0: PASS THROUGH: 0, op nop_expr
         Aggregate passed by reference:
           offset: 0, cst: 1
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_util_default_init/30:
  Jump functions of caller  pfe_util_disable/29:
  Jump functions of caller  pfe_util_enable/28:
  Jump functions of caller  pfe_util_reset/27:
  Jump functions of caller  pfe_util_create/26:
    callsite  pfe_util_create/26 -> pfe_util_set_config.isra.0/68 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: PASS THROUGH: 2, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
    callsite  pfe_util_create/26 -> pfe_util_disable/29 : 
       param 0: CONST: &util_instance
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
    callsite  pfe_util_create/26 -> pfe_util_reset/27 : 
       param 0: CONST: &util_instance
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
    callsite  pfe_util_create/26 -> pfe_util_destroy/32 : 
       param 0: CONST: &util_instance
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
    callsite  pfe_util_create/26 -> pfe_util_create_pe/25 : 
       param 0: PASS THROUGH: 1, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: CONST: &util_instance
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
  Jump functions of caller  pfe_util_create_pe/25:
  Jump functions of caller  pfe_util_load_fw_features/23:
    callsite  pfe_util_load_fw_features/23 -> pfe_util_check_new_fw_features/22 : 
       param 0: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_util_check_new_fw_features/22:

 Propagating constants:

Not considering pfe_util_get_fw_version for cloning; -fipa-cp-clone disabled.
Function pfe_util_irq_unmask/40 is not versionable, reason: not a tree_versionable_function.
Not considering pfe_util_irq_mask for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_isr for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_read_dmem for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_write_dmem for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_get_feature_next for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_get_feature_first for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_get_feature for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_destroy for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_load_firmware for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_default_init for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_disable for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_enable for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_reset for cloning; -fipa-cp-clone disabled.
Not considering pfe_util_create for cloning; -fipa-cp-clone disabled.

overall_size: 346, max_new_size: 11001
 - context independent values, size: 2, time_benefit: 1.000000
 - context independent values, size: 29, time_benefit: 1.000000
     Decided to specialize for all known contexts, code not going to grow.

IPA lattices after all propagation:

Lattices:
  Node: pfe_util_destroy.part.0/70:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_util_write_dmem.part.0/69:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [3]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_util_set_config.isra.0/68:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_util_get_fw_version/41:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_irq_unmask/40:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_irq_mask/39:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_isr/38:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_read_dmem/37:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [4]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_write_dmem/36:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [4]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_get_feature_next/35:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_get_feature_first/34:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_get_feature/33:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_destroy/32:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_load_firmware/31:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_default_init/30:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_disable/29:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_enable/28:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_reset/27:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_create/26:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_util_create_pe/25:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [2]: &util_instance [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         struct pfe_util_t * ~[0B, 0B]
        AGGS VARIABLE
  Node: pfe_util_load_fw_features/23:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_util_check_new_fw_features/22:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         errno_t * ~[0B, 0B]
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE

IPA decision stage:

 - Creating a specialized node of pfe_util_create_pe/25 for all known contexts.
    replacing param #2 util with const &util_instance
Propagated bits info for function pfe_util_create_pe.constprop/71:
 param 2: value = 0x0, mask = 0xfffffffc
Propagated bits info for function pfe_util_create_pe/25:
 param 2: value = 0x0, mask = 0xfffffffc
Propagated bits info for function pfe_util_check_new_fw_features/22:
 param 1: value = 0x0, mask = 0xfffffffc

IPA constant propagation end

Reclaiming functions: pfe_util_create_pe/25
Reclaiming variables:
Clearing address taken flags:
Symbol table:

pfe_util_create_pe.constprop.0/71 (pfe_util_create_pe.constprop) @0756ce00
  Type: function definition analyzed
  Visibility:
  References: util_instance/21 (addr)
  Referring: 
  Clone of pfe_util_create_pe/25
  Availability: local
  Function flags: count:114863532 (estimated locally) local optimize_size
  Called by: pfe_util_create/26 (587014656 (estimated locally),0.55 per call) 
  Calls: pfe_pe_create/43 (1014686025 (estimated locally),8.83 per call) pfe_pe_set_iaccess/44 (958878293 (estimated locally),8.35 per call) pfe_pe_set_dmem/45 (958878293 (estimated locally),8.35 per call) pfe_pe_set_imem/46 (958878293 (estimated locally),8.35 per call) 
pfe_util_destroy.part.0/70 (pfe_util_destroy.part.0) @06eb0620
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:118111600 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: pfe_util_destroy/32 (118111600 (estimated locally),0.53 per call) 
  Calls: pfe_pe_destroy/60 (118111600 (estimated locally),1.00 per call) pfe_fw_feature_destroy/53 (955630223 (estimated locally),8.09 per call) 
pfe_util_write_dmem.part.0/69 (pfe_util_write_dmem.part.0) @06eb0ee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:118111600 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: pfe_util_write_dmem/36 (118111599 (estimated locally),0.38 per call) 
  Calls: pfe_pe_memcpy_from_host_to_dmem_32/58 (955630223 (estimated locally),8.09 per call) 
pfe_util_set_config.isra.0/68 (pfe_util_set_config.isra.0) @06c180e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: pfe_util_create/26 (416780405 (estimated locally),0.39 per call) 
  Calls: 
pfe_util_cfg_isr/67 (pfe_util_cfg_isr) @07612620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_isr/38 (118111601 (estimated locally),1.00 per call) 
  Calls: 
pfe_pe_unlock/66 (pfe_pe_unlock) @07612540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_isr/38 (955630223 (estimated locally),8.09 per call) 
  Calls: 
pfe_pe_check_stalled_nolock/65 (pfe_pe_check_stalled_nolock) @07612460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_isr/38 (955630223 (estimated locally),8.09 per call) 
  Calls: 
pfe_pe_get_fw_messages_nolock/64 (pfe_pe_get_fw_messages_nolock) @07612380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_isr/38 (955630223 (estimated locally),8.09 per call) 
  Calls: 
pfe_pe_lock/63 (pfe_pe_lock) @076122a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_isr/38 (955630223 (estimated locally),8.09 per call) 
  Calls: 
strcmp/62 (strcmp) @075e8ee0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_get_feature/33 (507343012 (estimated locally),5.83 per call) 
  Calls: 
pfe_fw_feature_get_name/61 (pfe_fw_feature_get_name) @075e8e00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_get_feature/33 (1014686025 (estimated locally),11.67 per call) 
  Calls: 
pfe_pe_destroy/60 (pfe_pe_destroy) @075e8c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_destroy.part.0/70 (118111600 (estimated locally),1.00 per call) 
  Calls: 
pfe_pe_memcpy_from_dmem_to_host_32/59 (pfe_pe_memcpy_from_dmem_to_host_32) @075e8a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_read_dmem/37 (512926469 (estimated locally),0.48 per call) 
  Calls: 
pfe_pe_memcpy_from_host_to_dmem_32/58 (pfe_pe_memcpy_from_host_to_dmem_32) @075e88c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_write_dmem/36 (83719569 (estimated locally),0.27 per call) pfe_util_write_dmem.part.0/69 (955630223 (estimated locally),8.09 per call) 
  Calls: 
pfe_fw_feature_set_dmem_funcs/57 (pfe_fw_feature_set_dmem_funcs) @075e8700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_check_new_fw_features/22 (19197542 (estimated locally),0.11 per call) 
  Calls: 
pfe_fw_feature_set_string_base/56 (pfe_fw_feature_set_string_base) @075e8620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_check_new_fw_features/22 (58174370 (estimated locally),0.33 per call) 
  Calls: 
pfe_pe_get_fw_feature_str_base/55 (pfe_pe_get_fw_feature_str_base) @075e8540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_check_new_fw_features/22 (58174370 (estimated locally),0.33 per call) 
  Calls: 
pfe_fw_feature_set_ll_data/54 (pfe_fw_feature_set_ll_data) @075e8460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_check_new_fw_features/22 (58174370 (estimated locally),0.33 per call) 
  Calls: 
pfe_fw_feature_destroy/53 (pfe_fw_feature_destroy) @075e8380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_destroy.part.0/70 (955630223 (estimated locally),8.09 per call) pfe_util_check_new_fw_features/22 (315357974 (estimated locally),1.79 per call) pfe_util_check_new_fw_features/22 (955630224 (estimated locally),5.42 per call) 
  Calls: 
pfe_pe_get_fw_feature_entry/52 (pfe_pe_get_fw_feature_entry) @075e82a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_check_new_fw_features/22 (176285970 (estimated locally),1.00 per call) 
  Calls: 
pfe_fw_feature_create/51 (pfe_fw_feature_create) @075e80e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_load_fw_features/23 (1014686025 (estimated locally),1.10 per call) 
  Calls: 
pfe_pe_get_mmap/50 (pfe_pe_get_mmap) @075e8000
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_get_fw_version/41 (512926469 (estimated locally),0.48 per call) pfe_util_load_fw_features/23 (918908257 (estimated locally),1.00 per call) 
  Calls: 
pfe_pe_load_firmware/49 (pfe_pe_load_firmware) @075dde00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_load_firmware/31 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_pe_mem_default_init/48 (pfe_pe_mem_default_init) @075ddc40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_default_init/30 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_pe_set_imem/46 (pfe_pe_set_imem) @075dd620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_create_pe.constprop/71 (958878293 (estimated locally),8.35 per call) 
  Calls: 
pfe_pe_set_dmem/45 (pfe_pe_set_dmem) @075dd540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_create_pe.constprop/71 (958878293 (estimated locally),8.35 per call) 
  Calls: 
pfe_pe_set_iaccess/44 (pfe_pe_set_iaccess) @075dd460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_create_pe.constprop/71 (958878293 (estimated locally),8.35 per call) 
  Calls: 
pfe_pe_create/43 (pfe_pe_create) @075dd380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_create_pe.constprop/71 (1014686025 (estimated locally),8.83 per call) 
  Calls: 
memset/42 (memset) @075dd1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_util_create/26 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_util_get_fw_version/41 (pfe_util_get_fw_version) @075d27e0
  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_pe_get_mmap/50 (512926469 (estimated locally),0.48 per call) 
pfe_util_irq_unmask/40 (pfe_util_irq_unmask) @075d22a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body icf_merged optimize_size
  Called by: 
  Calls: pfe_util_irq_mask/39 (1073741824 (estimated locally),1.00 per call) 
pfe_util_irq_mask/39 (pfe_util_irq_mask) @075d2ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body icf_merged optimize_size
  Called by: pfe_util_irq_unmask/40 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_util_isr/38 (pfe_util_isr) @075d2c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:118111600 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_util_cfg_isr/67 (118111601 (estimated locally),1.00 per call) pfe_pe_unlock/66 (955630223 (estimated locally),8.09 per call) pfe_pe_check_stalled_nolock/65 (955630223 (estimated locally),8.09 per call) pfe_pe_get_fw_messages_nolock/64 (955630223 (estimated locally),8.09 per call) pfe_pe_lock/63 (955630223 (estimated locally),8.09 per call) 
pfe_util_read_dmem/37 (pfe_util_read_dmem) @075d29a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: 
  Referring: pfe_util_check_new_fw_features/22 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_pe_memcpy_from_dmem_to_host_32/59 (512926469 (estimated locally),0.48 per call) 
pfe_util_write_dmem/36 (pfe_util_write_dmem) @075d2700
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: 
  Referring: pfe_util_check_new_fw_features/22 (addr)
  Availability: available
  Function flags: count:310509491 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_pe_memcpy_from_host_to_dmem_32/58 (83719569 (estimated locally),0.27 per call) pfe_util_write_dmem.part.0/69 (118111599 (estimated locally),0.38 per call) 
pfe_util_get_feature_next/35 (pfe_util_get_feature_next) @075d2460
  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_util_get_feature_first/34 (pfe_util_get_feature_first) @075d21c0
  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_util_get_feature/33 (pfe_util_get_feature) @075cbee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:86959666 (estimated locally) body optimize_size
  Called by: 
  Calls: strcmp/62 (507343012 (estimated locally),5.83 per call) pfe_fw_feature_get_name/61 (1014686025 (estimated locally),11.67 per call) 
pfe_util_destroy/32 (pfe_util_destroy) @075cb9a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:220893212 (estimated locally) body optimize_size
  Called by: pfe_util_create/26 (170234250 (estimated locally),0.16 per call) 
  Calls: pfe_util_destroy.part.0/70 (118111600 (estimated locally),0.53 per call) 
pfe_util_load_firmware/31 (pfe_util_load_firmware) @075cb380
  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_util_load_fw_features/23 (1073741824 (estimated locally),1.00 per call) pfe_pe_load_firmware/49 (1073741824 (estimated locally),1.00 per call) 
pfe_util_default_init/30 (pfe_util_default_init) @075cbe00
  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_pe_mem_default_init/48 (1073741824 (estimated locally),1.00 per call) 
pfe_util_disable/29 (pfe_util_disable) @075cbb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: pfe_util_create/26 (416780405 (estimated locally),0.39 per call) 
  Calls: 
pfe_util_enable/28 (pfe_util_enable) @075cb8c0
  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_util_reset/27 (pfe_util_reset) @075cb540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: pfe_util_create/26 (416780405 (estimated locally),0.39 per call) 
  Calls: 
pfe_util_create/26 (pfe_util_create) @075cb2a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: util_instance/21 (addr)util_instance/21 (write)util_instance/21 (addr)util_instance/21 (addr)util_instance/21 (addr)util_instance/21 (addr)util_instance/21 (read)util_instance/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_util_set_config.isra.0/68 (416780405 (estimated locally),0.39 per call) pfe_util_disable/29 (416780405 (estimated locally),0.39 per call) pfe_util_reset/27 (416780405 (estimated locally),0.39 per call) pfe_util_destroy/32 (170234250 (estimated locally),0.16 per call) pfe_util_create_pe.constprop/71 (587014656 (estimated locally),0.55 per call) memset/42 (1073741824 (estimated locally),1.00 per call) 
pfe_util_create_pe/25 (pfe_util_create_pe) @075cb000
  Type: function
  Body removed by symtab_remove_unreachable_nodes
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: not_available
  Function flags: count:114863532 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_util_load_fw_features/23 (pfe_util_load_fw_features) @0756ca80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:918908257 (estimated locally) body local optimize_size
  Called by: pfe_util_load_firmware/31 (1073741824 (estimated locally),1.00 per call) 
  Calls: pfe_util_check_new_fw_features/22 (1014686025 (estimated locally),1.10 per call) pfe_fw_feature_create/51 (1014686025 (estimated locally),1.10 per call) pfe_pe_get_mmap/50 (918908257 (estimated locally),1.00 per call) 
pfe_util_check_new_fw_features/22 (pfe_util_check_new_fw_features) @0756c7e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pfe_util_read_dmem/37 (addr)pfe_util_write_dmem/36 (addr)
  Referring: 
  Availability: local
  Function flags: count:176285970 (estimated locally) body local optimize_size
  Called by: pfe_util_load_fw_features/23 (1014686025 (estimated locally),1.10 per call) 
  Calls: pfe_fw_feature_set_dmem_funcs/57 (19197542 (estimated locally),0.11 per call) pfe_fw_feature_destroy/53 (315357974 (estimated locally),1.79 per call) pfe_fw_feature_set_string_base/56 (58174370 (estimated locally),0.33 per call) pfe_pe_get_fw_feature_str_base/55 (58174370 (estimated locally),0.33 per call) pfe_fw_feature_set_ll_data/54 (58174370 (estimated locally),0.33 per call) pfe_fw_feature_destroy/53 (955630224 (estimated locally),5.42 per call) pfe_pe_get_fw_feature_entry/52 (176285970 (estimated locally),1.00 per call) 
util_instance/21 (util_instance) @075699d8
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_util_create/26 (addr)pfe_util_create/26 (write)pfe_util_create/26 (addr)pfe_util_create/26 (addr)pfe_util_create/26 (addr)pfe_util_create/26 (addr)pfe_util_create/26 (read)pfe_util_create/26 (addr)pfe_util_create_pe.constprop.0/71 (addr)
  Availability: available
  Varpool flags:

;; Function pfe_util_read_dmem (pfe_util_read_dmem, funcdef_no=34, decl_uid=10738, cgraph_uid=35, symbol_order=37)

Modification phase of node pfe_util_read_dmem/37
pfe_util_read_dmem (void * util_p, int32_t pe_idx, void * dst_ptr, addr_t src_addr, uint32_t len)
{
  errno_t ret;
  long unsigned int _1;
  long int _2;
  struct pfe_pe_t * _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG util => util_p_6(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct pfe_util_t *)util_p_6(D)].pe_num;
  _2 = (long int) _1;
  if (_2 <= pe_idx_8(D))
    goto <bb 4>; [52.23%]
  else
    goto <bb 3>; [47.77%]

  <bb 3> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _3 = &MEM[(struct pfe_util_t *)util_p_6(D)].pe[pe_idx_8(D)];
  pfe_pe_memcpy_from_dmem_to_host_32 (_3, dst_ptr_9(D), src_addr_10(D), len_11(D));
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 4> [local count: 1073741824]:
  # ret_4 = PHI <22(2), 0(3)>
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}



;; Function pfe_util_write_dmem (pfe_util_write_dmem, funcdef_no=33, decl_uid=10744, cgraph_uid=34, symbol_order=36)

Modification phase of node pfe_util_write_dmem/36
pfe_util_write_dmem (void * util_p, int32_t pe_idx, addr_t dst_addr, const void * src_ptr, uint32_t len)
{
  errno_t ret;
  long unsigned int _1;
  long int _2;
  struct pfe_pe_t * _3;

  <bb 2> [local count: 310509491]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG util => util_p_6(D)
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = MEM[(struct pfe_util_t *)util_p_6(D)].pe_num;
  _2 = (long int) _1;
  if (_2 <= pe_idx_9(D))
    goto <bb 6>; [35.00%]
  else
    goto <bb 3>; [65.00%]

  <bb 3> [local count: 201831169]:
  # DEBUG BEGIN_STMT
  if (pe_idx_9(D) >= 0)
    goto <bb 5>; [41.48%]
  else
    goto <bb 4>; [58.52%]

  <bb 4> [local count: 118111599]:
  # DEBUG D#2 => pe_idx_9(D)
  ret_5 = pfe_util_write_dmem.part.0 (util_p_6(D), dst_addr_10(D), src_ptr_11(D), len_12(D));
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 83719569]:
  # DEBUG BEGIN_STMT
  _3 = &MEM[(struct pfe_util_t *)util_p_6(D)].pe[pe_idx_9(D)];
  pfe_pe_memcpy_from_host_to_dmem_32 (_3, dst_addr_10(D), src_ptr_11(D), len_12(D));

  <bb 6> [local count: 310509492]:
  # ret_4 = PHI <22(2), ret_5(4), 0(5)>
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}



;; Function pfe_util_destroy.part.0 (pfe_util_destroy.part.0, funcdef_no=41, decl_uid=11031, cgraph_uid=68, symbol_order=70)

Modification phase of node pfe_util_destroy.part.0/70
pfe_util_destroy.part.0 (struct pfe_util_t * util)
{
  uint32_t count;
  struct pfe_pe_t[1] * _2;
  long unsigned int _3;
  struct pfe_fw_feature_t * _5;
  long unsigned int _7;

  <bb 7> [local count: 118111600]:

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _2 = &util_1(D)->pe;
  _3 = util_1(D)->pe_num;
  pfe_pe_destroy (_2, _3);
  # DEBUG BEGIN_STMT
  # DEBUG count => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _5 = &util_1(D)->fw_features[count_4];
  pfe_fw_feature_destroy (_5);
  # DEBUG BEGIN_STMT
  count_6 = count_4 + 1;
  # DEBUG count => count_6

  <bb 4> [local count: 1073741824]:
  # count_4 = PHI <0(2), count_6(3)>
  # DEBUG count => count_4
  # DEBUG BEGIN_STMT
  _7 = util_1(D)->fw_features_count;
  if (count_4 < _7)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  util_1(D)->fw_features_count = 0;
  # DEBUG BEGIN_STMT
  util_1(D)->pe_num = 0;

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

}



;; Function pfe_util_reset (pfe_util_reset, funcdef_no=24, decl_uid=9757, cgraph_uid=25, symbol_order=27)

Modification phase of node pfe_util_reset/27
pfe_util_reset (struct pfe_util_t * util)
{
  unsigned int _1;
  unsigned int _2;
  volatile uint32_t * _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_5(D)->cbus_base_va;
  _2 = _1 + 835588;
  _3 = (volatile uint32_t *) _2;
  *_3 ={v} 2;
  # DEBUG BEGIN_STMT
  return;

}



;; Function pfe_util_enable (pfe_util_enable, funcdef_no=25, decl_uid=9755, cgraph_uid=26, symbol_order=28)

Modification phase of node pfe_util_enable/28
pfe_util_enable (struct pfe_util_t * util)
{
  unsigned int _1;
  unsigned int _2;
  volatile uint32_t * _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_5(D)->cbus_base_va;
  _2 = _1 + 835588;
  _3 = (volatile uint32_t *) _2;
  *_3 ={v} 1;
  # DEBUG BEGIN_STMT
  return;

}



;; Function pfe_util_disable (pfe_util_disable, funcdef_no=26, decl_uid=9759, cgraph_uid=27, symbol_order=29)

Modification phase of node pfe_util_disable/29
pfe_util_disable (struct pfe_util_t * util)
{
  unsigned int _1;
  unsigned int _2;
  volatile uint32_t * _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_5(D)->cbus_base_va;
  _2 = _1 + 835588;
  _3 = (volatile uint32_t *) _2;
  *_3 ={v} 0;
  # DEBUG BEGIN_STMT
  return;

}



;; Function pfe_util_create (pfe_util_create, funcdef_no=23, decl_uid=9753, cgraph_uid=24, symbol_order=26)

Modification phase of node pfe_util_create/26
pfe_util_create (addr_t cbus_base_va, uint32_t pe_num, const struct pfe_util_cfg_t * cfg)
{
  errno_t ret;
  struct pfe_util_t * util;
  unsigned int _15;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG util => &util_instance
  # DEBUG BEGIN_STMT
  memset (&util_instance, 0, 292);
  # DEBUG BEGIN_STMT
  util_instance.cbus_base_va = cbus_base_va_5(D);
  # DEBUG BEGIN_STMT
  if (pe_num_7(D) != 0)
    goto <bb 3>; [54.67%]
  else
    goto <bb 6>; [45.33%]

  <bb 3> [local count: 587014656]:
  # DEBUG BEGIN_STMT
  ret_9 = pfe_util_create_pe (pe_num_7(D), cbus_base_va_5(D), &util_instance);
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  if (ret_9 != 0)
    goto <bb 4>; [29.00%]
  else
    goto <bb 5>; [71.00%]

  <bb 4> [local count: 170234250]:
  # DEBUG BEGIN_STMT
  pfe_util_destroy (&util_instance);
  # DEBUG BEGIN_STMT
  # DEBUG util => 0B
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 416780405]:
  # DEBUG BEGIN_STMT
  pfe_util_reset (&util_instance);
  # DEBUG BEGIN_STMT
  pfe_util_disable (&util_instance);
  # DEBUG BEGIN_STMT
  _15 = MEM[(unsigned int *)&util_instance + 4B];
  # DEBUG D#1 => &util_instance
  pfe_util_set_config.isra.0 (_15, cfg_12(D));

  <bb 6> [local count: 1073741824]:
  # util_1 = PHI <&util_instance(5), 0B(2), 0B(4)>
  # DEBUG util => util_1
  # DEBUG BEGIN_STMT
  return util_1;

}



;; Function pfe_util_default_init (pfe_util_default_init, funcdef_no=27, decl_uid=9761, cgraph_uid=28, symbol_order=30)

Modification phase of node pfe_util_default_init/30
pfe_util_default_init (struct pfe_util_t * util)
{
  errno_t ret;
  struct pfe_pe_t[1] * _1;
  long unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &util_3(D)->pe;
  _2 = util_3(D)->pe_num;
  ret_6 = pfe_pe_mem_default_init (_1, _2);
  # DEBUG ret => ret_6
  # DEBUG BEGIN_STMT
  return ret_6;

}



;; Function pfe_util_load_firmware (pfe_util_load_firmware, funcdef_no=28, decl_uid=9764, cgraph_uid=29, symbol_order=31)

Modification phase of node pfe_util_load_firmware/31
pfe_util_load_firmware (struct pfe_util_t * util, const void * elf)
{
  errno_t ret;
  struct pfe_pe_t[1] * _1;
  long unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &util_3(D)->pe;
  _2 = util_3(D)->pe_num;
  pfe_pe_load_firmware (_1, _2, elf_5(D));
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  util_3(D)->is_fw_loaded = 1;
  # DEBUG BEGIN_STMT
  ret_9 = pfe_util_load_fw_features (util_3(D));
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_9;

}



;; Function pfe_util_destroy (pfe_util_destroy, funcdef_no=29, decl_uid=9766, cgraph_uid=30, symbol_order=32)

Modification phase of node pfe_util_destroy/32
pfe_util_destroy (struct pfe_util_t * util)
{
  <bb 2> [local count: 220893212]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (util_1(D) != 0B)
    goto <bb 3>; [53.47%]
  else
    goto <bb 4>; [46.53%]

  <bb 3> [local count: 118111600]:
  pfe_util_destroy.part.0 (util_1(D));

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

}



;; Function pfe_util_get_feature (pfe_util_get_feature, funcdef_no=30, decl_uid=9779, cgraph_uid=31, symbol_order=33)

Modification phase of node pfe_util_get_feature/33
pfe_util_get_feature (struct pfe_util_t * util, struct pfe_fw_feature_t * * feature, const char * name)
{
  errno_t ret;
  const char * fname;
  uint32_t count;
  struct pfe_fw_feature_t * _1;
  const char * fname.3_2;
  int _3;
  struct pfe_fw_feature_t * _4;
  long unsigned int _5;

  <bb 2> [local count: 86959666]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  # DEBUG BEGIN_STMT
  # DEBUG count => 0
  goto <bb 7>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _1 = &util_13(D)->fw_features[count_6];
  ret_15 = pfe_fw_feature_get_name (_1, &fname);
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  if (ret_15 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 4> [local count: 507343012]:
  # DEBUG BEGIN_STMT
  fname.3_2 = fname;
  _3 = strcmp (fname.3_2, name_16(D));
  if (_3 == 0)
    goto <bb 5>; [5.50%]
  else
    goto <bb 6>; [94.50%]

  <bb 5> [local count: 27903866]:
  # _4 = PHI <_1(4)>
  # DEBUG BEGIN_STMT
  *feature_17(D) = _4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 6> [local count: 986782159]:
  # ret_7 = PHI <ret_15(3), 2(4)>
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  count_19 = count_6 + 1;
  # DEBUG count => count_19

  <bb 7> [local count: 1073741824]:
  # count_6 = PHI <0(2), count_19(6)>
  # ret_8 = PHI <2(2), ret_7(6)>
  # DEBUG ret => ret_8
  # DEBUG count => count_6
  # DEBUG BEGIN_STMT
  _5 = util_13(D)->fw_features_count;
  if (_5 > count_6)
    goto <bb 3>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 86959666]:
  # ret_9 = PHI <0(5), ret_8(7)>
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  fname ={v} {CLOBBER};
  return ret_9;

}



;; Function pfe_util_get_feature_first (pfe_util_get_feature_first, funcdef_no=31, decl_uid=9782, cgraph_uid=32, symbol_order=34)

Modification phase of node pfe_util_get_feature_first/34
pfe_util_get_feature_first (struct pfe_util_t * util, struct pfe_fw_feature_t * * feature)
{
  errno_t ret;
  long unsigned int _1;
  struct pfe_fw_feature_t * _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_6(D)->fw_features_count;
  if (_1 != 0)
    goto <bb 3>; [65.00%]
  else
    goto <bb 4>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  util_6(D)->current_feature = 0;
  # DEBUG BEGIN_STMT
  _2 = &util_6(D)->fw_features[0];
  *feature_8(D) = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 4> [local count: 1073741824]:
  # ret_3 = PHI <0(3), 2(2)>
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}



;; Function pfe_util_get_feature_next (pfe_util_get_feature_next, funcdef_no=32, decl_uid=9785, cgraph_uid=33, symbol_order=35)

Modification phase of node pfe_util_get_feature_next/35
pfe_util_get_feature_next (struct pfe_util_t * util, struct pfe_fw_feature_t * * feature)
{
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  struct pfe_fw_feature_t * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_8(D)->fw_features_count;
  if (_1 != 0)
    goto <bb 3>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _2 = util_8(D)->current_feature;
  _3 = _2 + 1;
  if (_1 > _3)
    goto <bb 4>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  util_8(D)->current_feature = _3;
  # DEBUG BEGIN_STMT
  _4 = &util_8(D)->fw_features[_3];
  *feature_10(D) = _4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 5> [local count: 1073741824]:
  # ret_5 = PHI <2(3), 2(2), 0(4)>
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  return ret_5;

}



;; Function pfe_util_isr (pfe_util_isr, funcdef_no=35, decl_uid=9768, cgraph_uid=36, symbol_order=38)

Modification phase of node pfe_util_isr/38
pfe_util_isr (struct pfe_util_t * util)
{
  uint32_t count;
  struct pfe_pe_t * _1;
  long unsigned int _2;
  unsigned int _3;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG count => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _1 = &util_7(D)->pe[count_4];
  pfe_pe_lock (_1);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_pe_get_fw_messages_nolock (_1);
  # DEBUG BEGIN_STMT
  pfe_pe_check_stalled_nolock (_1);
  # DEBUG BEGIN_STMT
  pfe_pe_unlock (_1);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  count_13 = count_4 + 1;
  # DEBUG count => count_13

  <bb 4> [local count: 1073741824]:
  # count_4 = PHI <0(2), count_13(3)>
  # DEBUG count => count_4
  # DEBUG BEGIN_STMT
  _2 = util_7(D)->pe_num;
  if (_2 > count_4)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  _3 = util_7(D)->cbus_base_va;
  pfe_util_cfg_isr (_3);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}



;; Function pfe_util_irq_mask (pfe_util_irq_mask, funcdef_no=36, decl_uid=9770, cgraph_uid=37, symbol_order=39)

Modification phase of node pfe_util_irq_mask/39
pfe_util_irq_mask (const struct pfe_util_t * util)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}



;; Function pfe_util_irq_unmask (pfe_util_irq_unmask, funcdef_no=43, decl_uid=9772, cgraph_uid=38, symbol_order=40)

Modification phase of node pfe_util_irq_unmask/40
pfe_util_irq_unmask (const struct pfe_util_t * util)
{
  <bb 2> [local count: 1073741824]:
  pfe_util_irq_mask (util_1(D)); [tail call]
  return;

}



;; Function pfe_util_get_fw_version (pfe_util_get_fw_version, funcdef_no=38, decl_uid=9775, cgraph_uid=39, symbol_order=41)

Modification phase of node pfe_util_get_fw_version/41
pfe_util_get_fw_version (const struct pfe_util_t * util, struct pfe_ct_version_t * ver)
{
  errno_t ret;
  union pfe_ct_pe_mmap_t pfe_pe_mmap;
  long unsigned int _1;
  const struct pfe_pe_t * _2;
  int _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = util_7(D)->pe_num;
  if (_1 == 0)
    goto <bb 6>; [52.23%]
  else
    goto <bb 3>; [47.77%]

  <bb 3> [local count: 512926469]:
  _2 = &util_7(D)->pe[0];
  _3 = pfe_pe_get_mmap (_2, &pfe_pe_mmap);
  if (_3 != 0)
    goto <bb 6>; [35.00%]
  else
    goto <bb 5>; [65.00%]

  <bb 5> [local count: 333402205]:
  # DEBUG BEGIN_STMT
  MEM[(char * {ref-all})ver_9(D)] = MEM[(char * {ref-all})&pfe_pe_mmap + 4B];
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 6> [local count: 1073741824]:
  # ret_4 = PHI <22(3), 0(5), 22(2)>
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  pfe_pe_mmap ={v} {CLOBBER};
  return ret_4;

}


