Symbol table:

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/25 (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/25 (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/25 (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/25 (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/25 (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 definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:114863532 (estimated locally) body local optimize_size
  Called by: pfe_util_create/26 (587014656 (estimated locally),0.55 per call) 
  Calls: pfe_pe_set_imem/46 (958878293 (estimated locally),8.35 per call) pfe_pe_set_dmem/45 (958878293 (estimated locally),8.35 per call) pfe_pe_set_iaccess/44 (958878293 (estimated locally),8.35 per call) pfe_pe_create/43 (1014686025 (estimated locally),8.83 per call) 
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)
  Availability: available
  Varpool flags:
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;

}


pfe_util_write_dmem.part.0 (void * util_p, addr_t dst_addr, const void * src_ptr, uint32_t len)
{
  uint32_t count;
  struct pfe_util_t * util;
  errno_t ret;
  int32_t pe_idx;
  struct pfe_pe_t * _3;
  long unsigned int _8;

  <bb 6> [local count: 118111600]:
  # DEBUG D#3 s=> pe_idx
  # DEBUG pe_idx => D#3

  <bb 2> [local count: 118111600]:
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _3 = &MEM[(struct pfe_util_t *)util_p_1(D)].pe[count_2];
  pfe_pe_memcpy_from_host_to_dmem_32 (_3, dst_addr_4(D), src_ptr_5(D), len_6(D));
  # DEBUG BEGIN_STMT
  count_7 = count_2 + 1;
  # DEBUG count => count_7

  <bb 4> [local count: 1073741824]:
  # count_2 = PHI <0(2), count_7(3)>
  # DEBUG count => count_2
  # DEBUG BEGIN_STMT
  _8 = MEM[(struct pfe_util_t *)util_p_1(D)].pe_num;
  if (count_2 < _8)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # ret_9 = PHI <0(4)>
  # DEBUG ret => ret_9
  # DEBUG BEGIN_STMT
  return ret_9;

}


pfe_util_set_config.isra.0 (const addr_t ISRA.5, const struct pfe_util_cfg_t * cfg)
{
  uint32_t regval;
  unsigned int _2;
  unsigned int _3;
  volatile uint32_t * _4;
  long unsigned int _6;
  unsigned char _7;
  unsigned int _8;
  volatile uint32_t * _9;

  <bb 5> [local count: 1073741824]:
  # DEBUG util s=> util

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = ISRA.5_16(D);
  _3 = _2 + 836096;
  _4 = (volatile uint32_t *) _3;
  _6 = cfg_5(D)->pe_sys_clk_ratio;
  *_4 ={v} _6;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = cfg_5(D)->on_g3;
  if (_7 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _8 = _2 + 836160;
  _9 = (volatile uint32_t *) _8;
  regval_10 ={v} *_9;
  # DEBUG regval => regval_10
  # DEBUG BEGIN_STMT
  regval_11 = regval_10 | 3;
  # DEBUG regval => regval_11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *_9 ={v} regval_11;

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

}


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;

}


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;

}


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

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


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;

}


pfe_util_create_pe (uint32_t pe_num, addr_t cbus_base_va, struct pfe_util_t * util)
{
  errno_t ret;
  uint8_t count;
  struct pfe_pe_t * pe;
  int _1;
  struct pfe_pe_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;

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

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _1 = (int) count_6;
  _2 = &util_12(D)->pe[_1];
  pe_15 = pfe_pe_create (cbus_base_va_13(D), 3, count_6, _2);
  # DEBUG pe => pe_15
  # DEBUG BEGIN_STMT
  if (pe_15 == 0B)
    goto <bb 6>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 4> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  pfe_pe_set_iaccess (pe_15, 835844, 835848, 835840);
  # DEBUG BEGIN_STMT
  pfe_pe_set_dmem (pe_15, 0, 8192);
  # DEBUG BEGIN_STMT
  pfe_pe_set_imem (pe_15, 2680160256, 32768);
  # DEBUG BEGIN_STMT
  _3 = util_12(D)->pe_num;
  _4 = _3 + 1;
  util_12(D)->pe_num = _4;
  # DEBUG BEGIN_STMT
  count_20 = count_6 + 1;
  # DEBUG count => count_20

  <bb 5> [local count: 1073741824]:
  # count_6 = PHI <0(2), count_20(4)>
  # DEBUG count => count_6
  # DEBUG BEGIN_STMT
  _5 = (long unsigned int) count_6;
  if (_5 < pe_num_11(D))
    goto <bb 3>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 6> [local count: 114863532]:
  # ret_7 = PHI <121(3), 0(5)>
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  return ret_7;

}


pfe_util_load_fw_features (struct pfe_util_t * util)
{
  bool_t val_break;
  uint32_t fw_features_idx;
  errno_t ret;
  union pfe_ct_pe_mmap_t mmap;
  struct pfe_pe_t * _1;
  int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  struct pfe_fw_feature_t * _13;
  long unsigned int _14;
  errno_t _31;

  <bb 2> [local count: 918908257]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret = 0;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG val_break => 0
  # DEBUG BEGIN_STMT
  _1 = &util_20(D)->pe[0];
  _2 = pfe_pe_get_mmap (_1, &mmap);
  ret = _2;
  # DEBUG BEGIN_STMT
  if (_2 == 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 3> [local count: 459454128]:
  # DEBUG BEGIN_STMT
  _3 = mmap.common.version.features_count;
  _4 = _3 >> 24;
  _5 = _3 >> 8;
  _6 = _5 & 65280;
  _7 = _4 | _6;
  _8 = _3 << 8;
  _9 = _8 & 16711680;
  _10 = _7 | _9;
  _11 = _3 << 24;
  _12 = _10 | _11;
  util_20(D)->fw_features_count = _12;
  # DEBUG BEGIN_STMT
  if (_12 != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 4> [local count: 229727064]:
  # DEBUG BEGIN_STMT
  if (_12 > 8)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  util_20(D)->fw_features_count = 0;
  # DEBUG BEGIN_STMT
  ret = 11;
  goto <bb 10>; [100.00%]

  <bb 6> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  util_20(D)->current_feature = 0;
  # DEBUG BEGIN_STMT
  # DEBUG fw_features_idx => 0
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _13 = &util_20(D)->fw_features[fw_features_idx_15];
  pfe_fw_feature_create (_13);
  # DEBUG BEGIN_STMT
  val_break_27 = pfe_util_check_new_fw_features (util_20(D), &ret, fw_features_idx_15);
  # DEBUG val_break => val_break_27
  # DEBUG BEGIN_STMT
  if (val_break_27 == 1)
    goto <bb 10>; [5.50%]
  else
    goto <bb 8>; [94.50%]

  <bb 8> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  fw_features_idx_28 = fw_features_idx_15 + 1;
  # DEBUG fw_features_idx => fw_features_idx_28

  <bb 9> [local count: 1073741824]:
  # fw_features_idx_15 = PHI <0(6), fw_features_idx_28(8)>
  # DEBUG fw_features_idx => fw_features_idx_15
  # DEBUG BEGIN_STMT
  _14 = util_20(D)->fw_features_count;
  if (_14 > fw_features_idx_15)
    goto <bb 7>; [94.50%]
  else
    goto <bb 10>; [5.50%]

  <bb 10> [local count: 918908257]:
  # DEBUG BEGIN_STMT
  _31 = ret;
  mmap ={v} {CLOBBER};
  ret ={v} {CLOBBER};
  return _31;

}


pfe_util_check_new_fw_features (struct pfe_util_t * util, errno_t * ret, uint32_t features_idx)
{
  uint32_t j;
  struct pfe_ct_feature_desc_t * entry;
  bool_t val_break;
  struct pfe_pe_t * _1;
  int _2;
  struct pfe_fw_feature_t * _3;
  struct pfe_fw_feature_t * _4;
  struct pfe_ct_feature_desc_t * entry.2_5;
  char * _6;
  int _7;
  struct pfe_fw_feature_t * _8;

  <bb 2> [local count: 176285970]:
  # DEBUG BEGIN_STMT
  # DEBUG val_break => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &util_15(D)->pe[0];
  _2 = pfe_pe_get_fw_feature_entry (_1, features_idx_17(D), &entry);
  *ret_19(D) = _2;
  # DEBUG BEGIN_STMT
  if (_2 != 0)
    goto <bb 12>; [67.00%]
  else
    goto <bb 6>; [33.00%]

  <bb 12> [local count: 118111600]:
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630224]:
  # DEBUG BEGIN_STMT
  _3 = &util_15(D)->fw_features[j_10];
  pfe_fw_feature_destroy (_3);
  # DEBUG BEGIN_STMT
  j_33 = j_10 + 1;
  # DEBUG j => j_33

  <bb 4> [local count: 1073741824]:
  # j_10 = PHI <j_33(3), 0(12)>
  # DEBUG j => j_10
  # DEBUG BEGIN_STMT
  if (j_10 < features_idx_17(D))
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  # DEBUG BEGIN_STMT
  util_15(D)->fw_features_count = 0;
  # DEBUG BEGIN_STMT
  *ret_19(D) = 22;
  # DEBUG BEGIN_STMT
  # DEBUG val_break => 1
  goto <bb 11>; [100.00%]

  <bb 6> [local count: 58174370]:
  # DEBUG BEGIN_STMT
  _4 = &util_15(D)->fw_features[features_idx_17(D)];
  entry.2_5 = entry;
  pfe_fw_feature_set_ll_data (_4, entry.2_5);
  # DEBUG BEGIN_STMT
  _6 = pfe_pe_get_fw_feature_str_base (_1);
  _7 = pfe_fw_feature_set_string_base (_4, _6);
  *ret_19(D) = _7;
  # DEBUG BEGIN_STMT
  if (_7 != 0)
    goto <bb 13>; [67.00%]
  else
    goto <bb 10>; [33.00%]

  <bb 13> [local count: 38976828]:
  goto <bb 8>; [100.00%]

  <bb 7> [local count: 315357974]:
  # DEBUG BEGIN_STMT
  _8 = &util_15(D)->fw_features[j_11];
  pfe_fw_feature_destroy (_8);
  # DEBUG BEGIN_STMT
  j_29 = j_11 + 1;
  # DEBUG j => j_29

  <bb 8> [local count: 354334802]:
  # j_11 = PHI <j_29(7), 0(13)>
  # DEBUG j => j_11
  # DEBUG BEGIN_STMT
  if (j_11 < features_idx_17(D))
    goto <bb 7>; [89.00%]
  else
    goto <bb 9>; [11.00%]

  <bb 9> [local count: 38976828]:
  # DEBUG BEGIN_STMT
  util_15(D)->fw_features_count = 0;
  # DEBUG BEGIN_STMT
  *ret_19(D) = 22;
  # DEBUG BEGIN_STMT
  # DEBUG val_break => 1
  goto <bb 11>; [100.00%]

  <bb 10> [local count: 19197542]:
  # DEBUG BEGIN_STMT
  pfe_fw_feature_set_dmem_funcs (_4, pfe_util_read_dmem, pfe_util_write_dmem, util_15(D));

  <bb 11> [local count: 176285971]:
  # val_break_9 = PHI <1(5), 1(9), 0(10)>
  # DEBUG val_break => val_break_9
  # DEBUG BEGIN_STMT
  entry ={v} {CLOBBER};
  return val_break_9;

}


