Parsed function:pfe_l2br_flush_learned_mac_table.isra.0
Parsed function:pfe_l2br_set_static_entry.isra.0
Parsed function:pfe_l2br_static_entry_match_criterion.part.0
Parsed function:pfe_l2br_domain_match_if_criterion.part.0
Parsed function:pfe_l2br_update_hw_entry.part.0
Parsed function:pfe_bd_write_to_class.isra.0
Parsed function:pfe_l2br_domain_flush_by_if_static.isra.0
Parsed function:pfe_l2br_static_entry_destroy_nolock.isra.0
Parsed function:pfe_l2br_domain_match_criterion.part.0
Parsed function:pfe_l2br_domain_get_free_stats_index.isra.0
Parsed function:oal_mutex_unlock.isra.0
Parsed function:oal_mutex_lock.isra.0
Parsed function:pfe_l2br_get_vlan_stats_index
Parsed function:pfe_l2br_clear_domain_stats
Parsed function:pfe_l2br_get_domain_stats
Parsed function:pfe_l2br_static_entry_get_entry
Parsed function:pfe_l2br_set_mac_aging_timeout
Parsed function:pfe_l2br_get_next_domain
Parsed function:pfe_l2br_get_first_domain
Parsed function:pfe_l2br_domain_match_criterion
Parsed function:pfe_l2br_get_fallback_domain
Parsed function:pfe_l2br_get_default_domain
Parsed function:pfe_l2br_destroy
Parsed function:pfe_l2br_create
Parsed function:pfe_l2br_create_domain
Parsed function:pfe_l2br_flush_all
Parsed function:pfe_l2br_flush_static
Parsed function:pfe_l2br_flush_learned
Parsed function:pfe_l2br_flush
Parsed function:pfe_l2br_flush_all_mac_table
Parsed function:pfe_l2br_flush_static_mac_table
Parsed function:pfe_l2br_static_entry_match_criterion
Parsed function:pfe_l2br_static_entry_get_next
Parsed function:pfe_l2br_static_entry_get_first
Parsed function:pfe_l2br_static_entry_get_mac
Parsed function:pfe_l2br_static_entry_get_vlan
Parsed function:pfe_l2br_static_entry_get_fw_list
Parsed function:pfe_l2br_static_entry_get_dst_discard_flag
Parsed function:pfe_l2br_static_entry_get_src_discard_flag
Parsed function:pfe_l2br_static_entry_get_local_flag
Parsed function:pfe_l2br_static_entry_set_dst_discard_flag
Parsed function:pfe_l2br_static_entry_set_src_discard_flag
Parsed function:pfe_l2br_static_entry_set_local_flag
Parsed function:pfe_l2br_static_entry_replace_fw_list
Parsed function:pfe_l2br_static_entry_destroy
Parsed function:pfe_l2br_static_entry_create
Parsed function:pfe_l2br_static_add_entry
Parsed function:pfe_l2br_domain_is_fallback
Parsed function:pfe_l2br_domain_is_default
Parsed function:pfe_l2br_domain_get_vlan
Parsed function:pfe_l2br_domain_get_next_if
Parsed function:pfe_l2br_domain_get_first_if
Parsed function:pfe_l2br_domain_match_if_criterion
Parsed function:pfe_l2br_domain_get_untag_if_list
Parsed function:pfe_l2br_domain_get_if_list
Parsed function:pfe_l2br_domain_flush_by_if
Parsed function:pfe_l2br_domain_flush_by_if_dynamic_static
Parsed function:pfe_l2br_domain_del_if
Parsed function:pfe_l2br_domain_add_if
Parsed function:pfe_l2br_domain_get_mcast_action
Parsed function:pfe_l2br_domain_set_mcast_action
Parsed function:pfe_l2br_domain_get_ucast_action
Parsed function:pfe_l2br_domain_set_ucast_action
Parsed function:pfe_l2br_create_fallback_domain
Parsed function:pfe_l2br_create_default_domain
Parsed function:pfe_l2br_domain_destroy
Parsed function:pfe_l2br_domain_destroy_instance
Parsed function:pfe_l2br_domain_create
Parsed function:pfe_l2br_check_duplicate_configed_domain
Parsed function:pfe_l2br_config_domain
Parsed function:pfe_l2br_destroy_vlan_stats_table
Parsed function:pfe_l2br_create_vlan_stats_table
Parsed function:pfe_l2br_update_hw_entry
Parsed function:pfe_l2br_update_hw_ll_entry
Parsed function:oal_mutex_destroy
Parsed function:oal_mutex_init
Dump after hash based groups
Congruence classes: 69 (unique hash values: 69), with total: 78 items
Class size histogram [num of members]: number of classe number of classess
[1]: 61 classes
[2]: 7 classes
[3]: 1 classes


Dump after WPA based types groups
Congruence classes: 71 (unique hash values: 69), with total: 78 items
Class size histogram [num of members]: number of classe number of classess
[1]: 64 classes
[2]: 7 classes


Worklist has been filled with: 38
Address reference subdivision created: 0 new classes.
Dump after callgraph-based congruence reduction
Congruence classes: 72 (unique hash values: 69), with total: 78 items
Class size histogram [num of members]: number of classe number of classess
[1]: 66 classes
[2]: 6 classes


Init called for 12 items (15.38%).
Dump after full equality comparison of groups
Congruence classes: 78 (unique hash values: 69), with total: 78 items
Class size histogram [num of members]: number of classe number of classess
[1]: 78 classes


Worklist has been filled with: 39
Address reference subdivision created: 0 new classes.
Congruence classes: 78 (unique hash values: 69), with total: 78 items
Class size histogram [num of members]: number of classe number of classess
[1]: 78 classes



Item count: 78
Congruent classes before: 78, after: 78
Average class size before: 1.00, after: 1.00
Average non-singular class size: 0.00, count: 0
Equal symbols: 0
Fraction of visited symbols: 0.00%

pfe_l2br_flush_learned_mac_table.isra.0 (struct pfe_l2br_table_t * const * ISRA.65, struct pfe_l2br_table_entry_t * entry, struct pfe_l2br_table_iterator_t * l2t_iter)
{
  errno_t ret;
  errno_t query_ret;
  struct pfe_l2br_table_t * _2;
  unsigned char _6;
  struct pfe_l2br_table_t * _7;
  struct pfe_l2br_table_t * _9;

  <bb 8> [local count: 118111602]:
  # DEBUG bridge s=> bridge

  <bb 2> [local count: 118111602]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = *ISRA.65_21(D);
  query_ret_5 = pfe_l2br_table_get_first (_2, l2t_iter_3(D), 1, entry_4(D));
  # DEBUG query_ret => query_ret_5
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _6 = pfe_l2br_table_entry_is_static (entry_4(D));
  if (_6 == 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 4> [local count: 315357973]:
  # DEBUG BEGIN_STMT
  _7 = *ISRA.65_21(D);
  ret_8 = pfe_l2br_table_del_entry (_7, entry_4(D));
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT

  <bb 5> [local count: 955630223]:
  # ret_13 = PHI <ret_14(3), ret_8(4)>
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = *ISRA.65_21(D);
  query_ret_10 = pfe_l2br_table_get_next (_9, l2t_iter_3(D), entry_4(D));
  # DEBUG query_ret => query_ret_10

  <bb 6> [local count: 1073741824]:
  # ret_14 = PHI <0(2), ret_13(5)>
  # query_ret_11 = PHI <query_ret_5(2), query_ret_10(5)>
  # DEBUG query_ret => query_ret_11
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  if (query_ret_11 == 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 7>; [11.00%]

  <bb 7> [local count: 118111601]:
  # ret_12 = PHI <ret_14(6)>
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_l2br_set_static_entry.isra.0 (struct pfe_l2br_table_t * const * ISRA.61, uint16_t vlan, const uint8_t * mac, uint32_t new_fw_list, struct pfe_l2br_static_entry_t * * static_entry)
{
  errno_t ret;
  struct pfe_l2br_table_t * _2;
  struct pfe_l2br_static_entry_t * _4;
  struct pfe_l2br_table_entry_t * _5;
  struct pfe_l2br_table_entry_t * _6;
  struct pfe_l2br_static_entry_t * _7;
  struct pfe_l2br_static_entry_t * _8;
  <unnamed-unsigned:20> _10;
  struct pfe_l2br_table_entry_t * _11;
  int _13;
  struct pfe_l2br_static_entry_t * _14;
  struct pfe_l2br_static_entry_t * _15;
  struct pfe_l2br_table_entry_t * _16;
  int _18;
  struct pfe_l2br_static_entry_t * _19;
  struct pfe_l2br_static_entry_t * _20;
  struct pfe_l2br_table_entry_t * _21;
  long long unsigned int _22;
  int _23;
  struct pfe_l2br_static_entry_t * _24;
  struct pfe_l2br_table_t * _25;
  struct pfe_l2br_static_entry_t * _26;
  struct pfe_l2br_table_entry_t * _27;
  int _28;
  struct pfe_l2br_static_entry_t * _29;

  <bb 13> [local count: 1073741824]:
  # DEBUG bridge s=> bridge

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = *ISRA.61_48(D);
  _4 = *static_entry_3(D);
  _5 = &_4->entry;
  _6 = pfe_l2br_table_entry_create (_2, _5);
  if (_6 == 0B)
    goto <bb 3>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 3> [local count: 201326592]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = *static_entry_3(D);
  oal_mm_free (_7);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 11
  goto <bb 12>; [100.00%]

  <bb 4> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _8 = *static_entry_3(D);
  _8->u.action_data.val = 0;
  # DEBUG BEGIN_STMT
  _8->u.action_data.item.static_flag = 1;
  # DEBUG BEGIN_STMT
  _8->u.action_data.item.fresh_flag = 0;
  # DEBUG BEGIN_STMT
  _8->u.action_data.item.local_l3 = 0;
  # DEBUG BEGIN_STMT
  _10 = (<unnamed-unsigned:20>) new_fw_list_9(D);
  _8->u.action_data.item.forward_list = _10;
  # DEBUG BEGIN_STMT
  _11 = &_8->entry;
  _13 = pfe_l2br_table_entry_set_vlan (_11, vlan_12(D));
  if (_13 != 0)
    goto <bb 5>; [35.00%]
  else
    goto <bb 6>; [65.00%]

  <bb 5> [local count: 305345331]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _14 = *static_entry_3(D);
  oal_mm_free (_14);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 12>; [100.00%]

  <bb 6> [local count: 567069902]:
  # DEBUG BEGIN_STMT
  _15 = *static_entry_3(D);
  _16 = &_15->entry;
  _18 = pfe_l2br_table_entry_set_mac_addr (_16, mac_17(D));
  if (_18 != 0)
    goto <bb 7>; [35.00%]
  else
    goto <bb 8>; [65.00%]

  <bb 7> [local count: 198474465]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _19 = *static_entry_3(D);
  oal_mm_free (_19);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 12>; [100.00%]

  <bb 8> [local count: 368595436]:
  # DEBUG BEGIN_STMT
  _20 = *static_entry_3(D);
  _21 = &_20->entry;
  _22 = _20->u.action_data_u64val;
  _23 = pfe_l2br_table_entry_set_action_data (_21, _22);
  if (_23 != 0)
    goto <bb 9>; [35.00%]
  else
    goto <bb 10>; [65.00%]

  <bb 9> [local count: 129008402]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _24 = *static_entry_3(D);
  oal_mm_free (_24);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 12>; [100.00%]

  <bb 10> [local count: 239587033]:
  # DEBUG BEGIN_STMT
  _25 = *ISRA.61_48(D);
  _26 = *static_entry_3(D);
  _27 = &_26->entry;
  _28 = pfe_l2br_table_add_entry (_25, _27);
  if (_28 != 0)
    goto <bb 11>; [20.96%]
  else
    goto <bb 12>; [79.04%]

  <bb 11> [local count: 50217442]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _29 = *static_entry_3(D);
  oal_mm_free (_29);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22

  <bb 12> [local count: 1073741824]:
  # ret_30 = PHI <11(3), 22(5), 22(7), 22(9), 0(10), 22(11)>
  # DEBUG ret => ret_30
  # DEBUG BEGIN_STMT
  return ret_30;

}


pfe_l2br_static_entry_match_criterion.part.0 (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent)
{
  bool_t match;
  uint8_t[6] * _2;
  const uint8_t[6] * _4;
  int _5;

  <bb 5> [local count: 1073741824]:

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = &static_ent_1(D)->mac;
  _4 = &bridge_3(D)->cur_static_ent_crit_arg.mac;
  _5 = memcmp (_2, _4, 6);
  if (_5 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 0

  <bb 4> [local count: 1073741824]:
  # match_6 = PHI <1(2), 0(3)>
<L0>:
  # DEBUG match => match_6
  # DEBUG BEGIN_STMT
  return match_6;

}


pfe_l2br_domain_match_if_criterion.part.0 (const struct pfe_l2br_domain_t * domain, const struct pfe_phy_if_t * iface)
{
  bool_t match;
  <unnamed type> _2;
  <unnamed type> _4;
  _Bool _5;

  <bb 4> [local count: 1073741824]:

  <bb 2> [local count: 1073741824]:
<L0>:
  # DEBUG BEGIN_STMT
  _2 = domain_1(D)->cur_crit_arg.id;
  _4 = pfe_phy_if_get_id (iface_3(D));
  _5 = _2 == _4;
  match_6 = (bool_t) _5;
  # DEBUG match => match_6
  # DEBUG BEGIN_STMT

  <bb 3> [local count: 1073741824]:
  # match_7 = PHI <match_6(2)>
<L1>:
  # DEBUG match => match_7
  # DEBUG BEGIN_STMT
  return match_7;

}


pfe_l2br_update_hw_entry.part.0 (struct pfe_l2br_domain_t * domain)
{
  errno_t ret;
  struct pfe_l2br_t * _2;
  long unsigned int _3;

  <bb 4> [local count: 1073741824]:

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = domain_1(D)->bridge;
  _3 = _2->dmem_fb_bd_base;
  pfe_l2br_update_hw_ll_entry (domain_1(D), _3);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}


pfe_bd_write_to_class.isra.0 (struct pfe_class_t * const ISRA.54, uint32_t base, const union pfe_ct_bd_entry_t * class_entry)
{
  errno_t ret;
  struct pfe_class_t * _2;

  <bb 3> [local count: 1073741824]:
  # DEBUG bridge s=> bridge

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = ISRA.54_8(D);
  ret_5 = pfe_class_write_dmem (_2, -1, base_3(D), class_entry_4(D), 8);
  # DEBUG ret => ret_5
  # DEBUG BEGIN_STMT
  return ret_5;

}


pfe_l2br_domain_flush_by_if_static.isra.0 (const uint16_t * ISRA.51, const struct pfe_l2br_t * bridge, uint32_t iface_bitflag)
{
  errno_t ret;
  struct LLIST_t * item;
  struct LLIST_t * dummy;
  struct pfe_l2br_static_entry_t * sentry;
  struct LLIST_Struct * _2;
  const struct LLIST_t * _3;
  int _6;
  short unsigned int _8;
  short unsigned int _10;
  <unnamed-unsigned:20> _11;
  long unsigned int _12;
  long unsigned int _14;
  struct pfe_l2br_table_t * _15;

  <bb 11> [local count: 168730857]:
  # DEBUG domain s=> domain

  <bb 2> [local count: 168730857]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG dummy => 0B
  # DEBUG BEGIN_STMT
  # DEBUG sentry => 0B
  # DEBUG BEGIN_STMT
  _2 = bridge_1(D)->static_entries.prNext;
  _3 = &bridge_1(D)->static_entries;
  if (_2 != _3)
    goto <bb 3>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 3> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG item => _2
  dummy_4 = MEM[(struct LLIST_t *)_2].prNext;
  # DEBUG dummy => dummy_4
  goto <bb 9>; [100.00%]

  <bb 4> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  _6 = item_5 - 40B;
  sentry_7 = (struct pfe_l2br_static_entry_t *) _6;
  # DEBUG sentry => sentry_7
  # DEBUG BEGIN_STMT
  if (item_5 == 40B)
    goto <bb 8>; [30.00%]
  else
    goto <bb 5>; [70.00%]

  <bb 5> [local count: 668941158]:
  # DEBUG BEGIN_STMT
  _8 = sentry_7->vlan;
  _10 = *ISRA.51_27(D);
  if (_8 == _10)
    goto <bb 6>; [34.00%]
  else
    goto <bb 8>; [66.00%]

  <bb 6> [local count: 227439993]:
  _11 = sentry_7->u.action_data.item.forward_list;
  _12 = (long unsigned int) _11;
  _14 = _12 & iface_bitflag_13(D);
  if (_14 != 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 7> [local count: 75055198]:
  # DEBUG BEGIN_STMT
  _15 = MEM[(struct pfe_l2br_table_t * *)bridge_1(D) + 4B];
  # DEBUG D#4 => bridge_1(D)
  ret_16 = pfe_l2br_static_entry_destroy_nolock.isra.0 (_15, sentry_7);
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 955630226]:
  # ret_20 = PHI <ret_21(4), ret_21(5), ret_21(6), ret_16(7)>
  # DEBUG ret => ret_20
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG item => dummy_17
  dummy_18 = dummy_17->prNext;
  # DEBUG dummy => dummy_18

  <bb 9> [local count: 1073741824]:
  # ret_21 = PHI <0(3), ret_20(8)>
  # item_5 = PHI <_2(3), dummy_17(8)>
  # dummy_17 = PHI <dummy_4(3), dummy_18(8)>
  # DEBUG dummy => dummy_17
  # DEBUG item => item_5
  # DEBUG ret => ret_21
  # DEBUG BEGIN_STMT
  if (_3 != item_5)
    goto <bb 4>; [89.00%]
  else
    goto <bb 10>; [11.00%]

  <bb 10> [local count: 168730858]:
  # ret_19 = PHI <0(2), ret_21(9)>
  # DEBUG ret => ret_19
  # DEBUG BEGIN_STMT
  return ret_19;

}


pfe_l2br_static_entry_destroy_nolock.isra.0 (struct pfe_l2br_table_t * const ISRA.49, struct pfe_l2br_static_entry_t * static_ent)
{
  errno_t ret;
  struct LLIST_Struct * _2;
  struct LLIST_Struct * _3;
  struct LLIST_Struct * _4;
  struct pfe_l2br_table_t * _6;
  struct pfe_l2br_table_entry_t * _7;

  <bb 3> [local count: 1073741824]:
  # DEBUG bridge s=> bridge

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = static_ent_1(D)->list_entry.prPrev;
  _3 = static_ent_1(D)->list_entry.prNext;
  _2->prNext = _3;
  # DEBUG BEGIN_STMT
  _4 = static_ent_1(D)->list_entry.prNext;
  _4->prPrev = _2;
  # DEBUG BEGIN_STMT
  static_ent_1(D)->list_entry.prPrev = 0B;
  # DEBUG BEGIN_STMT
  static_ent_1(D)->list_entry.prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = ISRA.49_16(D);
  _7 = &static_ent_1(D)->entry;
  ret_8 = pfe_l2br_table_del_entry (_6, _7);
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (static_ent_1(D));
  # DEBUG BEGIN_STMT
  return ret_8;

}


pfe_l2br_domain_match_criterion.part.0 (const struct pfe_l2br_t * bridge, struct pfe_l2br_domain_t * domain)
{
  bool_t match;
  struct LLIST_t * item;
  struct pfe_l2br_list_entry_t * entry;
  struct LLIST_Struct * _2;
  struct LLIST_t * _3;
  int _5;
  void * _7;
  struct pfe_phy_if_t * _9;
  _Bool _10;

  <bb 8> [local count: 164090760]:

  <bb 2> [local count: 164090760]:
<L0>:
  # DEBUG BEGIN_STMT
  _2 = domain_1(D)->ifaces.prNext;
  _3 = &domain_1(D)->ifaces;
  if (_2 != _3)
    goto <bb 3>; [70.00%]
  else
    goto <bb 7>; [30.00%]

  <bb 3> [local count: 114863532]:
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 1014686024]:
  # DEBUG BEGIN_STMT
  _5 = item_4 - 4B;
  entry_6 = (struct pfe_l2br_list_entry_t *) _5;
  # DEBUG entry => entry_6
  # DEBUG BEGIN_STMT
  _7 = entry_6->ptr;
  _9 = bridge_8(D)->cur_domain_crit_arg.phy_if;
  _10 = _7 == _9;
  match_11 = (bool_t) _10;
  # DEBUG match => match_11
  # DEBUG BEGIN_STMT
  if (_7 == _9)
    goto <bb 7>; [5.50%]
  else
    goto <bb 5>; [94.50%]

  <bb 5> [local count: 958878294]:
  # DEBUG BEGIN_STMT
  item_12 = item_4->prNext;
  # DEBUG item => item_12

  <bb 6> [local count: 1073741824]:
  # match_14 = PHI <0(3), match_11(5)>
  # item_4 = PHI <_2(3), item_12(5)>
  # DEBUG item => item_4
  # DEBUG match => match_14
  # DEBUG BEGIN_STMT
  if (_3 != item_4)
    goto <bb 4>; [94.50%]
  else
    goto <bb 7>; [5.50%]

  <bb 7> [local count: 164090760]:
  # match_13 = PHI <0(2), match_11(4), match_14(6)>
<L1>:
  # DEBUG match => match_13
  # DEBUG BEGIN_STMT
  return match_13;

}


pfe_l2br_domain_get_free_stats_index.isra.0 (const uint16_t * ISRA.45)
{
  uint8_t index;
  int _2;
  unsigned char _3;
  int _4;
  short unsigned int _6;
  short unsigned int _8;
  short unsigned int _9;
  short unsigned int _10;
  short unsigned int _12;

  <bb 10> [local count: 114863532]:
  # DEBUG bridge s=> bridge

  <bb 2> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG index => 1
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _2 = (int) index_1;
  _3 = stats_index[_2];
  if (_3 == 0)
    goto <bb 4>; [5.50%]
  else
    goto <bb 5>; [94.50%]

  <bb 4> [local count: 55807731]:
  # _4 = PHI <_2(3)>
  # _12 = PHI <_6(3)>
  # index_13 = PHI <index_1(3)>
  # DEBUG BEGIN_STMT
  stats_index[_4] = 1;
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 5> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  index_5 = index_1 + 1;
  # DEBUG index => index_5

  <bb 6> [local count: 1073741824]:
  # index_1 = PHI <1(2), index_5(5)>
  # DEBUG index => index_1
  # DEBUG BEGIN_STMT
  _6 = (short unsigned int) index_1;
  _8 = *ISRA.45_18(D);
  if (_6 < _8)
    goto <bb 3>; [94.50%]
  else
    goto <bb 7>; [5.50%]

  <bb 7> [local count: 114863532]:
  # _10 = PHI <_12(4), _6(6)>
  # index_14 = PHI <index_13(4), index_1(6)>
  # DEBUG BEGIN_STMT
  _9 = *ISRA.45_18(D);
  if (_9 == _10)
    goto <bb 8>; [34.00%]
  else
    goto <bb 9>; [66.00%]

  <bb 8> [local count: 39053601]:
  # DEBUG BEGIN_STMT
  # DEBUG index => 0

  <bb 9> [local count: 114863532]:
  # index_11 = PHI <index_14(7), 0(8)>
  # DEBUG index => index_11
  # DEBUG BEGIN_STMT
  return index_11;

}


oal_mutex_unlock.isra.0 (const oal_mutex_t ISRA.43)
{
  errno_t retval;
  short unsigned int _2;
  int _3;
  unsigned char _4;
  void (*<T4e8>) (void) _5;

  <bb 6> [local count: 1073741824]:
  # DEBUG mutex s=> mutex

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG retval => 22
  # DEBUG BEGIN_STMT
  _2 = ISRA.43_10(D);
  if (_2 <= 255)
    goto <bb 3>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _3 = (int) _2;
  _4 = mutex_alloc[_3];
  if (_4 != 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  _5 = SchM_Exit_Eth_43_PFE_ETH_EXCLUSIVE_AREA_ID[_3];
  _5 ();
  # DEBUG BEGIN_STMT
  # DEBUG retval => 0

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

}


oal_mutex_lock.isra.0 (const oal_mutex_t ISRA.41)
{
  errno_t retval;
  short unsigned int _2;
  int _3;
  unsigned char _4;
  void (*<T4e8>) (void) _5;

  <bb 6> [local count: 1073741824]:
  # DEBUG mutex s=> mutex

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG retval => 22
  # DEBUG BEGIN_STMT
  _2 = ISRA.41_10(D);
  if (_2 <= 255)
    goto <bb 3>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 3> [local count: 697932186]:
  # DEBUG BEGIN_STMT
  _3 = (int) _2;
  _4 = mutex_alloc[_3];
  if (_4 != 0)
    goto <bb 4>; [65.00%]
  else
    goto <bb 5>; [35.00%]

  <bb 4> [local count: 453655921]:
  # DEBUG BEGIN_STMT
  _5 = SchM_Enter_Eth_43_PFE_ETH_EXCLUSIVE_AREA_ID[_3];
  _5 ();
  # DEBUG BEGIN_STMT
  # DEBUG retval => 0

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

}


pfe_l2br_get_vlan_stats_index (const struct pfe_l2br_domain_t * domain)
{
  uint8_t stats_idx;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  stats_idx_3 = domain_2(D)->stats_index;
  # DEBUG stats_idx => stats_idx_3
  # DEBUG BEGIN_STMT
  return stats_idx_3;

}


pfe_l2br_clear_domain_stats (const struct pfe_l2br_t * bridge, uint8_t vlan_index)
{
  uint16_t offset;
  struct pfe_ct_vlan_stats_t stat;
  errno_t ret;
  short unsigned int _1;
  struct pfe_class_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  short unsigned int _16;
  short unsigned int _17;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  stat = {};
  # DEBUG BEGIN_STMT
  # DEBUG offset => 0
  # DEBUG BEGIN_STMT
  _1 = (short unsigned int) vlan_index_8(D);
  offset_9 = _1 * 16;
  # DEBUG offset => offset_9
  # DEBUG BEGIN_STMT
  # DEBUG D#34 => &bridge_10(D)->mutex
  _16 = MEM[(const oal_mutex_t *)bridge_10(D) + 52B];
  # DEBUG D#1 => D#34
  oal_mutex_lock.isra.0 (_16);
  # DEBUG BEGIN_STMT
  _2 = bridge_10(D)->class;
  _3 = bridge_10(D)->domain_stats_table_addr;
  _4 = (long unsigned int) offset_9;
  _5 = _3 + _4;
  ret_13 = pfe_class_write_dmem (_2, -1, _5, &stat, 16);
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  # DEBUG D#35 => &bridge_10(D)->mutex
  _17 = MEM[(const oal_mutex_t *)bridge_10(D) + 52B];
  # DEBUG D#2 => D#35
  oal_mutex_unlock.isra.0 (_17);
  # DEBUG BEGIN_STMT
  stat ={v} {CLOBBER};
  return ret_13;

}


pfe_l2br_get_domain_stats (const struct pfe_l2br_t * bridge, struct pfe_ct_vlan_stats_t * stat, uint8_t vlan_index)
{
  uint16_t offset;
  struct pfe_ct_vlan_stats_t stats;
  errno_t ret;
  uint32_t num_of_pes;
  uint32_t i;
  short unsigned int _1;
  struct pfe_class_t * _2;
  struct pfe_class_t * _3;
  long int i.39_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;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _31;
  long unsigned int _32;
  long unsigned int _33;
  long unsigned int _34;
  long unsigned int _35;
  long unsigned int _36;
  long unsigned int _37;
  long unsigned int _38;
  long unsigned int _39;
  long unsigned int _40;
  long unsigned int _41;
  long unsigned int _42;
  long unsigned int _43;
  long unsigned int _44;
  long unsigned int _45;
  long unsigned int _46;
  long unsigned int _47;
  long unsigned int _48;
  long unsigned int _49;
  long unsigned int _50;
  long unsigned int _51;
  long unsigned int _52;
  long unsigned int _53;
  long unsigned int _54;
  long unsigned int _55;
  long unsigned int _56;
  long unsigned int _57;
  long unsigned int _58;
  long unsigned int _59;
  long unsigned int _60;
  long unsigned int _61;
  long unsigned int _62;
  long unsigned int _63;
  long unsigned int _64;
  long unsigned int _65;
  long unsigned int _66;
  long unsigned int _67;
  long unsigned int _68;
  long unsigned int _69;
  long unsigned int _70;
  long unsigned int _71;
  long unsigned int _72;
  long unsigned int _73;
  long unsigned int _74;
  long unsigned int _75;
  long unsigned int _76;
  long unsigned int _77;
  long unsigned int _78;
  long unsigned int _79;
  long unsigned int _80;
  long unsigned int _81;
  long unsigned int _82;
  long unsigned int _83;
  long unsigned int _84;
  long unsigned int _85;
  long unsigned int _86;
  long unsigned int _87;
  long unsigned int _88;
  long unsigned int _89;
  long unsigned int _90;
  long unsigned int _91;
  long unsigned int _92;
  long unsigned int _93;
  long unsigned int _94;
  long unsigned int _95;

  <bb 2> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG offset => 0
  # DEBUG BEGIN_STMT
  memset (stat_102(D), 0, 16);
  # DEBUG BEGIN_STMT
  _1 = (short unsigned int) vlan_index_104(D);
  offset_105 = _1 * 16;
  # DEBUG offset => offset_105
  # DEBUG BEGIN_STMT
  _2 = bridge_106(D)->class;
  num_of_pes_108 = pfe_class_get_num_of_pes (_2);
  # DEBUG num_of_pes => num_of_pes_108
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 5>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  memset (&stats, 0, 16);
  # DEBUG BEGIN_STMT
  _3 = bridge_106(D)->class;
  i.39_4 = (long int) i_96;
  _5 = bridge_106(D)->domain_stats_table_addr;
  _6 = (long unsigned int) offset_105;
  _7 = _5 + _6;
  ret_111 = pfe_class_read_dmem (_3, i.39_4, &stats, _7, 16);
  # DEBUG ret => ret_111
  # DEBUG BEGIN_STMT
  if (ret_111 != 0)
    goto <bb 6>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 4> [local count: 958878293]:
  # DEBUG BEGIN_STMT
  _8 = stat_102(D)->ingress;
  _9 = stats.ingress;
  _10 = _9 >> 24;
  _11 = _9 >> 8;
  _12 = _11 & 65280;
  _13 = _10 | _12;
  _14 = _9 << 8;
  _15 = _14 & 16711680;
  _16 = _13 | _15;
  _17 = _9 << 24;
  _18 = _16 | _17;
  _19 = _8 + _18;
  stat_102(D)->ingress = _19;
  # DEBUG BEGIN_STMT
  _20 = stat_102(D)->egress;
  _21 = stats.egress;
  _22 = _21 >> 24;
  _23 = _21 >> 8;
  _24 = _23 & 65280;
  _25 = _22 | _24;
  _26 = _21 << 8;
  _27 = _26 & 16711680;
  _28 = _25 | _27;
  _29 = _21 << 24;
  _30 = _28 | _29;
  _31 = _20 + _30;
  stat_102(D)->egress = _31;
  # DEBUG BEGIN_STMT
  _32 = stat_102(D)->ingress_bytes;
  _33 = stats.ingress_bytes;
  _34 = _33 >> 24;
  _35 = _33 >> 8;
  _36 = _35 & 65280;
  _37 = _34 | _36;
  _38 = _33 << 8;
  _39 = _38 & 16711680;
  _40 = _37 | _39;
  _41 = _33 << 24;
  _42 = _40 | _41;
  _43 = _32 + _42;
  stat_102(D)->ingress_bytes = _43;
  # DEBUG BEGIN_STMT
  _44 = stat_102(D)->egress_bytes;
  _45 = stats.egress_bytes;
  _46 = _45 >> 24;
  _47 = _45 >> 8;
  _48 = _47 & 65280;
  _49 = _46 | _48;
  _50 = _45 << 8;
  _51 = _50 & 16711680;
  _52 = _49 | _51;
  _53 = _45 << 24;
  _54 = _52 | _53;
  _55 = _44 + _54;
  stat_102(D)->egress_bytes = _55;
  # DEBUG BEGIN_STMT
  i_116 = i_96 + 1;
  # DEBUG i => i_116

  <bb 5> [local count: 1073741824]:
  # i_96 = PHI <0(2), i_116(4)>
  # ret_97 = PHI <0(2), 0(4)>
  # DEBUG ret => ret_97
  # DEBUG i => i_96
  # DEBUG BEGIN_STMT
  if (i_96 < num_of_pes_108)
    goto <bb 3>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 6> [local count: 114863532]:
  # ret_98 = PHI <ret_111(3), ret_97(5)>
  # DEBUG ret => ret_98
  # DEBUG BEGIN_STMT
  _56 = stat_102(D)->ingress;
  _57 = _56 >> 24;
  _58 = _56 >> 8;
  _59 = _58 & 65280;
  _60 = _57 | _59;
  _61 = _56 << 8;
  _62 = _61 & 16711680;
  _63 = _60 | _62;
  _64 = _56 << 24;
  _65 = _63 | _64;
  stat_102(D)->ingress = _65;
  # DEBUG BEGIN_STMT
  _66 = stat_102(D)->egress;
  _67 = _66 >> 24;
  _68 = _66 >> 8;
  _69 = _68 & 65280;
  _70 = _67 | _69;
  _71 = _66 << 8;
  _72 = _71 & 16711680;
  _73 = _70 | _72;
  _74 = _66 << 24;
  _75 = _73 | _74;
  stat_102(D)->egress = _75;
  # DEBUG BEGIN_STMT
  _76 = stat_102(D)->ingress_bytes;
  _77 = _76 >> 24;
  _78 = _76 >> 8;
  _79 = _78 & 65280;
  _80 = _77 | _79;
  _81 = _76 << 8;
  _82 = _81 & 16711680;
  _83 = _80 | _82;
  _84 = _76 << 24;
  _85 = _83 | _84;
  stat_102(D)->ingress_bytes = _85;
  # DEBUG BEGIN_STMT
  _86 = stat_102(D)->egress_bytes;
  _87 = _86 >> 24;
  _88 = _86 >> 8;
  _89 = _88 & 65280;
  _90 = _87 | _89;
  _91 = _86 << 8;
  _92 = _91 & 16711680;
  _93 = _90 | _92;
  _94 = _86 << 24;
  _95 = _93 | _94;
  stat_102(D)->egress_bytes = _95;
  # DEBUG BEGIN_STMT
  stats ={v} {CLOBBER};
  return ret_98;

}


pfe_l2br_static_entry_get_entry (struct pfe_l2br_static_entry_t * static_ent)
{
  struct pfe_l2br_table_entry_t * new_entry;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  new_entry_2 = &static_ent_1(D)->entry;
  # DEBUG new_entry => new_entry_2
  # DEBUG BEGIN_STMT
  return new_entry_2;

}


pfe_l2br_set_mac_aging_timeout (struct pfe_class_t * class, const uint16_t timeout)
{
  uint32_t ff_addr;
  errno_t ret;
  struct pfe_ct_misc_config_t misc_config;
  struct pfe_ct_class_mmap_t mmap;
  short 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;
  long unsigned int _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = timeout_13(D) r>> 8;
  misc_config.l2_mac_aging_timeout = _1;
  # DEBUG BEGIN_STMT
  ret_18 = pfe_class_get_mmap (class_16(D), 0, &mmap);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  if (ret_18 == 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 4>; [67.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  _2 = mmap.common.misc_config;
  _3 = _2 >> 24;
  _4 = _2 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = _2 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = _2 << 24;
  ff_addr_19 = _9 | _10;
  # DEBUG ff_addr => ff_addr_19
  # DEBUG BEGIN_STMT
  ret_21 = pfe_class_write_dmem (class_16(D), 0, ff_addr_19, &misc_config, 4);
  # DEBUG ret => ret_21

  <bb 4> [local count: 1073741824]:
  # ret_11 = PHI <ret_18(2), ret_21(3)>
  # DEBUG ret => ret_11
  # DEBUG BEGIN_STMT
  mmap ={v} {CLOBBER};
  misc_config ={v} {CLOBBER};
  return ret_11;

}


pfe_l2br_get_next_domain (struct pfe_l2br_t * bridge)
{
  bool_t match;
  struct pfe_l2br_domain_t * domain;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  struct LLIST_t * _3;
  int _4;
  struct LLIST_Struct * _5;
  unsigned char _6;
  struct LLIST_t * _7;

  <bb 2> [local count: 122750723]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  _1 = bridge_15(D)->domains.prNext;
  _2 = &bridge_15(D)->domains;
  if (_1 != _2)
    goto <bb 3>; [85.10%]
  else
    goto <bb 10>; [14.90%]

  <bb 3> [local count: 104460865]:
  # DEBUG BEGIN_STMT
  _3 = bridge_15(D)->curr_domain;
  if (_2 == _3)
    goto <bb 10>; [14.90%]
  else
    goto <bb 11>; [85.10%]

  <bb 11> [local count: 88896196]:
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _4 = _7 - 60B;
  domain_17 = (struct pfe_l2br_domain_t *) _4;
  # DEBUG domain => domain_17
  # DEBUG BEGIN_STMT
  _5 = _7->prNext;
  bridge_15(D)->curr_domain = _5;
  # DEBUG BEGIN_STMT
  if (_7 != 60B)
    goto <bb 5>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 5> [local count: 542552617]:
  # DEBUG BEGIN_STMT
  _6 = pfe_l2br_domain_match_criterion (bridge_15(D), domain_17);
  if (_6 == 1)
    goto <bb 8>; [5.50%]
  else
    goto <bb 6>; [94.50%]

  <bb 6> [local count: 984845632]:
  # domain_19 = PHI <domain_17(4), domain_17(5)>

  <bb 7> [local count: 1073741824]:
  # domain_8 = PHI <domain_19(6), domain_16(D)(11)>
  # DEBUG domain => domain_8
  # DEBUG BEGIN_STMT
  _7 = bridge_15(D)->curr_domain;
  if (_2 != _7)
    goto <bb 4>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 88896194]:
  # domain_9 = PHI <domain_8(7), domain_17(5)>
  # match_11 = PHI <0(7), 1(5)>
  # DEBUG match => match_11
  # DEBUG domain => domain_9
  # DEBUG BEGIN_STMT
  if (match_11 != 1)
    goto <bb 9>; [44.22%]
  else
    goto <bb 10>; [55.78%]

  <bb 9> [local count: 39309897]:

  <bb 10> [local count: 122750721]:
  # domain_10 = PHI <domain_9(8), 0B(2), 0B(9), 0B(3)>
  # DEBUG match => NULL
  # DEBUG domain => domain_10
  # DEBUG BEGIN_STMT
  return domain_10;

}


pfe_l2br_get_first_domain (struct pfe_l2br_t * bridge, pfe_l2br_domain_get_crit_t crit, void * arg)
{
  bool_t known_crit;
  bool_t match;
  struct pfe_l2br_domain_t * domain;
  struct LLIST_t * item;
  int arg.38_1;
  short unsigned int _2;
  struct LLIST_Struct * _3;
  struct LLIST_t * _4;
  int _5;
  struct LLIST_Struct * _6;
  unsigned char _7;

  <bb 2> [local count: 241977005]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG domain => 0B
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG known_crit => 1
  # DEBUG BEGIN_STMT
  bridge_18(D)->cur_crit = crit_19(D);
  # DEBUG BEGIN_STMT
  switch (crit_19(D)) <default: <L3> [25.00%], case 0: <L17> [25.00%], case 1: <L1> [25.00%], case 2: <L2> [25.00%]>

  <bb 3> [local count: 60494251]:
<L1>:
  # DEBUG BEGIN_STMT
  arg.38_1 = (int) arg_21(D);
  _2 = (short unsigned int) arg.38_1;
  bridge_18(D)->cur_domain_crit_arg.vlan = _2;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 60494251]:
<L2>:
  # DEBUG BEGIN_STMT
  bridge_18(D)->cur_domain_crit_arg.phy_if = arg_21(D);
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 60494251]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG known_crit => 0
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 241977005]:
  # known_crit_13 = PHI <1(2), 1(3), 1(4), 0(5)>
<L17>:
  # DEBUG known_crit => known_crit_13
  # DEBUG BEGIN_STMT
  _3 = bridge_18(D)->domains.prNext;
  _4 = &bridge_18(D)->domains;
  if (_3 != _4)
    goto <bb 7>; [85.10%]
  else
    goto <bb 13>; [14.90%]

  <bb 7> [local count: 205922431]:
  if (known_crit_13 == 1)
    goto <bb 14>; [55.78%]
  else
    goto <bb 13>; [44.22%]

  <bb 14> [local count: 114863532]:
  goto <bb 10>; [100.00%]

  <bb 8> [local count: 1014686026]:
  # DEBUG BEGIN_STMT
  _5 = item_8 - 60B;
  domain_24 = (struct pfe_l2br_domain_t *) _5;
  # DEBUG domain => domain_24
  # DEBUG BEGIN_STMT
  _6 = item_8->prNext;
  bridge_18(D)->curr_domain = _6;
  # DEBUG BEGIN_STMT
  _7 = pfe_l2br_domain_match_criterion (bridge_18(D), domain_24);
  if (_7 == 1)
    goto <bb 11>; [5.50%]
  else
    goto <bb 9>; [94.50%]

  <bb 9> [local count: 958878294]:
  # DEBUG BEGIN_STMT
  item_27 = item_8->prNext;
  # DEBUG item => item_27

  <bb 10> [local count: 1073741824]:
  # item_8 = PHI <item_27(9), _3(14)>
  # domain_9 = PHI <domain_24(9), 0B(14)>
  # DEBUG domain => domain_9
  # DEBUG item => item_8
  # DEBUG BEGIN_STMT
  if (_4 != item_8)
    goto <bb 8>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 11> [local count: 114863532]:
  # domain_10 = PHI <domain_9(10), domain_24(8)>
  # match_12 = PHI <0(10), 1(8)>
  # DEBUG match => match_12
  # DEBUG domain => domain_10
  # DEBUG BEGIN_STMT
  if (match_12 != 1)
    goto <bb 12>; [44.22%]
  else
    goto <bb 13>; [55.78%]

  <bb 12> [local count: 50792654]:

  <bb 13> [local count: 241977005]:
  # domain_11 = PHI <domain_10(11), 0B(6), 0B(12), 0B(7)>
  # DEBUG match => NULL
  # DEBUG domain => domain_11
  # DEBUG BEGIN_STMT
  return domain_11;

}


pfe_l2br_domain_match_criterion (const struct pfe_l2br_t * bridge, struct pfe_l2br_domain_t * domain)
{
  bool_t match;
  <unnamed type> _1;
  short unsigned int _3;
  short unsigned int _4;
  _Bool _5;

  <bb 2> [local count: 656363041]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_8(D)->cur_crit;
  switch (_1) <default: <L9> [25.00%], case 0: <L12> [25.00%], case 1: <L1> [25.00%], case 2: <L2> [25.00%]>

  <bb 3> [local count: 164090760]:
<L1>:
  # DEBUG BEGIN_STMT
  _3 = domain_9(D)->vlan;
  _4 = bridge_8(D)->cur_domain_crit_arg.vlan;
  _5 = _3 == _4;
  match_10 = (bool_t) _5;
  # DEBUG match => match_10
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 164090760]:
<L2>:
  match_2 = pfe_l2br_domain_match_criterion.part.0 (bridge_8(D), domain_9(D));
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 164090760]:
<L9>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 656363040]:
  # match_6 = PHI <1(2), match_10(3), match_2(4), 0(5)>
<L12>:
  # DEBUG match => match_6
  # DEBUG BEGIN_STMT
  return match_6;

}


__attribute__((pure))
pfe_l2br_get_fallback_domain (const struct pfe_l2br_t * bridge)
{
  struct pfe_l2br_domain_t * fallback_domain;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fallback_domain_3 = bridge_2(D)->fallback_domain;
  # DEBUG fallback_domain => fallback_domain_3
  # DEBUG BEGIN_STMT
  return fallback_domain_3;

}


__attribute__((pure))
pfe_l2br_get_default_domain (const struct pfe_l2br_t * bridge)
{
  struct pfe_l2br_domain_t * default_domain;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  default_domain_3 = bridge_2(D)->default_domain;
  # DEBUG default_domain => default_domain_3
  # DEBUG BEGIN_STMT
  return default_domain_3;

}


pfe_l2br_destroy (struct pfe_l2br_t * bridge)
{
  errno_t ret;
  struct pfe_l2br_domain_t * _1;
  int _2;
  struct pfe_l2br_domain_t * _3;
  int _4;
  struct pfe_class_t * _5;
  long unsigned int _6;
  oal_mutex_t * _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (bridge_12(D) != 0B)
    goto <bb 3>; [81.25%]
  else
    goto <bb 10>; [18.75%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _1 = bridge_12(D)->default_domain;
  if (_1 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 6>; [46.53%]

  <bb 4> [local count: 466480425]:
  # DEBUG BEGIN_STMT
  _2 = pfe_l2br_domain_destroy (_1);
  if (_2 == 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 233240212]:
  # DEBUG BEGIN_STMT
  bridge_12(D)->default_domain = 0B;

  <bb 6> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = bridge_12(D)->fallback_domain;
  if (_3 != 0B)
    goto <bb 7>; [53.47%]
  else
    goto <bb 9>; [46.53%]

  <bb 7> [local count: 466480425]:
  # DEBUG BEGIN_STMT
  _4 = pfe_l2br_domain_destroy (_3);
  if (_4 == 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 233240212]:
  # DEBUG BEGIN_STMT
  bridge_12(D)->fallback_domain = 0B;

  <bb 9> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = bridge_12(D)->class;
  _6 = bridge_12(D)->domain_stats_table_addr;
  pfe_l2br_destroy_vlan_stats_table (_5, _6);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = &bridge_12(D)->mutex;
  oal_mutex_destroy (_7);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 10> [local count: 1073741824]:
  # ret_8 = PHI <0(9), 22(2)>
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  return ret_8;

}


pfe_l2br_create (struct pfe_class_t * class, uint16_t def_vlan, uint16_t def_aging_time, uint16_t vlan_stats_size, struct pfe_l2br_table_t * mac_table, struct pfe_l2br_table_t * vlan_table)
{
  struct pfe_l2br_t * bridge;
  struct pfe_l2br_t * bridge.36_1;
  long unsigned int _2;
  struct pfe_l2br_t * _27;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  bridge = &l2_bridge_instance;
  # DEBUG BEGIN_STMT
  memset (&MEM[(void *)&l2_bridge_instance + 12B], 0, 64);
  # DEBUG BEGIN_STMT
  l2_bridge_instance.class = class_6(D);
  # DEBUG BEGIN_STMT
  l2_bridge_instance.mac_table = mac_table_8(D);
  # DEBUG BEGIN_STMT
  l2_bridge_instance.vlan_table = vlan_table_10(D);
  # DEBUG BEGIN_STMT
  l2_bridge_instance.def_vlan = def_vlan_12(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  l2_bridge_instance.domains.prNext = &MEM[(void *)&l2_bridge_instance + 20B];
  # DEBUG BEGIN_STMT
  l2_bridge_instance.domains.prPrev = &MEM[(void *)&l2_bridge_instance + 20B];
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  l2_bridge_instance.static_entries.prNext = &MEM[(void *)&l2_bridge_instance + 34B];
  # DEBUG BEGIN_STMT
  l2_bridge_instance.static_entries.prPrev = &MEM[(void *)&l2_bridge_instance + 34B];
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  l2_bridge_instance.mutex = 168;
  # DEBUG BEGIN_STMT
  oal_mutex_init (&MEM[(void *)&l2_bridge_instance + 52B]);
  # DEBUG BEGIN_STMT
  bridge.36_1 = bridge;
  bridge.36_1->domain_stats_table_size = vlan_stats_size_20(D);
  # DEBUG BEGIN_STMT
  memset (&stats_index, 0, 128);
  # DEBUG BEGIN_STMT
  _2 = pfe_l2br_create_vlan_stats_table (class_6(D), vlan_stats_size_20(D));
  bridge.36_1->domain_stats_table_addr = _2;
  # DEBUG BEGIN_STMT
  pfe_l2br_create_domain (class_6(D), &bridge, def_vlan_12(D), def_aging_time_25(D));
  # DEBUG BEGIN_STMT
  _27 = bridge;
  bridge ={v} {CLOBBER};
  return _27;

}


pfe_l2br_create_domain (const struct pfe_class_t * class, struct pfe_l2br_t * * bridge, uint16_t def_vlan, uint16_t def_aging_time)
{
  struct pfe_l2br_t * _1;
  struct pfe_l2br_domain_t * _2;
  struct pfe_l2br_t * _3;
  struct pfe_l2br_domain_t * _4;
  struct pfe_l2br_domain_t * _5;
  struct pfe_l2br_t * _6;
  struct pfe_l2br_domain_t * _7;
  struct pfe_l2br_t * _8;
  struct pfe_class_t * _9;
  int _10;
  struct pfe_l2br_t * _11;
  unsigned char _12;
  int _13;
  struct pfe_l2br_t * _14;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = *bridge_17(D);
  _2 = pfe_l2br_create_default_domain (_1, def_vlan_18(D));
  _1->default_domain = _2;
  # DEBUG BEGIN_STMT
  _3 = *bridge_17(D);
  _4 = _3->default_domain;
  if (_4 == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 4>; [70.00%]

  <bb 3> [local count: 322122547]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_destroy (_3);
  # DEBUG BEGIN_STMT
  *bridge_17(D) = 0B;
  goto <bb 11>; [100.00%]

  <bb 4> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  _5 = pfe_l2br_create_fallback_domain (_3);
  _3->fallback_domain = _5;
  # DEBUG BEGIN_STMT
  _6 = *bridge_17(D);
  _7 = _6->fallback_domain;
  if (_7 == 0B)
    goto <bb 5>; [30.00%]
  else
    goto <bb 6>; [70.00%]

  <bb 5> [local count: 225485783]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_destroy (_6);
  # DEBUG BEGIN_STMT
  *bridge_17(D) = 0B;
  goto <bb 11>; [100.00%]

  <bb 6> [local count: 526133494]:
  # DEBUG BEGIN_STMT
  pfe_class_set_default_vlan (class_23(D), def_vlan_18(D));
  # DEBUG BEGIN_STMT
  _8 = *bridge_17(D);
  _9 = _8->class;
  _10 = pfe_l2br_set_mac_aging_timeout (_9, def_aging_time_25(D));
  if (_10 != 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 7> [local count: 263066747]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _11 = *bridge_17(D);
  pfe_l2br_destroy (_11);
  # DEBUG BEGIN_STMT
  *bridge_17(D) = 0B;
  goto <bb 11>; [100.00%]

  <bb 8> [local count: 263066747]:
  # DEBUG BEGIN_STMT
  _12 = pfe_feature_mgr_is_available ("l2_bridge_aging");
  if (_12 == 0)
    goto <bb 9>; [33.00%]
  else
    goto <bb 11>; [67.00%]

  <bb 9> [local count: 86812027]:
  # DEBUG BEGIN_STMT
  _13 = pfe_feature_mgr_enable ("l2_bridge_aging");
  if (_13 != 0)
    goto <bb 10>; [33.00%]
  else
    goto <bb 11>; [67.00%]

  <bb 10> [local count: 28647969]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _14 = *bridge_17(D);
  pfe_l2br_destroy (_14);
  # DEBUG BEGIN_STMT
  *bridge_17(D) = 0B;

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

}


pfe_l2br_flush_all (struct pfe_l2br_t * bridge)
{
  errno_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_4 = pfe_l2br_flush (bridge_2(D), 0);
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_l2br_flush_static (struct pfe_l2br_t * bridge)
{
  errno_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_4 = pfe_l2br_flush (bridge_2(D), 1);
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_l2br_flush_learned (struct pfe_l2br_t * bridge)
{
  errno_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_4 = pfe_l2br_flush (bridge_2(D), 2);
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_l2br_flush (struct pfe_l2br_t * bridge, pfe_l2br_flush_types type)
{
  struct pfe_l2br_table_iterator_t l2t_iter;
  struct pfe_l2br_table_entry_t entry;
  errno_t ret;
  struct pfe_l2br_table_t * _1;
  short unsigned int _21;
  short unsigned int _22;
  struct pfe_l2br_table_t * const * _23;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_5(D)->mac_table;
  pfe_l2br_table_entry_create (_1, &entry);
  # DEBUG BEGIN_STMT
  pfe_l2br_iterator_create (&l2t_iter);
  # DEBUG BEGIN_STMT
  # DEBUG D#13 => &bridge_5(D)->mutex
  _21 = MEM[(const oal_mutex_t *)bridge_5(D) + 52B];
  # DEBUG D#1 => D#13
  oal_mutex_lock.isra.0 (_21);
  # DEBUG BEGIN_STMT
  switch (type_9(D)) <default: <L7> [25.00%], case 0: <L1> [25.00%], case 1: <L0> [25.00%], case 2: <L2> [25.00%]>

  <bb 3> [local count: 268435456]:
<L0>:
  # DEBUG BEGIN_STMT
  ret_13 = pfe_l2br_flush_static_mac_table (bridge_5(D));
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 268435456]:
<L1>:
  # DEBUG BEGIN_STMT
  ret_15 = pfe_l2br_flush_all_mac_table (bridge_5(D));
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 268435456]:
<L2>:
  # DEBUG BEGIN_STMT
  _23 = &MEM[(struct pfe_l2br_table_t * *)bridge_5(D) + 4B];
  # DEBUG D#12 => bridge_5(D)
  ret_11 = pfe_l2br_flush_learned_mac_table.isra.0 (_23, &entry, &l2t_iter);
  # DEBUG ret => ret_11
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  # ret_2 = PHI <ret_13(3), ret_15(4), ret_11(5), 22(2)>
<L7>:
  # DEBUG ret => ret_2
  # DEBUG BEGIN_STMT
  # DEBUG D#14 => &bridge_5(D)->mutex
  _22 = MEM[(const oal_mutex_t *)bridge_5(D) + 52B];
  # DEBUG D#2 => D#14
  oal_mutex_unlock.isra.0 (_22);
  # DEBUG BEGIN_STMT
  pfe_l2br_table_entry_destroy (&entry);
  # DEBUG BEGIN_STMT
  pfe_l2br_iterator_destroy (&l2t_iter);
  # DEBUG BEGIN_STMT
  entry ={v} {CLOBBER};
  l2t_iter ={v} {CLOBBER};
  return ret_2;

}


pfe_l2br_flush_all_mac_table (const struct pfe_l2br_t * bridge)
{
  struct pfe_l2br_static_entry_t * sentry;
  struct LLIST_t * aux;
  struct LLIST_t * item;
  errno_t ret;
  struct LLIST_Struct * _1;
  const struct LLIST_t * _2;
  int _3;
  struct pfe_l2br_table_t * _4;
  struct pfe_l2br_table_t * _17;

  <bb 2> [local count: 168730857]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_10(D)->static_entries.prNext;
  _2 = &bridge_10(D)->static_entries;
  if (_1 != _2)
    goto <bb 3>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 3> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG item => _1
  aux_11 = MEM[(struct LLIST_t *)_1].prNext;
  # DEBUG aux => aux_11
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  _3 = item_5 - 40B;
  sentry_12 = (struct pfe_l2br_static_entry_t *) _3;
  # DEBUG sentry => sentry_12
  # DEBUG BEGIN_STMT
  _17 = MEM[(struct pfe_l2br_table_t * *)bridge_10(D) + 4B];
  # DEBUG D#4 => bridge_10(D)
  pfe_l2br_static_entry_destroy_nolock.isra.0 (_17, sentry_12);
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG item => aux_6
  aux_14 = aux_6->prNext;
  # DEBUG aux => aux_14

  <bb 5> [local count: 1073741824]:
  # item_5 = PHI <_1(3), aux_6(4)>
  # aux_6 = PHI <aux_11(3), aux_14(4)>
  # DEBUG aux => aux_6
  # DEBUG item => item_5
  # DEBUG BEGIN_STMT
  if (_2 != item_5)
    goto <bb 4>; [89.00%]
  else
    goto <bb 6>; [11.00%]

  <bb 6> [local count: 168730858]:
  # DEBUG BEGIN_STMT
  _4 = bridge_10(D)->mac_table;
  ret_16 = pfe_l2br_table_init (_4);
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_16;

}


pfe_l2br_flush_static_mac_table (struct pfe_l2br_t * bridge)
{
  struct pfe_l2br_static_entry_t * sentry;
  struct LLIST_t * aux;
  struct LLIST_t * item;
  errno_t ret;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  int _3;
  struct pfe_l2br_table_t * _17;

  <bb 2> [local count: 168730857]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_11(D)->static_entries.prNext;
  _2 = &bridge_11(D)->static_entries;
  if (_1 != _2)
    goto <bb 3>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 3> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG item => _1
  aux_12 = MEM[(struct LLIST_t *)_1].prNext;
  # DEBUG aux => aux_12
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  _3 = item_6 - 40B;
  sentry_13 = (struct pfe_l2br_static_entry_t *) _3;
  # DEBUG sentry => sentry_13
  # DEBUG BEGIN_STMT
  _17 = MEM[(struct pfe_l2br_table_t * *)bridge_11(D) + 4B];
  # DEBUG D#4 => bridge_11(D)
  ret_15 = pfe_l2br_static_entry_destroy_nolock.isra.0 (_17, sentry_13);
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG item => aux_7
  aux_16 = aux_7->prNext;
  # DEBUG aux => aux_16

  <bb 5> [local count: 1073741824]:
  # ret_4 = PHI <0(3), ret_15(4)>
  # item_6 = PHI <_1(3), aux_7(4)>
  # aux_7 = PHI <aux_12(3), aux_16(4)>
  # DEBUG aux => aux_7
  # DEBUG item => item_6
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  if (_2 != item_6)
    goto <bb 4>; [89.00%]
  else
    goto <bb 6>; [11.00%]

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

}


pfe_l2br_static_entry_match_criterion (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent)
{
  bool_t match;
  <unnamed type> _1;
  uint8_t[6] * _3;
  const uint8_t[6] * _4;
  int _5;
  short unsigned int _6;
  short unsigned int _7;
  _Bool _8;
  short unsigned int _9;
  short unsigned int _10;
  _Bool _11;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_14(D)->cur_crit_ent;
  switch (_1) <default: <L11> [20.00%], case 0: <L14> [20.00%], case 1: <L1> [20.00%], case 2: <L4> [20.00%], case 3: <L5> [20.00%]>

  <bb 3> [local count: 214748364]:
<L1>:
  # DEBUG BEGIN_STMT
  _3 = &static_ent_15(D)->mac;
  _4 = &bridge_14(D)->cur_static_ent_crit_arg.mac;
  _5 = memcmp (_3, _4, 6);
  if (_5 == 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 4> [local count: 107374182]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 1
  goto <bb 9>; [100.00%]

  <bb 5> [local count: 214748364]:
<L4>:
  # DEBUG BEGIN_STMT
  _6 = static_ent_15(D)->vlan;
  _7 = bridge_14(D)->cur_static_ent_crit_arg.vlan;
  _8 = _6 == _7;
  match_17 = (bool_t) _8;
  # DEBUG match => match_17
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 6> [local count: 214748364]:
<L5>:
  # DEBUG BEGIN_STMT
  _9 = static_ent_15(D)->vlan;
  _10 = bridge_14(D)->cur_static_ent_crit_arg.vlan;
  _11 = _9 == _10;
  match_16 = (bool_t) _11;
  # DEBUG match => match_16
  # DEBUG BEGIN_STMT
  if (_9 == _10)
    goto <bb 7>; [34.00%]
  else
    goto <bb 9>; [66.00%]

  <bb 7> [local count: 73014445]:
  match_2 = pfe_l2br_static_entry_match_criterion.part.0 (bridge_14(D), static_ent_15(D));
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 214748364]:
<L11>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT

  <bb 9> [local count: 1073741824]:
  # match_12 = PHI <1(2), 1(4), match_17(5), match_2(7), 0(8), 0(3), match_16(6)>
<L14>:
  # DEBUG match => match_12
  # DEBUG BEGIN_STMT
  return match_12;

}


pfe_l2br_static_entry_get_next (struct pfe_l2br_t * bridge)
{
  bool_t match;
  struct pfe_l2br_static_entry_t * static_ent;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  struct LLIST_t * _3;
  int _4;
  struct LLIST_Struct * _5;
  unsigned char _6;
  struct LLIST_t * _7;
  short unsigned int _22;
  short unsigned int _23;

  <bb 2> [local count: 200247376]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG D#30 => &bridge_15(D)->mutex
  _22 = MEM[(const oal_mutex_t *)bridge_15(D) + 52B];
  # DEBUG D#1 => D#30
  oal_mutex_lock.isra.0 (_22);
  # DEBUG BEGIN_STMT
  _1 = bridge_15(D)->static_entries.prNext;
  _2 = &bridge_15(D)->static_entries;
  if (_1 != _2)
    goto <bb 3>; [70.00%]
  else
    goto <bb 8>; [30.00%]

  <bb 3> [local count: 140173163]:
  # DEBUG BEGIN_STMT
  _3 = bridge_15(D)->curr_static_ent;
  if (_2 == _3)
    goto <bb 8>; [30.00%]
  else
    goto <bb 11>; [70.00%]

  <bb 11> [local count: 98121214]:
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 1014686024]:
  # DEBUG BEGIN_STMT
  _4 = _7 - 40B;
  static_ent_19 = (struct pfe_l2br_static_entry_t *) _4;
  # DEBUG static_ent => static_ent_19
  # DEBUG BEGIN_STMT
  _5 = _7->prNext;
  bridge_15(D)->curr_static_ent = _5;
  # DEBUG BEGIN_STMT
  if (_7 != 40B)
    goto <bb 5>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 5> [local count: 710280217]:
  # DEBUG BEGIN_STMT
  _6 = pfe_l2br_static_entry_match_criterion (bridge_15(D), static_ent_19);
  if (_6 == 1)
    goto <bb 8>; [5.50%]
  else
    goto <bb 6>; [94.50%]

  <bb 6> [local count: 975620613]:
  # static_ent_8 = PHI <static_ent_19(4), static_ent_19(5)>

  <bb 7> [local count: 1073741824]:
  # static_ent_9 = PHI <static_ent_8(6), static_ent_18(D)(11)>
  # DEBUG static_ent => static_ent_9
  # DEBUG BEGIN_STMT
  _7 = bridge_15(D)->curr_static_ent;
  if (_2 != _7)
    goto <bb 4>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 200247374]:
  # static_ent_10 = PHI <static_ent_18(D)(2), 0B(3), static_ent_19(5), static_ent_9(7)>
  # match_12 = PHI <0(2), 0(3), 1(5), 0(7)>
  # DEBUG match => match_12
  # DEBUG static_ent => static_ent_10
  # DEBUG BEGIN_STMT
  # DEBUG D#31 => &bridge_15(D)->mutex
  _23 = MEM[(const oal_mutex_t *)bridge_15(D) + 52B];
  # DEBUG D#2 => D#31
  oal_mutex_unlock.isra.0 (_23);
  # DEBUG BEGIN_STMT
  if (match_12 != 1)
    goto <bb 9>; [44.22%]
  else
    goto <bb 10>; [55.78%]

  <bb 9> [local count: 88549389]:
  # DEBUG BEGIN_STMT
  # DEBUG static_ent => 0B

  <bb 10> [local count: 200247374]:
  # static_ent_11 = PHI <static_ent_10(8), 0B(9)>
  # DEBUG static_ent => static_ent_11
  # DEBUG BEGIN_STMT
  return static_ent_11;

}


pfe_l2br_static_entry_get_first (struct pfe_l2br_t * bridge, pfe_l2br_static_ent_get_crit_t crit, void * arg1, const void * arg2)
{
  struct pfe_l2br_static_entry_t * static_ent;
  struct LLIST_t * item;
  bool_t match;
  uint8_t[6] * _1;
  int arg1.19_2;
  short unsigned int _3;
  int arg1.20_4;
  short unsigned int _5;
  uint8_t[6] * _6;
  struct LLIST_Struct * _7;
  struct LLIST_t * _8;
  int _9;
  struct LLIST_Struct * _10;
  unsigned char _11;
  short unsigned int _36;
  short unsigned int _37;

  <bb 2> [local count: 164090760]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  bridge_21(D)->cur_crit_ent = crit_22(D);
  # DEBUG BEGIN_STMT
  switch (crit_22(D)) <default: <L16> [25.00%], case 1: <L1> [25.00%], case 2: <L2> [25.00%], case 3: <L3> [25.00%]>

  <bb 3> [local count: 41022690]:
<L1>:
  # DEBUG BEGIN_STMT
  _1 = &bridge_21(D)->cur_static_ent_crit_arg.mac;
  memcpy (_1, arg2_26(D), 6);
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 41022690]:
<L2>:
  # DEBUG BEGIN_STMT
  arg1.19_2 = (int) arg1_24(D);
  _3 = (short unsigned int) arg1.19_2;
  bridge_21(D)->cur_static_ent_crit_arg.vlan = _3;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 41022690]:
<L3>:
  # DEBUG BEGIN_STMT
  arg1.20_4 = (int) arg1_24(D);
  _5 = (short unsigned int) arg1.20_4;
  bridge_21(D)->cur_static_ent_crit_arg.vlan = _5;
  # DEBUG BEGIN_STMT
  _6 = &bridge_21(D)->cur_static_ent_crit_arg.mac;
  memcpy (_6, arg2_26(D), 6);
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 164090760]:
<L16>:
  # DEBUG BEGIN_STMT
  # DEBUG D#28 => &bridge_21(D)->mutex
  _36 = MEM[(const oal_mutex_t *)bridge_21(D) + 52B];
  # DEBUG D#1 => D#28
  oal_mutex_lock.isra.0 (_36);
  # DEBUG BEGIN_STMT
  _7 = bridge_21(D)->static_entries.prNext;
  _8 = &bridge_21(D)->static_entries;
  if (_7 != _8)
    goto <bb 13>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 13> [local count: 114863532]:
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 1014686024]:
  # DEBUG BEGIN_STMT
  _9 = item_13 - 40B;
  static_ent_32 = (struct pfe_l2br_static_entry_t *) _9;
  # DEBUG static_ent => static_ent_32
  # DEBUG BEGIN_STMT
  _10 = item_13->prNext;
  bridge_21(D)->curr_static_ent = _10;
  # DEBUG BEGIN_STMT
  _11 = pfe_l2br_static_entry_match_criterion (bridge_21(D), static_ent_32);
  if (_11 == 1)
    goto <bb 10>; [5.50%]
  else
    goto <bb 8>; [94.50%]

  <bb 8> [local count: 958878294]:
  # DEBUG BEGIN_STMT
  item_34 = item_13->prNext;
  # DEBUG item => item_34

  <bb 9> [local count: 1073741824]:
  # item_13 = PHI <item_34(8), _7(13)>
  # static_ent_14 = PHI <static_ent_32(8), static_ent_31(D)(13)>
  # DEBUG static_ent => static_ent_14
  # DEBUG item => item_13
  # DEBUG BEGIN_STMT
  if (_8 != item_13)
    goto <bb 7>; [94.50%]
  else
    goto <bb 10>; [5.50%]

  <bb 10> [local count: 164090760]:
  # match_12 = PHI <0(6), 1(7), 0(9)>
  # static_ent_15 = PHI <static_ent_31(D)(6), static_ent_32(7), static_ent_14(9)>
  # DEBUG static_ent => static_ent_15
  # DEBUG match => match_12
  # DEBUG BEGIN_STMT
  # DEBUG D#29 => &bridge_21(D)->mutex
  _37 = MEM[(const oal_mutex_t *)bridge_21(D) + 52B];
  # DEBUG D#2 => D#29
  oal_mutex_unlock.isra.0 (_37);
  # DEBUG BEGIN_STMT
  if (match_12 != 1)
    goto <bb 11>; [44.22%]
  else
    goto <bb 12>; [55.78%]

  <bb 11> [local count: 72560934]:
  # DEBUG BEGIN_STMT
  # DEBUG static_ent => 0B

  <bb 12> [local count: 164090760]:
  # static_ent_16 = PHI <static_ent_15(10), 0B(11)>
  # DEBUG static_ent => static_ent_16
  # DEBUG BEGIN_STMT
  return static_ent_16;

}


pfe_l2br_static_entry_get_mac (const struct pfe_l2br_static_entry_t * static_ent, uint8_t * mac)
{
  const uint8_t[6] * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = &static_ent_2(D)->mac;
  memcpy (mac_4(D), _1, 6);
  return;

}


__attribute__((pure))
pfe_l2br_static_entry_get_vlan (const struct pfe_l2br_static_entry_t * static_ent)
{
  uint16_t _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _3 = static_ent_2(D)->vlan;
  return _3;

}


__attribute__((pure))
pfe_l2br_static_entry_get_fw_list (const struct pfe_l2br_static_entry_t * static_ent)
{
  uint32_t fw_list;
  <unnamed-unsigned:20> _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = static_ent_3(D)->u.action_data.item.forward_list;
  fw_list_4 = (uint32_t) _1;
  # DEBUG fw_list => fw_list_4
  # DEBUG BEGIN_STMT
  return fw_list_4;

}


pfe_l2br_static_entry_get_dst_discard_flag (const struct pfe_l2br_t * bridge, const struct pfe_l2br_static_entry_t * static_ent, bool_t * dst_discard)
{
  unsigned char _1;
  unsigned char _2;
  unsigned char _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = BIT_FIELD_REF <static_ent_5(D)->u.action_data.item, 8, 24>;
  _2 = _1 >> 2;
  _3 = _2 & 1;
  *dst_discard_6(D) = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_static_entry_get_src_discard_flag (struct pfe_l2br_t * bridge, const struct pfe_l2br_static_entry_t * static_ent, bool_t * src_discard)
{
  unsigned char _1;
  unsigned char _2;
  unsigned char _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = BIT_FIELD_REF <static_ent_5(D)->u.action_data.item, 8, 24>;
  _2 = _1 >> 3;
  _3 = _2 & 1;
  *src_discard_6(D) = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_static_entry_get_local_flag (const struct pfe_l2br_t * bridge, const struct pfe_l2br_static_entry_t * static_ent, bool_t * local)
{
  unsigned char _1;
  unsigned char _2;
  unsigned char _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = BIT_FIELD_REF <static_ent_5(D)->u.action_data.item, 8, 24>;
  _2 = _1 >> 4;
  _3 = _2 & 1;
  *local_6(D) = _3;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_static_entry_set_dst_discard_flag (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent, bool_t dst_discard)
{
  errno_t ret;
  <unnamed-unsigned:1> _1;
  struct pfe_l2br_table_entry_t * _2;
  long long unsigned int _3;
  struct pfe_l2br_table_t * _4;
  int _5;
  <unnamed-unsigned:1> iftmp.18_7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = static_ent_10(D)->u.action_data.item.dst_discard;
  # DEBUG tmp => (uint32_t) _1
  # DEBUG BEGIN_STMT
  if (dst_discard_11(D) != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:

  <bb 4> [local count: 1073741824]:
  # iftmp.18_7 = PHI <1(2), 0(3)>
  static_ent_10(D)->u.action_data.item.dst_discard = iftmp.18_7;
  # DEBUG BEGIN_STMT
  _2 = &static_ent_10(D)->entry;
  _3 = static_ent_10(D)->u.action_data_u64val;
  ret_14 = pfe_l2br_table_entry_set_action_data (_2, _3);
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  if (ret_14 != 0)
    goto <bb 5>; [52.23%]
  else
    goto <bb 6>; [47.77%]

  <bb 5> [local count: 560815356]:
  # DEBUG BEGIN_STMT
  static_ent_10(D)->u.action_data.item.dst_discard = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 8>; [100.00%]

  <bb 6> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _4 = bridge_15(D)->mac_table;
  _5 = pfe_l2br_table_update_entry (_4, _2);
  if (_5 != 0)
    goto <bb 7>; [35.00%]
  else
    goto <bb 8>; [65.00%]

  <bb 7> [local count: 179524264]:
  # DEBUG BEGIN_STMT
  static_ent_10(D)->u.action_data.item.dst_discard = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2

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

}


pfe_l2br_static_entry_set_src_discard_flag (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent, bool_t src_discard)
{
  errno_t ret;
  <unnamed-unsigned:1> _1;
  struct pfe_l2br_table_entry_t * _2;
  long long unsigned int _3;
  int _4;
  struct pfe_l2br_table_t * _5;
  int _6;
  <unnamed-unsigned:1> iftmp.17_8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = static_ent_11(D)->u.action_data.item.src_discard;
  # DEBUG tmp => (uint32_t) _1
  # DEBUG BEGIN_STMT
  if (src_discard_12(D) != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:

  <bb 4> [local count: 1073741824]:
  # iftmp.17_8 = PHI <1(2), 0(3)>
  static_ent_11(D)->u.action_data.item.src_discard = iftmp.17_8;
  # DEBUG BEGIN_STMT
  _2 = &static_ent_11(D)->entry;
  _3 = static_ent_11(D)->u.action_data_u64val;
  _4 = pfe_l2br_table_entry_set_action_data (_2, _3);
  if (_4 != 0)
    goto <bb 5>; [52.23%]
  else
    goto <bb 6>; [47.77%]

  <bb 5> [local count: 560815356]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.src_discard = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 8>; [100.00%]

  <bb 6> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _5 = bridge_15(D)->mac_table;
  _6 = pfe_l2br_table_update_entry (_5, _2);
  if (_6 != 0)
    goto <bb 7>; [35.00%]
  else
    goto <bb 8>; [65.00%]

  <bb 7> [local count: 179524264]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.src_discard = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2

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

}


pfe_l2br_static_entry_set_local_flag (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent, bool_t local)
{
  errno_t ret;
  <unnamed-unsigned:1> _1;
  struct pfe_l2br_table_entry_t * _2;
  long long unsigned int _3;
  int _4;
  struct pfe_l2br_table_t * _5;
  int _6;
  <unnamed-unsigned:1> iftmp.16_8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = static_ent_11(D)->u.action_data.item.local_l3;
  # DEBUG tmp => (uint32_t) _1
  # DEBUG BEGIN_STMT
  if (local_12(D) != 0)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:

  <bb 4> [local count: 1073741824]:
  # iftmp.16_8 = PHI <1(2), 0(3)>
  static_ent_11(D)->u.action_data.item.local_l3 = iftmp.16_8;
  # DEBUG BEGIN_STMT
  _2 = &static_ent_11(D)->entry;
  _3 = static_ent_11(D)->u.action_data_u64val;
  _4 = pfe_l2br_table_entry_set_action_data (_2, _3);
  if (_4 != 0)
    goto <bb 5>; [52.23%]
  else
    goto <bb 6>; [47.77%]

  <bb 5> [local count: 560815356]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.local_l3 = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 8>; [100.00%]

  <bb 6> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _5 = bridge_15(D)->mac_table;
  _6 = pfe_l2br_table_update_entry (_5, _2);
  if (_6 != 0)
    goto <bb 7>; [35.00%]
  else
    goto <bb 8>; [65.00%]

  <bb 7> [local count: 179524264]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.local_l3 = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2

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

}


pfe_l2br_static_entry_replace_fw_list (const struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent, uint32_t new_fw_list)
{
  errno_t ret;
  <unnamed-unsigned:20> _1;
  <unnamed-unsigned:20> _2;
  struct pfe_l2br_table_entry_t * _3;
  long long unsigned int _4;
  int _5;
  struct pfe_l2br_table_t * _6;
  int _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = static_ent_11(D)->u.action_data.item.forward_list;
  # DEBUG tmp => (uint32_t) _1
  # DEBUG BEGIN_STMT
  _2 = (<unnamed-unsigned:20>) new_fw_list_12(D);
  static_ent_11(D)->u.action_data.item.forward_list = _2;
  # DEBUG BEGIN_STMT
  _3 = &static_ent_11(D)->entry;
  _4 = static_ent_11(D)->u.action_data_u64val;
  _5 = pfe_l2br_table_entry_set_action_data (_3, _4);
  if (_5 != 0)
    goto <bb 3>; [52.23%]
  else
    goto <bb 4>; [47.77%]

  <bb 3> [local count: 560815356]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.forward_list = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  _6 = bridge_15(D)->mac_table;
  _7 = pfe_l2br_table_update_entry (_6, _3);
  if (_7 != 0)
    goto <bb 5>; [35.00%]
  else
    goto <bb 6>; [65.00%]

  <bb 5> [local count: 179524264]:
  # DEBUG BEGIN_STMT
  static_ent_11(D)->u.action_data.item.forward_list = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2

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

}


pfe_l2br_static_entry_destroy (struct pfe_l2br_t * bridge, struct pfe_l2br_static_entry_t * static_ent)
{
  errno_t ret;
  short unsigned int _8;
  short unsigned int _9;
  struct pfe_l2br_table_t * _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#26 => &bridge_1(D)->mutex
  _8 = MEM[(const oal_mutex_t *)bridge_1(D) + 52B];
  # DEBUG D#1 => D#26
  oal_mutex_lock.isra.0 (_8);
  # DEBUG BEGIN_STMT
  _10 = MEM[(struct pfe_l2br_table_t * *)bridge_1(D) + 4B];
  # DEBUG D#4 => bridge_1(D)
  ret_6 = pfe_l2br_static_entry_destroy_nolock.isra.0 (_10, static_ent_4(D));
  # DEBUG ret => ret_6
  # DEBUG BEGIN_STMT
  # DEBUG D#27 => &bridge_1(D)->mutex
  _9 = MEM[(const oal_mutex_t *)bridge_1(D) + 52B];
  # DEBUG D#2 => D#27
  oal_mutex_unlock.isra.0 (_9);
  # DEBUG BEGIN_STMT
  return ret_6;

}


pfe_l2br_static_entry_create (struct pfe_l2br_t * bridge, uint16_t vlan, const uint8_t * mac, uint32_t new_fw_list)
{
  errno_t ret;
  struct pfe_l2br_static_entry_t * static_entry;
  uint8_t[6] * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  static_entry_6 = oal_mm_malloc (48);
  # DEBUG static_entry => static_entry_6
  # DEBUG BEGIN_STMT
  if (static_entry_6 == 0B)
    goto <bb 4>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  memset (static_entry_6, 0, 48);
  # DEBUG BEGIN_STMT
  static_entry_6->vlan = vlan_8(D);
  # DEBUG BEGIN_STMT
  _1 = &static_entry_6->mac;
  memcpy (_1, mac_10(D), 6);
  # DEBUG BEGIN_STMT
  ret_15 = pfe_l2br_static_add_entry (bridge_12(D), vlan_8(D), mac_10(D), new_fw_list_13(D), static_entry_6);
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # ret_2 = PHI <11(2), ret_15(3)>
  # DEBUG static_entry => NULL
  # DEBUG ret => ret_2
  # DEBUG BEGIN_STMT
  return ret_2;

}


pfe_l2br_static_add_entry (struct pfe_l2br_t * bridge, uint16_t vlan, const uint8_t * mac, uint32_t new_fw_list, struct pfe_l2br_static_entry_t * static_entry)
{
  struct pfe_l2br_static_entry_t * static_ent_tmp;
  errno_t ret;
  struct LLIST_t * item;
  bool_t match;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  int _3;
  struct LLIST_Struct * _4;
  short unsigned int _5;
  uint8_t[6] * _6;
  int _7;
  struct pfe_l2br_static_entry_t * static_entry.11_8;
  struct pfe_l2br_static_entry_t * static_entry.12_9;
  struct LLIST_Struct * _10;
  struct LLIST_t * _11;
  short unsigned int _37;
  short unsigned int _38;
  short unsigned int _39;
  short unsigned int _40;
  struct pfe_l2br_table_t * const * _41;

  <bb 2> [local count: 111472043]:
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#8 => &bridge_18(D)->mutex
  _37 = MEM[(const oal_mutex_t *)bridge_18(D) + 52B];
  # DEBUG D#1 => D#8
  oal_mutex_lock.isra.0 (_37);
  # DEBUG BEGIN_STMT
  _1 = bridge_18(D)->static_entries.prNext;
  _2 = &bridge_18(D)->static_entries;
  if (_1 != _2)
    goto <bb 12>; [70.00%]
  else
    goto <bb 7>; [30.00%]

  <bb 12> [local count: 78030430]:
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _3 = item_13 - 40B;
  static_ent_tmp_21 = (struct pfe_l2br_static_entry_t *) _3;
  # DEBUG static_ent_tmp => static_ent_tmp_21
  # DEBUG BEGIN_STMT
  _4 = item_13->prNext;
  bridge_18(D)->curr_static_ent = _4;
  # DEBUG BEGIN_STMT
  _5 = static_ent_tmp_21->vlan;
  if (_5 == vlan_23(D))
    goto <bb 4>; [34.00%]
  else
    goto <bb 5>; [66.00%]

  <bb 4> [local count: 344993248]:
  _6 = &static_ent_tmp_21->mac;
  _7 = memcmp (_6, mac_24(D), 6);
  if (_7 == 0)
    goto <bb 7>; [5.50%]
  else
    goto <bb 5>; [94.50%]

  <bb 5> [local count: 995711396]:
  # DEBUG BEGIN_STMT
  item_25 = item_13->prNext;
  # DEBUG item => item_25

  <bb 6> [local count: 1073741824]:
  # item_13 = PHI <item_25(5), _1(12)>
  # DEBUG item => item_13
  # DEBUG BEGIN_STMT
  if (_2 != item_13)
    goto <bb 3>; [94.50%]
  else
    goto <bb 7>; [5.50%]

  <bb 7> [local count: 111472042]:
  # match_12 = PHI <0(2), 1(4), 0(6)>
  # DEBUG match => match_12
  # DEBUG BEGIN_STMT
  # DEBUG D#9 => &bridge_18(D)->mutex
  _39 = MEM[(const oal_mutex_t *)bridge_18(D) + 52B];
  # DEBUG D#2 => D#9
  oal_mutex_unlock.isra.0 (_39);
  # DEBUG BEGIN_STMT
  if (match_12 == 1)
    goto <bb 8>; [21.72%]
  else
    goto <bb 9>; [78.28%]

  <bb 8> [local count: 24211727]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  static_entry.11_8 = static_entry;
  oal_mm_free (static_entry.11_8);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 115
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 87260314]:
  # DEBUG BEGIN_STMT
  _41 = &MEM[(struct pfe_l2br_table_t * *)bridge_18(D) + 4B];
  # DEBUG D#7 => bridge_18(D)
  ret_29 = pfe_l2br_set_static_entry.isra.0 (_41, vlan_23(D), mac_24(D), new_fw_list_27(D), &static_entry);
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  if (ret_29 == 0)
    goto <bb 10>; [33.00%]
  else
    goto <bb 11>; [67.00%]

  <bb 10> [local count: 28795904]:
  # DEBUG BEGIN_STMT
  # DEBUG D#10 => &bridge_18(D)->mutex
  _38 = MEM[(const oal_mutex_t *)bridge_18(D) + 52B];
  # DEBUG D#1 => D#10
  oal_mutex_lock.isra.0 (_38);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  static_entry.12_9 = static_entry;
  _10 = bridge_18(D)->static_entries.prPrev;
  static_entry.12_9->list_entry.prPrev = _10;
  # DEBUG BEGIN_STMT
  static_entry.12_9->list_entry.prNext = _2;
  # DEBUG BEGIN_STMT
  _11 = &static_entry.12_9->list_entry;
  _10->prNext = _11;
  # DEBUG BEGIN_STMT
  bridge_18(D)->static_entries.prPrev = _11;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => &bridge_18(D)->mutex
  _40 = MEM[(const oal_mutex_t *)bridge_18(D) + 52B];
  # DEBUG D#2 => D#11
  oal_mutex_unlock.isra.0 (_40);

  <bb 11> [local count: 111472042]:
  # ret_14 = PHI <115(8), ret_29(9), 0(10)>
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  return ret_14;

}


__attribute__((pure))
pfe_l2br_domain_is_fallback (const struct pfe_l2br_domain_t * domain)
{
  bool_t is_fallback;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  is_fallback_3 = domain_2(D)->is_fallback;
  # DEBUG is_fallback => is_fallback_3
  # DEBUG BEGIN_STMT
  return is_fallback_3;

}


__attribute__((pure))
pfe_l2br_domain_is_default (const struct pfe_l2br_domain_t * domain)
{
  bool_t is_deft;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  is_deft_3 = domain_2(D)->is_default;
  # DEBUG is_deft => is_deft_3
  # DEBUG BEGIN_STMT
  return is_deft_3;

}


pfe_l2br_domain_get_vlan (const struct pfe_l2br_domain_t * domain, uint16_t * vlan)
{
  short unsigned int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_3(D)->vlan;
  *vlan_4(D) = _1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_domain_get_next_if (struct pfe_l2br_domain_t * domain)
{
  struct pfe_l2br_list_entry_t * entry;
  bool_t match;
  struct pfe_phy_if_t * phy_if;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  struct LLIST_t * _3;
  int _4;
  struct LLIST_Struct * _5;
  unsigned char _6;
  struct LLIST_t * _7;

  <bb 2> [local count: 158607254]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_15(D)->ifaces.prNext;
  _2 = &domain_15(D)->ifaces;
  if (_1 != _2)
    goto <bb 4>; [85.10%]
  else
    goto <bb 10>; [14.90%]

  <bb 4> [local count: 134974773]:
  # DEBUG BEGIN_STMT
  _3 = domain_15(D)->cur_item;
  if (_2 == _3)
    goto <bb 10>; [14.90%]
  else
    goto <bb 12>; [85.10%]

  <bb 12> [local count: 114863532]:
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _4 = _7 - 4B;
  entry_17 = (struct pfe_l2br_list_entry_t *) _4;
  # DEBUG entry => entry_17
  # DEBUG BEGIN_STMT
  phy_if_18 = entry_17->ptr;
  # DEBUG phy_if => phy_if_18
  # DEBUG BEGIN_STMT
  _5 = _7->prNext;
  domain_15(D)->cur_item = _5;
  # DEBUG BEGIN_STMT
  _6 = pfe_l2br_domain_match_if_criterion (domain_15(D), phy_if_18);
  if (_6 == 1)
    goto <bb 8>; [5.50%]
  else
    goto <bb 13>; [94.50%]

  <bb 13> [local count: 958878293]:

  <bb 7> [local count: 1073741824]:
  # phy_if_8 = PHI <phy_if_16(D)(12), phy_if_18(13)>
  # DEBUG phy_if => phy_if_8
  # DEBUG BEGIN_STMT
  _7 = domain_15(D)->cur_item;
  if (_2 != _7)
    goto <bb 6>; [94.50%]
  else
    goto <bb 8>; [5.50%]

  <bb 8> [local count: 114863532]:
  # phy_if_9 = PHI <phy_if_8(7), phy_if_18(6)>
  # match_11 = PHI <0(7), 1(6)>
  # DEBUG match => match_11
  # DEBUG phy_if => phy_if_9
  # DEBUG BEGIN_STMT
  if (match_11 != 1)
    goto <bb 11>; [44.22%]
  else
    goto <bb 10>; [55.78%]

  <bb 11> [local count: 50792654]:

  <bb 10> [local count: 158607254]:
  # phy_if_10 = PHI <phy_if_9(8), 0B(2), 0B(11), 0B(4)>
  # DEBUG match => NULL
  # DEBUG phy_if => phy_if_10
  # DEBUG BEGIN_STMT
  return phy_if_10;

}


pfe_l2br_domain_get_first_if (struct pfe_l2br_domain_t * domain, pfe_l2br_domain_if_get_crit_t crit, void * arg)
{
  struct pfe_l2br_list_entry_t * entry;
  bool_t known_crit;
  bool_t match;
  struct pfe_phy_if_t * phy_if;
  struct LLIST_t * item;
  int arg.10_1;
  <unnamed type> _2;
  struct LLIST_Struct * _3;
  struct LLIST_t * _4;
  int _5;
  struct LLIST_Struct * _6;
  unsigned char _7;

  <bb 2> [local count: 241977005]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG phy_if => 0B
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG known_crit => 1
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  domain_18(D)->cur_crit = crit_19(D);
  # DEBUG BEGIN_STMT
  switch (crit_19(D)) <default: <L3> [25.00%], case 0: <L17> [25.00%], case 1: <L1> [25.00%], case 2: <L2> [25.00%]>

  <bb 3> [local count: 60494251]:
<L1>:
  # DEBUG BEGIN_STMT
  arg.10_1 = (int) arg_21(D);
  _2 = (<unnamed type>) arg.10_1;
  domain_18(D)->cur_crit_arg.id = _2;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 60494251]:
<L2>:
  # DEBUG BEGIN_STMT
  domain_18(D)->cur_crit_arg.phy_if = arg_21(D);
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 60494251]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG known_crit => 0
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 241977005]:
  # known_crit_13 = PHI <1(2), 1(3), 1(4), 0(5)>
<L17>:
  # DEBUG known_crit => known_crit_13
  # DEBUG BEGIN_STMT
  _3 = domain_18(D)->ifaces.prNext;
  _4 = &domain_18(D)->ifaces;
  if (_3 != _4)
    goto <bb 7>; [85.10%]
  else
    goto <bb 13>; [14.90%]

  <bb 7> [local count: 205922431]:
  if (known_crit_13 == 1)
    goto <bb 14>; [55.78%]
  else
    goto <bb 13>; [44.22%]

  <bb 14> [local count: 114863532]:
  goto <bb 10>; [100.00%]

  <bb 8> [local count: 1014686026]:
  # DEBUG BEGIN_STMT
  _5 = item_8 - 4B;
  entry_24 = (struct pfe_l2br_list_entry_t *) _5;
  # DEBUG entry => entry_24
  # DEBUG BEGIN_STMT
  phy_if_25 = entry_24->ptr;
  # DEBUG phy_if => phy_if_25
  # DEBUG BEGIN_STMT
  _6 = item_8->prNext;
  domain_18(D)->cur_item = _6;
  # DEBUG BEGIN_STMT
  _7 = pfe_l2br_domain_match_if_criterion (domain_18(D), phy_if_25);
  if (_7 == 1)
    goto <bb 11>; [5.50%]
  else
    goto <bb 9>; [94.50%]

  <bb 9> [local count: 958878294]:
  # DEBUG BEGIN_STMT
  item_28 = item_8->prNext;
  # DEBUG item => item_28

  <bb 10> [local count: 1073741824]:
  # item_8 = PHI <item_28(9), _3(14)>
  # phy_if_9 = PHI <phy_if_25(9), 0B(14)>
  # DEBUG phy_if => phy_if_9
  # DEBUG item => item_8
  # DEBUG BEGIN_STMT
  if (_4 != item_8)
    goto <bb 8>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 11> [local count: 114863532]:
  # phy_if_10 = PHI <phy_if_9(10), phy_if_25(8)>
  # match_12 = PHI <0(10), 1(8)>
  # DEBUG match => match_12
  # DEBUG phy_if => phy_if_10
  # DEBUG BEGIN_STMT
  if (match_12 != 1)
    goto <bb 12>; [44.22%]
  else
    goto <bb 13>; [55.78%]

  <bb 12> [local count: 50792654]:

  <bb 13> [local count: 241977005]:
  # phy_if_11 = PHI <phy_if_10(11), 0B(6), 0B(12), 0B(7)>
  # DEBUG match => NULL
  # DEBUG phy_if => phy_if_11
  # DEBUG BEGIN_STMT
  return phy_if_11;

}


pfe_l2br_domain_match_if_criterion (const struct pfe_l2br_domain_t * domain, const struct pfe_phy_if_t * iface)
{
  bool_t match;
  <unnamed type> _1;
  struct pfe_phy_if_t * _3;
  _Bool _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_7(D)->cur_crit;
  switch (_1) <default: <L3> [25.00%], case 0: <L6> [25.00%], case 1: <L1> [25.00%], case 2: <L2> [25.00%]>

  <bb 3> [local count: 268435456]:
<L1>:
  match_2 = pfe_l2br_domain_match_if_criterion.part.0 (domain_7(D), iface_8(D));
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 268435456]:
<L2>:
  # DEBUG BEGIN_STMT
  _3 = domain_7(D)->cur_crit_arg.phy_if;
  _4 = _3 == iface_8(D);
  match_9 = (bool_t) _4;
  # DEBUG match => match_9
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 268435456]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 1073741824]:
  # match_5 = PHI <1(2), match_2(3), match_9(4), 0(5)>
<L6>:
  # DEBUG match => match_5
  # DEBUG BEGIN_STMT
  return match_5;

}


__attribute__((pure))
pfe_l2br_domain_get_untag_if_list (const struct pfe_l2br_domain_t * domain)
{
  uint32_t untag_if_list;
  <unnamed-unsigned:18> _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_3(D)->u.action_data.item.untag_list;
  untag_if_list_4 = (uint32_t) _1;
  # DEBUG untag_if_list => untag_if_list_4
  # DEBUG BEGIN_STMT
  return untag_if_list_4;

}


__attribute__((pure))
pfe_l2br_domain_get_if_list (const struct pfe_l2br_domain_t * domain)
{
  uint32_t ret;
  <unnamed-unsigned:18> _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_3(D)->u.action_data.item.forward_list;
  ret_4 = (uint32_t) _1;
  # DEBUG ret => ret_4
  # DEBUG BEGIN_STMT
  return ret_4;

}


pfe_l2br_domain_flush_by_if (const struct pfe_l2br_domain_t * domain, const struct pfe_phy_if_t * iface)
{
  const struct pfe_l2br_t * bridge;
  uint32_t iface_bitflag;
  struct pfe_l2br_table_iterator_t l2t_iter;
  struct pfe_l2br_table_entry_t entry;
  errno_t ret;
  <unnamed type> _1;
  long unsigned int _2;
  struct pfe_l2br_table_t * _3;
  short unsigned int _19;
  short unsigned int _20;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG iface_bitflag => 0
  # DEBUG BEGIN_STMT
  # DEBUG bridge => 0B
  # DEBUG BEGIN_STMT
  bridge_6 = domain_5(D)->bridge;
  # DEBUG bridge => bridge_6
  # DEBUG BEGIN_STMT
  # DEBUG D#24 => &bridge_6->mutex
  _19 = MEM[(const oal_mutex_t *)bridge_6 + 52B];
  # DEBUG D#1 => D#24
  oal_mutex_lock.isra.0 (_19);
  # DEBUG BEGIN_STMT
  _1 = pfe_phy_if_get_id (iface_8(D));
  _2 = (long unsigned int) _1;
  iface_bitflag_9 = 1 << _2;
  # DEBUG iface_bitflag => iface_bitflag_9
  # DEBUG BEGIN_STMT
  _3 = bridge_6->mac_table;
  pfe_l2br_table_entry_create (_3, &entry);
  # DEBUG BEGIN_STMT
  pfe_l2br_iterator_create (&l2t_iter);
  # DEBUG BEGIN_STMT
  ret_13 = pfe_l2br_domain_flush_by_if_dynamic_static (domain_5(D), bridge_6, &l2t_iter, &entry, iface_bitflag_9);
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  # DEBUG D#25 => &bridge_6->mutex
  _20 = MEM[(const oal_mutex_t *)bridge_6 + 52B];
  # DEBUG D#2 => D#25
  oal_mutex_unlock.isra.0 (_20);
  # DEBUG BEGIN_STMT
  pfe_l2br_table_entry_destroy (&entry);
  # DEBUG BEGIN_STMT
  pfe_l2br_iterator_destroy (&l2t_iter);
  # DEBUG BEGIN_STMT
  entry ={v} {CLOBBER};
  l2t_iter ={v} {CLOBBER};
  return ret_13;

}


pfe_l2br_domain_flush_by_if_dynamic_static (const struct pfe_l2br_domain_t * domain, const struct pfe_l2br_t * bridge, struct pfe_l2br_table_iterator_t * l2t_iter, struct pfe_l2br_table_entry_t * entry, uint32_t iface_bitflag)
{
  union pfe_ct_mac_table_result_t entry_action_data;
  uint16_t entry_vlan;
  errno_t ret_query;
  errno_t ret;
  struct pfe_l2br_table_t * _1;
  long unsigned int _2;
  long long unsigned int _3;
  long unsigned int _4;
  short unsigned int _5;
  <unnamed-unsigned:20> _6;
  long unsigned int _7;
  long unsigned int _8;
  struct pfe_l2br_table_t * _9;
  struct pfe_l2br_table_t * _10;

  <bb 2> [local count: 357913939]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG ret_query => 0
  # DEBUG BEGIN_STMT
  # DEBUG entry_vlan => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#5 => domain_19(D)
  ret_23 = pfe_l2br_domain_flush_by_if_static.isra.0 (domain_19(D), bridge_20(D), iface_bitflag_21(D));
  # DEBUG ret => ret_23
  # DEBUG BEGIN_STMT
  if (ret_23 == 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 9>; [67.00%]

  <bb 3> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  _1 = bridge_20(D)->mac_table;
  ret_query_27 = pfe_l2br_table_get_first (_1, l2t_iter_24(D), 1, entry_25(D));
  # DEBUG ret_query => ret_query_27
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 4> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _2 = pfe_l2br_table_entry_get_vlan (entry_25(D));
  entry_vlan_28 = (uint16_t) _2;
  # DEBUG entry_vlan => entry_vlan_28
  # DEBUG BEGIN_STMT
  _3 = pfe_l2br_table_entry_get_action_data (entry_25(D));
  _4 = (long unsigned int) _3;
  entry_action_data.val = _4;
  # DEBUG BEGIN_STMT
  _5 = domain_19(D)->vlan;
  if (_5 == entry_vlan_28)
    goto <bb 5>; [34.00%]
  else
    goto <bb 7>; [66.00%]

  <bb 5> [local count: 324914275]:
  _6 = entry_action_data.item.forward_list;
  _7 = (long unsigned int) _6;
  _8 = _7 & iface_bitflag_21(D);
  if (_8 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 107221711]:
  # DEBUG BEGIN_STMT
  _9 = bridge_20(D)->mac_table;
  ret_31 = pfe_l2br_table_del_entry (_9, entry_25(D));
  # DEBUG ret => ret_31
  # DEBUG BEGIN_STMT

  <bb 7> [local count: 955630224]:
  # ret_11 = PHI <ret_12(4), ret_12(5), ret_31(6)>
  # DEBUG ret => ret_11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _10 = bridge_20(D)->mac_table;
  ret_query_33 = pfe_l2br_table_get_next (_10, l2t_iter_24(D), entry_25(D));
  # DEBUG ret_query => ret_query_33

  <bb 8> [local count: 1073741824]:
  # ret_12 = PHI <0(3), ret_11(7)>
  # ret_query_14 = PHI <ret_query_27(3), ret_query_33(7)>
  # DEBUG ret_query => ret_query_14
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  if (ret_query_14 == 0)
    goto <bb 4>; [89.00%]
  else
    goto <bb 9>; [11.00%]

  <bb 9> [local count: 357913940]:
  # ret_13 = PHI <ret_23(2), ret_12(8)>
  # DEBUG ret => ret_13
  # DEBUG BEGIN_STMT
  entry_action_data ={v} {CLOBBER};
  return ret_13;

}


pfe_l2br_domain_del_if (struct pfe_l2br_domain_t * domain, const struct pfe_phy_if_t * iface)
{
  pfe_ct_phy_if_id_t id;
  bool_t match;
  struct pfe_l2br_list_entry_t * entry;
  struct LLIST_t * item;
  struct LLIST_t * aux;
  errno_t ret;
  struct pfe_l2br_t * _1;
  int _2;
  void * _3;
  <unnamed-unsigned:18> _5;
  unsigned int _6;
  int _7;
  long long unsigned int _8;
  unsigned int _9;
  unsigned int _10;
  unsigned int _11;
  <unnamed-unsigned:18> _12;
  <unnamed-unsigned:18> _13;
  unsigned int _14;
  unsigned int _15;
  <unnamed-unsigned:18> _16;
  struct pfe_l2br_t * _17;
  struct LLIST_t * _18;
  struct LLIST_t * _19;
  struct LLIST_Struct * _20;
  struct LLIST_Struct * _21;
  struct LLIST_Struct * _22;
  struct LLIST_Struct * _23;
  struct LLIST_t * _24;
  struct pfe_l2br_t * _25;
  short unsigned int _59;
  short unsigned int _60;
  short unsigned int _61;

  <bb 2> [local count: 68783090]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_39(D)->bridge;
  # DEBUG D#21 => &_1->mutex
  _59 = MEM[(const oal_mutex_t *)_1 + 52B];
  # DEBUG D#1 => D#21
  oal_mutex_lock.isra.0 (_59);
  # DEBUG BEGIN_STMT
  item_41 = domain_39(D)->ifaces.prNext;
  # DEBUG item => item_41
  aux_42 = item_41->prNext;
  # DEBUG aux => aux_42
  goto <bb 10>; [100.00%]

  <bb 3> [local count: 1014686023]:
  # DEBUG BEGIN_STMT
  _2 = item_31 - 4B;
  entry_43 = (struct pfe_l2br_list_entry_t *) _2;
  # DEBUG entry => entry_43
  # DEBUG BEGIN_STMT
  _3 = entry_43->ptr;
  if (_3 == iface_44(D))
    goto <bb 4>; [17.43%]
  else
    goto <bb 9>; [82.57%]

  <bb 4> [local count: 176859774]:
  # DEBUG BEGIN_STMT
  id_45 = pfe_phy_if_get_id (_3);
  # DEBUG id => id_45
  # DEBUG BEGIN_STMT
  _5 = domain_39(D)->u.action_data.item.forward_list;
  _6 = (unsigned int) _5;
  _7 = (int) id_45;
  _8 = 1 << _7;
  _9 = (unsigned int) _8;
  _10 = ~_9;
  _11 = _6 & _10;
  _12 = (<unnamed-unsigned:18>) _11;
  domain_39(D)->u.action_data.item.forward_list = _12;
  # DEBUG BEGIN_STMT
  _13 = domain_39(D)->u.action_data.item.untag_list;
  _14 = (unsigned int) _13;
  _15 = _10 & _14;
  _16 = (<unnamed-unsigned:18>) _15;
  domain_39(D)->u.action_data.item.untag_list = _16;
  # DEBUG BEGIN_STMT
  ret_49 = pfe_l2br_update_hw_entry (domain_39(D));
  # DEBUG ret => ret_49
  # DEBUG BEGIN_STMT
  if (ret_49 != 0)
    goto <bb 5>; [5.50%]
  else
    goto <bb 6>; [94.50%]

  <bb 5> [local count: 9727288]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _17 = domain_39(D)->bridge;
  # DEBUG D#22 => &_17->mutex
  _60 = MEM[(const oal_mutex_t *)_17 + 52B];
  # DEBUG D#2 => D#22
  oal_mutex_unlock.isra.0 (_60);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

  <bb 6> [local count: 167132486]:
  # DEBUG BEGIN_STMT
  _18 = &entry_43->list_entry;
  _19 = domain_39(D)->cur_item;
  if (_18 == _19)
    goto <bb 7>; [30.00%]
  else
    goto <bb 8>; [70.00%]

  <bb 7> [local count: 50139746]:
  # DEBUG BEGIN_STMT
  _20 = _19->prNext;
  domain_39(D)->cur_item = _20;

  <bb 8> [local count: 167132486]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _21 = item_31->prPrev;
  _22 = item_31->prNext;
  _21->prNext = _22;
  # DEBUG BEGIN_STMT
  _23 = item_31->prNext;
  _23->prPrev = _21;
  # DEBUG BEGIN_STMT
  item_31->prPrev = 0B;
  # DEBUG BEGIN_STMT
  item_31->prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (entry_43);
  # DEBUG BEGIN_STMT
  # DEBUG entry => 0B
  # DEBUG BEGIN_STMT
  # DEBUG match => 1

  <bb 9> [local count: 1004958737]:
  # ret_26 = PHI <ret_27(3), 0(8)>
  # match_32 = PHI <match_33(3), 1(8)>
  # DEBUG match => match_32
  # DEBUG ret => ret_26
  # DEBUG BEGIN_STMT
  # DEBUG item => aux_30
  aux_57 = aux_30->prNext;
  # DEBUG aux => aux_57

  <bb 10> [local count: 1073741824]:
  # ret_27 = PHI <0(2), ret_26(9)>
  # aux_30 = PHI <aux_42(2), aux_57(9)>
  # item_31 = PHI <item_41(2), aux_30(9)>
  # match_33 = PHI <0(2), match_32(9)>
  # DEBUG match => match_33
  # DEBUG item => item_31
  # DEBUG aux => aux_30
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  _24 = &domain_39(D)->ifaces;
  if (_24 != item_31)
    goto <bb 3>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 11> [local count: 59055800]:
  # ret_28 = PHI <ret_27(10)>
  # match_4 = PHI <match_33(10)>
  # DEBUG ret => ret_28
  # DEBUG BEGIN_STMT
  if (ret_28 == 0)
    goto <bb 12>; [33.00%]
  else
    goto <bb 14>; [67.00%]

  <bb 12> [local count: 19488414]:
  # DEBUG BEGIN_STMT
  _25 = domain_39(D)->bridge;
  # DEBUG D#23 => &_25->mutex
  _61 = MEM[(const oal_mutex_t *)_25 + 52B];
  # DEBUG D#2 => D#23
  oal_mutex_unlock.isra.0 (_61);
  # DEBUG BEGIN_STMT
  if (match_4 == 0)
    goto <bb 13>; [35.00%]
  else
    goto <bb 14>; [65.00%]

  <bb 13> [local count: 6820945]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2

  <bb 14> [local count: 68783088]:
  # ret_29 = PHI <ret_28(11), 0(12), 2(13), 114(5)>
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  return ret_29;

}


pfe_l2br_domain_add_if (struct pfe_l2br_domain_t * domain, struct pfe_phy_if_t * iface, bool_t tagged)
{
  struct LLIST_t * item;
  struct pfe_l2br_list_entry_t * entry;
  pfe_ct_phy_if_id_t id;
  errno_t ret;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  int _3;
  void * _4;
  <unnamed-unsigned:18> _5;
  unsigned int _6;
  int _7;
  long long unsigned int _8;
  unsigned int _9;
  unsigned int _10;
  <unnamed-unsigned:18> _11;
  <unnamed-unsigned:18> _12;
  unsigned int _13;
  unsigned int _14;
  <unnamed-unsigned:18> _15;
  struct pfe_l2br_t * _16;
  struct LLIST_Struct * _17;
  struct LLIST_t * _18;
  struct pfe_l2br_t * _19;
  short unsigned int _46;
  short unsigned int _47;

  <bb 2> [local count: 139110491]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  id_27 = pfe_phy_if_get_id (iface_26(D));
  # DEBUG id => id_27
  # DEBUG BEGIN_STMT
  _1 = domain_28(D)->ifaces.prNext;
  _2 = &domain_28(D)->ifaces;
  if (_1 != _2)
    goto <bb 14>; [82.57%]
  else
    goto <bb 7>; [17.43%]

  <bb 14> [local count: 114863532]:
  goto <bb 5>; [100.00%]

  <bb 3> [local count: 1014686025]:
  # DEBUG BEGIN_STMT
  _3 = item_22 - 4B;
  entry_29 = (struct pfe_l2br_list_entry_t *) _3;
  # DEBUG entry => entry_29
  # DEBUG BEGIN_STMT
  _4 = entry_29->ptr;
  if (_4 == iface_26(D))
    goto <bb 6>; [5.50%]
  else
    goto <bb 4>; [94.50%]

  <bb 4> [local count: 958878294]:
  # DEBUG BEGIN_STMT
  item_30 = item_22->prNext;
  # DEBUG item => item_30

  <bb 5> [local count: 1073741824]:
  # item_22 = PHI <item_30(4), _1(14)>
  # DEBUG item => item_22
  # DEBUG BEGIN_STMT
  if (_2 != item_22)
    goto <bb 3>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 6> [local count: 114863532]:
  # ret_20 = PHI <0(5), 116(3)>
  # DEBUG ret => ret_20
  # DEBUG BEGIN_STMT
  if (ret_20 == 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 13>; [50.00%]

  <bb 7> [local count: 81678724]:
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  entry_32 = oal_mm_malloc (12);
  # DEBUG entry => entry_32
  # DEBUG BEGIN_STMT
  if (entry_32 == 0B)
    goto <bb 13>; [18.75%]
  else
    goto <bb 8>; [81.25%]

  <bb 8> [local count: 66363964]:
  # DEBUG BEGIN_STMT
  _5 = domain_28(D)->u.action_data.item.forward_list;
  _6 = (unsigned int) _5;
  _7 = (int) id_27;
  _8 = 1 << _7;
  _9 = (unsigned int) _8;
  _10 = _6 | _9;
  _11 = (<unnamed-unsigned:18>) _10;
  domain_28(D)->u.action_data.item.forward_list = _11;
  # DEBUG BEGIN_STMT
  if (tagged_34(D) == 0)
    goto <bb 9>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 9> [local count: 33181982]:
  # DEBUG BEGIN_STMT
  _12 = domain_28(D)->u.action_data.item.untag_list;
  _13 = (unsigned int) _12;
  _14 = _9 | _13;
  _15 = (<unnamed-unsigned:18>) _14;
  domain_28(D)->u.action_data.item.untag_list = _15;

  <bb 10> [local count: 66363964]:
  # DEBUG BEGIN_STMT
  ret_37 = pfe_l2br_update_hw_entry (domain_28(D));
  # DEBUG ret => ret_37
  # DEBUG BEGIN_STMT
  if (ret_37 != 0)
    goto <bb 11>; [35.00%]
  else
    goto <bb 12>; [65.00%]

  <bb 11> [local count: 23227387]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (entry_32);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114
  goto <bb 13>; [100.00%]

  <bb 12> [local count: 43136576]:
  # DEBUG BEGIN_STMT
  _16 = domain_28(D)->bridge;
  # DEBUG D#19 => &_16->mutex
  _46 = MEM[(const oal_mutex_t *)_16 + 52B];
  # DEBUG D#1 => D#19
  oal_mutex_lock.isra.0 (_46);
  # DEBUG BEGIN_STMT
  entry_32->ptr = iface_26(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _17 = domain_28(D)->ifaces.prPrev;
  entry_32->list_entry.prPrev = _17;
  # DEBUG BEGIN_STMT
  entry_32->list_entry.prNext = _2;
  # DEBUG BEGIN_STMT
  _18 = &entry_32->list_entry;
  _17->prNext = _18;
  # DEBUG BEGIN_STMT
  domain_28(D)->ifaces.prPrev = _18;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _19 = domain_28(D)->bridge;
  # DEBUG D#20 => &_19->mutex
  _47 = MEM[(const oal_mutex_t *)_19 + 52B];
  # DEBUG D#2 => D#20
  oal_mutex_unlock.isra.0 (_47);

  <bb 13> [local count: 139110490]:
  # ret_21 = PHI <ret_20(6), 11(7), 114(11), 0(12)>
  # DEBUG ret => ret_21
  # DEBUG BEGIN_STMT
  return ret_21;

}


pfe_l2br_domain_get_mcast_action (const struct pfe_l2br_domain_t * domain, pfe_ct_l2br_action_t * hit, pfe_ct_l2br_action_t * miss)
{
  <unnamed-unsigned:3> _1;
  <unnamed type> _2;
  <unnamed-unsigned:3> _3;
  <unnamed type> _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_6(D)->u.action_data.item.mcast_hit_action;
  _2 = (<unnamed type>) _1;
  *hit_7(D) = _2;
  # DEBUG BEGIN_STMT
  _3 = domain_6(D)->u.action_data.item.mcast_miss_action;
  _4 = (<unnamed type>) _3;
  *miss_9(D) = _4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_domain_set_mcast_action (struct pfe_l2br_domain_t * domain, pfe_ct_l2br_action_t hit, pfe_ct_l2br_action_t miss)
{
  errno_t ret;
  <unnamed-unsigned:3> _1;
  <unnamed-unsigned:3> _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (<unnamed-unsigned:3>) hit_3(D);
  domain_5(D)->u.action_data.item.mcast_hit_action = _1;
  # DEBUG BEGIN_STMT
  _2 = (<unnamed-unsigned:3>) miss_7(D);
  domain_5(D)->u.action_data.item.mcast_miss_action = _2;
  # DEBUG BEGIN_STMT
  ret_10 = pfe_l2br_update_hw_entry (domain_5(D));
  # DEBUG ret => ret_10
  # DEBUG BEGIN_STMT
  return ret_10;

}


pfe_l2br_domain_get_ucast_action (const struct pfe_l2br_domain_t * domain, pfe_ct_l2br_action_t * hit, pfe_ct_l2br_action_t * miss)
{
  <unnamed-unsigned:3> _1;
  <unnamed type> _2;
  <unnamed-unsigned:3> _3;
  <unnamed type> _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_6(D)->u.action_data.item.ucast_hit_action;
  _2 = (<unnamed type>) _1;
  *hit_7(D) = _2;
  # DEBUG BEGIN_STMT
  _3 = domain_6(D)->u.action_data.item.ucast_miss_action;
  _4 = (<unnamed type>) _3;
  *miss_9(D) = _4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  return 0;

}


pfe_l2br_domain_set_ucast_action (struct pfe_l2br_domain_t * domain, pfe_ct_l2br_action_t hit, pfe_ct_l2br_action_t miss)
{
  errno_t ret;
  <unnamed-unsigned:3> _1;
  <unnamed-unsigned:3> _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (<unnamed-unsigned:3>) hit_3(D);
  domain_5(D)->u.action_data.item.ucast_hit_action = _1;
  # DEBUG BEGIN_STMT
  _2 = (<unnamed-unsigned:3>) miss_7(D);
  domain_5(D)->u.action_data.item.ucast_miss_action = _2;
  # DEBUG BEGIN_STMT
  ret_10 = pfe_l2br_update_hw_entry (domain_5(D));
  # DEBUG ret => ret_10
  # DEBUG BEGIN_STMT
  return ret_10;

}


pfe_l2br_create_fallback_domain (struct pfe_l2br_t * bridge)
{
  struct pfe_l2br_domain_t * domain;
  struct pfe_ct_class_mmap_t class_mmap;
  struct LLIST_t * _1;
  struct pfe_class_t * _2;
  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;
  long unsigned int _13;
  int _14;
  struct LLIST_Struct * _15;
  struct LLIST_t * _16;
  struct LLIST_t * _17;
  short unsigned int _49;
  short unsigned int _50;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  domain_24 = oal_mm_malloc (72);
  # DEBUG domain => domain_24
  # DEBUG BEGIN_STMT
  if (domain_24 == 0B)
    goto <bb 8>; [46.53%]
  else
    goto <bb 3>; [53.47%]

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  memset (domain_24, 0, 72);
  # DEBUG BEGIN_STMT
  domain_24->bridge = bridge_26(D);
  # DEBUG BEGIN_STMT
  domain_24->is_fallback = 1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &domain_24->ifaces;
  domain_24->ifaces.prNext = _1;
  # DEBUG BEGIN_STMT
  domain_24->ifaces.prPrev = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = bridge_26(D)->class;
  _3 = pfe_class_get_mmap (_2, 0, &class_mmap);
  if (_3 != 0)
    goto <bb 4>; [29.00%]
  else
    goto <bb 5>; [71.00%]

  <bb 4> [local count: 166497628]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (domain_24);
  # DEBUG BEGIN_STMT
  # DEBUG domain => 0B
  goto <bb 8>; [100.00%]

  <bb 5> [local count: 407632125]:
  # DEBUG BEGIN_STMT
  _4 = class_mmap.dmem_fb_bd_base;
  _5 = _4 >> 24;
  _6 = _4 >> 8;
  _7 = _6 & 65280;
  _8 = _5 | _7;
  _9 = _4 << 8;
  _10 = _9 & 16711680;
  _11 = _8 | _10;
  _12 = _4 << 24;
  _13 = _11 | _12;
  bridge_26(D)->dmem_fb_bd_base = _13;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.forward_list = 0;
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.untag_list = 0;
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.ucast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.ucast_miss_action = 3;
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.mcast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_24->u.action_data.item.mcast_miss_action = 3;
  # DEBUG BEGIN_STMT
  _14 = pfe_l2br_update_hw_entry (domain_24);
  if (_14 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 134518601]:
  # DEBUG BEGIN_STMT
  oal_mm_free (domain_24);
  # DEBUG BEGIN_STMT
  # DEBUG domain => 0B

  <bb 7> [local count: 407632125]:
  # domain_18 = PHI <domain_24(5), 0B(6)>
  # DEBUG domain => domain_18
  # DEBUG BEGIN_STMT
  # DEBUG D#15 => &bridge_26(D)->mutex
  _49 = MEM[(const oal_mutex_t *)bridge_26(D) + 52B];
  # DEBUG D#1 => D#15
  oal_mutex_lock.isra.0 (_49);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _15 = bridge_26(D)->domains.prPrev;
  domain_18->list_entry.prPrev = _15;
  # DEBUG BEGIN_STMT
  _16 = &bridge_26(D)->domains;
  domain_18->list_entry.prNext = _16;
  # DEBUG BEGIN_STMT
  _17 = &domain_18->list_entry;
  _15->prNext = _17;
  # DEBUG BEGIN_STMT
  bridge_26(D)->domains.prPrev = _17;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#16 => &bridge_26(D)->mutex
  _50 = MEM[(const oal_mutex_t *)bridge_26(D) + 52B];
  # DEBUG D#2 => D#16
  oal_mutex_unlock.isra.0 (_50);

  <bb 8> [local count: 1073741824]:
  # domain_19 = PHI <domain_24(2), 0B(4), domain_18(7)>
  # DEBUG domain => domain_19
  # DEBUG BEGIN_STMT
  class_mmap ={v} {CLOBBER};
  return domain_19;

}


pfe_l2br_create_default_domain (struct pfe_l2br_t * bridge, uint16_t vlan)
{
  struct pfe_ct_class_mmap_t class_mmap;
  struct pfe_l2br_domain_t * domain;
  errno_t ret;
  struct pfe_class_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;
  unsigned int _13;
  void * _14;
  int _15;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = bridge_19(D)->class;
  _2 = pfe_class_get_mmap (_1, 0, &class_mmap);
  if (_2 != 0)
    goto <bb 7>; [45.33%]
  else
    goto <bb 3>; [54.67%]

  <bb 3> [local count: 587014656]:
  # DEBUG BEGIN_STMT
  _3 = class_mmap.dmem_def_bd_base;
  _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;
  bridge_19(D)->dmem_def_bd_base = _12;
  # DEBUG BEGIN_STMT
  ret_24 = pfe_l2br_domain_create (bridge_19(D), vlan_22(D));
  # DEBUG ret => ret_24
  # DEBUG BEGIN_STMT
  if (ret_24 != 0)
    goto <bb 7>; [45.33%]
  else
    goto <bb 4>; [54.67%]

  <bb 4> [local count: 320920912]:
  # DEBUG BEGIN_STMT
  _13 = (unsigned int) vlan_22(D);
  _14 = (void *) _13;
  domain_26 = pfe_l2br_get_first_domain (bridge_19(D), 1, _14);
  # DEBUG domain => domain_26
  # DEBUG BEGIN_STMT
  if (domain_26 == 0B)
    goto <bb 7>; [46.53%]
  else
    goto <bb 5>; [53.47%]

  <bb 5> [local count: 171596412]:
  # DEBUG BEGIN_STMT
  domain_26->is_default = 1;
  # DEBUG BEGIN_STMT
  _15 = pfe_l2br_update_hw_entry (domain_26);
  if (_15 != 0)
    goto <bb 6>; [16.75%]
  else
    goto <bb 7>; [83.25%]

  <bb 6> [local count: 28742399]:
  # DEBUG BEGIN_STMT
  oal_mm_free (domain_26);
  # DEBUG BEGIN_STMT
  # DEBUG domain => 0B

  <bb 7> [local count: 1073741824]:
  # domain_16 = PHI <0B(2), 0B(3), domain_26(4), domain_26(5), 0B(6)>
  # DEBUG domain => domain_16
  # DEBUG BEGIN_STMT
  class_mmap ={v} {CLOBBER};
  return domain_16;

}


pfe_l2br_domain_destroy (struct pfe_l2br_domain_t * domain)
{
  struct pfe_l2br_list_entry_t * entry;
  struct LLIST_t * item;
  struct LLIST_t * aux;
  errno_t ret;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  int _3;
  <unnamed type> _4;
  struct pfe_l2br_t * _5;
  struct pfe_l2br_table_t * _6;
  struct pfe_l2br_table_entry_t * _7;

  <bb 2> [local count: 168730857]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_15(D)->ifaces.prNext;
  _2 = &domain_15(D)->ifaces;
  if (_1 != _2)
    goto <bb 3>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 3> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG item => _1
  aux_16 = MEM[(struct LLIST_t *)_1].prNext;
  # DEBUG aux => aux_16
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  _3 = item_10 - 4B;
  entry_17 = (struct pfe_l2br_list_entry_t *) _3;
  # DEBUG entry => entry_17
  # DEBUG BEGIN_STMT
  oal_mm_free (entry_17);
  # DEBUG BEGIN_STMT
  # DEBUG entry => 0B
  # DEBUG BEGIN_STMT
  # DEBUG item => aux_9
  aux_19 = aux_9->prNext;
  # DEBUG aux => aux_19

  <bb 5> [local count: 1073741824]:
  # aux_9 = PHI <aux_16(3), aux_19(4)>
  # item_10 = PHI <_1(3), aux_9(4)>
  # DEBUG item => item_10
  # DEBUG aux => aux_9
  # DEBUG BEGIN_STMT
  if (_2 != item_10)
    goto <bb 4>; [89.00%]
  else
    goto <bb 6>; [11.00%]

  <bb 6> [local count: 168730858]:
  # DEBUG BEGIN_STMT
  _4 = domain_15(D)->vlan_entry.type;
  if (_4 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 8> [local count: 84365429]:
  # DEBUG BEGIN_STMT
  _5 = domain_15(D)->bridge;
  _6 = _5->vlan_table;
  _7 = &domain_15(D)->vlan_entry;
  ret_21 = pfe_l2br_table_del_entry (_6, _7);
  # DEBUG ret => ret_21
  # DEBUG BEGIN_STMT
  if (ret_21 != 0)
    goto <bb 12>; [52.23%]
  else
    goto <bb 10>; [47.77%]

  <bb 10> [local count: 40301365]:
  # DEBUG BEGIN_STMT
  pfe_l2br_table_entry_destroy (_7);
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT

  <bb 11> [local count: 124666794]:
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  ret_24 = pfe_l2br_domain_destroy_instance (domain_15(D));
  # DEBUG ret => ret_24
  # DEBUG BEGIN_STMT
  oal_mm_free (domain_15(D));

  <bb 12> [local count: 168730858]:
  # ret_8 = PHI <114(8), ret_24(11)>
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  return ret_8;

}


pfe_l2br_domain_destroy_instance (struct pfe_l2br_domain_t * domain)
{
  errno_t ret;
  errno_t ret;
  errno_t ret;
  unsigned char _1;
  struct pfe_l2br_t * _2;
  struct LLIST_Struct * _3;
  struct LLIST_Struct * _4;
  struct LLIST_t * _5;
  struct pfe_l2br_t * _6;
  struct LLIST_t * _7;
  struct LLIST_Struct * _8;
  struct LLIST_Struct * _9;
  unsigned char _10;
  struct pfe_l2br_t * _11;
  short unsigned int _25;
  short unsigned int _26;
  int _29;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  _1 = domain_17(D)->is_fallback;
  if (_1 == 1)
    goto <bb 3>; [20.24%]
  else
    goto <bb 5>; [79.76%]

  <bb 3> [local count: 217325345]:
  # DEBUG BEGIN_STMT
  # DEBUG domain => domain_17(D)
  # DEBUG hit => 3
  # DEBUG miss => 3
  # DEBUG INLINE_ENTRY pfe_l2br_domain_set_ucast_action
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  domain_17(D)->u.action_data.item.ucast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_17(D)->u.action_data.item.ucast_miss_action = 3;
  # DEBUG BEGIN_STMT
  ret_27 = pfe_l2br_update_hw_entry (domain_17(D));
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  # DEBUG domain => NULL
  # DEBUG hit => NULL
  # DEBUG miss => NULL
  # DEBUG ret => NULL
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  if (ret_27 == 0)
    goto <bb 4>; [33.00%]
  else
    goto <bb 5>; [67.00%]

  <bb 4> [local count: 71717364]:
  # DEBUG BEGIN_STMT
  # DEBUG domain => domain_17(D)
  # DEBUG hit => 3
  # DEBUG miss => 3
  # DEBUG INLINE_ENTRY pfe_l2br_domain_set_mcast_action
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  domain_17(D)->u.action_data.item.mcast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_17(D)->u.action_data.item.mcast_miss_action = 3;
  # DEBUG BEGIN_STMT
  ret_28 = pfe_l2br_update_hw_entry (domain_17(D));
  # DEBUG ret => ret_28
  # DEBUG BEGIN_STMT
  # DEBUG domain => NULL
  # DEBUG hit => NULL
  # DEBUG miss => NULL
  # DEBUG ret => NULL
  # DEBUG ret => ret_28

  <bb 5> [local count: 1073741824]:
  # ret_12 = PHI <0(2), ret_27(3), ret_28(4)>
  # DEBUG ret => ret_12
  # DEBUG BEGIN_STMT
  _2 = domain_17(D)->bridge;
  # DEBUG D#17 => &_2->mutex
  _25 = MEM[(const oal_mutex_t *)_2 + 52B];
  # DEBUG D#1 => D#17
  oal_mutex_lock.isra.0 (_25);
  # DEBUG BEGIN_STMT
  _3 = domain_17(D)->list_entry.prPrev;
  if (_3 != 0B)
    goto <bb 6>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 6> [local count: 751619278]:
  _4 = domain_17(D)->list_entry.prNext;
  if (_4 != 0B)
    goto <bb 7>; [70.00%]
  else
    goto <bb 10>; [30.00%]

  <bb 7> [local count: 526133494]:
  # DEBUG BEGIN_STMT
  _5 = &domain_17(D)->list_entry;
  _6 = domain_17(D)->bridge;
  _7 = _6->curr_domain;
  if (_5 == _7)
    goto <bb 8>; [30.00%]
  else
    goto <bb 9>; [70.00%]

  <bb 8> [local count: 157840048]:
  # DEBUG BEGIN_STMT
  _8 = _7->prNext;
  _6->curr_domain = _8;

  <bb 9> [local count: 526133494]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3->prNext = _4;
  # DEBUG BEGIN_STMT
  _9 = domain_17(D)->list_entry.prNext;
  _9->prPrev = _3;
  # DEBUG BEGIN_STMT
  domain_17(D)->list_entry.prPrev = 0B;
  # DEBUG BEGIN_STMT
  domain_17(D)->list_entry.prNext = 0B;

  <bb 10> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _10 = domain_17(D)->stats_index;
  # DEBUG index => _10
  # DEBUG INLINE_ENTRY pfe_l2br_domain_free_stats_index
  # DEBUG BEGIN_STMT
  _29 = (int) _10;
  stats_index[_29] = 0;
  # DEBUG index => NULL
  # DEBUG BEGIN_STMT
  _11 = domain_17(D)->bridge;
  # DEBUG D#18 => &_11->mutex
  _26 = MEM[(const oal_mutex_t *)_11 + 52B];
  # DEBUG D#2 => D#18
  oal_mutex_unlock.isra.0 (_26);
  # DEBUG BEGIN_STMT
  return ret_12;

}


pfe_l2br_domain_create (struct pfe_l2br_t * bridge, uint16_t vlan)
{
  errno_t ret;
  struct pfe_l2br_domain_t * domain;
  struct LLIST_t * _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  domain_6 = oal_mm_malloc (72);
  # DEBUG domain => domain_6
  # DEBUG BEGIN_STMT
  if (domain_6 == 0B)
    goto <bb 4>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  memset (domain_6, 0, 72);
  # DEBUG BEGIN_STMT
  domain_6->bridge = bridge_8(D);
  # DEBUG BEGIN_STMT
  domain_6->vlan = vlan_10(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = &domain_6->ifaces;
  domain_6->ifaces.prNext = _1;
  # DEBUG BEGIN_STMT
  domain_6->ifaces.prPrev = _1;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  ret_15 = pfe_l2br_check_duplicate_configed_domain (bridge_8(D), domain_6, vlan_10(D));
  # DEBUG ret => ret_15

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

}


pfe_l2br_check_duplicate_configed_domain (struct pfe_l2br_t * bridge, struct pfe_l2br_domain_t * domain, uint16_t vlan)
{
  errno_t ret;
  unsigned int _1;
  void * _2;
  struct pfe_l2br_domain_t * _3;
  struct LLIST_Struct * _4;
  struct LLIST_t * _5;
  struct LLIST_t * _6;
  short unsigned int _23;
  short unsigned int _24;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  _1 = (unsigned int) vlan_9(D);
  _2 = (void *) _1;
  _3 = pfe_l2br_get_first_domain (bridge_11(D), 1, _2);
  if (_3 != 0B)
    goto <bb 3>; [55.68%]
  else
    goto <bb 4>; [44.32%]

  <bb 3> [local count: 597859448]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_domain_destroy (domain_13(D));
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 115
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 475882377]:
  # DEBUG BEGIN_STMT
  ret_15 = pfe_l2br_config_domain (bridge_11(D), domain_13(D));
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  if (ret_15 == 0)
    goto <bb 5>; [33.00%]
  else
    goto <bb 6>; [67.00%]

  <bb 5> [local count: 157041184]:
  # DEBUG BEGIN_STMT
  # DEBUG D#32 => &bridge_11(D)->mutex
  _23 = MEM[(const oal_mutex_t *)bridge_11(D) + 52B];
  # DEBUG D#1 => D#32
  oal_mutex_lock.isra.0 (_23);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = bridge_11(D)->domains.prPrev;
  domain_13(D)->list_entry.prPrev = _4;
  # DEBUG BEGIN_STMT
  _5 = &bridge_11(D)->domains;
  domain_13(D)->list_entry.prNext = _5;
  # DEBUG BEGIN_STMT
  _6 = &domain_13(D)->list_entry;
  _4->prNext = _6;
  # DEBUG BEGIN_STMT
  bridge_11(D)->domains.prPrev = _6;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#33 => &bridge_11(D)->mutex
  _24 = MEM[(const oal_mutex_t *)bridge_11(D) + 52B];
  # DEBUG D#2 => D#33
  oal_mutex_unlock.isra.0 (_24);

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

}


pfe_l2br_config_domain (const struct pfe_l2br_t * bridge, struct pfe_l2br_domain_t * domain)
{
  errno_t ret;
  struct pfe_l2br_table_t * _1;
  struct pfe_l2br_table_entry_t * _2;
  struct pfe_l2br_table_entry_t * _3;
  short unsigned int _4;
  unsigned char _5;
  <unnamed-unsigned:7> _6;
  unsigned char _7;
  long long unsigned int _8;
  struct pfe_l2br_t * _9;
  struct pfe_l2br_table_t * _10;
  const uint16_t * _36;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  _1 = bridge_14(D)->vlan_table;
  _2 = &domain_15(D)->vlan_entry;
  _3 = pfe_l2br_table_entry_create (_1, _2);
  if (_3 == 0B)
    goto <bb 3>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 3> [local count: 201326592]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_domain_destroy (domain_15(D));
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114
  goto <bb 10>; [100.00%]

  <bb 4> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _4 = domain_15(D)->vlan;
  ret_18 = pfe_l2br_table_entry_set_vlan (_2, _4);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  if (ret_18 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 436207616]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_domain_destroy (domain_15(D));
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 6> [local count: 436207616]:
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.forward_list = 0;
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.untag_list = 0;
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.ucast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.ucast_miss_action = 3;
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.mcast_hit_action = 3;
  # DEBUG BEGIN_STMT
  domain_15(D)->u.action_data.item.mcast_miss_action = 3;
  # DEBUG BEGIN_STMT
  _36 = &MEM[(short unsigned int *)bridge_14(D) + 32B];
  # DEBUG D#3 => bridge_14(D)
  _5 = pfe_l2br_domain_get_free_stats_index.isra.0 (_36);
  _6 = (<unnamed-unsigned:7>) _5;
  domain_15(D)->u.action_data.item.stats_index = _6;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = (unsigned char) _6;
  domain_15(D)->stats_index = _7;
  # DEBUG BEGIN_STMT
  _8 = domain_15(D)->u.action_data_u64val;
  ret_29 = pfe_l2br_table_entry_set_action_data (_2, _8);
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  if (ret_29 != 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 7> [local count: 218103808]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_domain_destroy (domain_15(D));
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 8> [local count: 218103808]:
  # DEBUG BEGIN_STMT
  _9 = domain_15(D)->bridge;
  _10 = _9->vlan_table;
  ret_31 = pfe_l2br_table_add_entry (_10, _2);
  # DEBUG ret => ret_31
  # DEBUG BEGIN_STMT
  if (ret_31 != 0)
    goto <bb 9>; [33.00%]
  else
    goto <bb 10>; [67.00%]

  <bb 9> [local count: 71974257]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_l2br_domain_destroy (domain_15(D));

  <bb 10> [local count: 1073741824]:
  # ret_11 = PHI <114(3), ret_18(5), ret_29(7), ret_31(8), ret_31(9)>
  # DEBUG ret => ret_11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_11;

}


pfe_l2br_destroy_vlan_stats_table (struct pfe_class_t * class, uint32_t table_address)
{
  errno_t res;
  struct pfe_ct_class_mmap_t mmap;
  struct pfe_ct_vlan_statistics_t temp;
  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;
  long unsigned int _10;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  temp = {};
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (table_address_15(D) == 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 3>; [33.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  res_18 = pfe_class_get_mmap (class_16(D), 0, &mmap);
  # DEBUG res => res_18
  # DEBUG BEGIN_STMT
  if (res_18 != 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 4>; [33.00%]

  <bb 4> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  _1 = mmap.vlan_statistics;
  _2 = _1 >> 24;
  _3 = _1 >> 8;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 << 8;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 << 24;
  _10 = _8 | _9;
  res_20 = pfe_class_write_dmem (class_16(D), -1, _10, &temp, 8);
  # DEBUG res => res_20
  # DEBUG BEGIN_STMT
  if (res_20 != 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 5>; [33.00%]

  <bb 5> [local count: 38587060]:
  # DEBUG BEGIN_STMT
  pfe_class_dmem_heap_free (class_16(D), table_address_15(D));

  <bb 6> [local count: 1073741824]:
  # res_11 = PHI <0(2), res_18(3), res_20(4), 0(5)>
  # DEBUG res => res_11
  # DEBUG BEGIN_STMT
  temp ={v} {CLOBBER};
  mmap ={v} {CLOBBER};
  return res_11;

}


pfe_l2br_create_vlan_stats_table (struct pfe_class_t * class, uint16_t vlan_count)
{
  struct pfe_ct_class_mmap_t mmap;
  errno_t res;
  struct pfe_ct_vlan_statistics_t temp;
  uint32_t size;
  addr_t addr;
  long unsigned int _1;
  short 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;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = (long unsigned int) vlan_count_24(D);
  size_25 = _1 * 16;
  # DEBUG size => size_25
  # DEBUG BEGIN_STMT
  addr_29 = pfe_class_dmem_heap_alloc (class_27(D), size_25);
  # DEBUG addr => addr_29
  # DEBUG BEGIN_STMT
  if (addr_29 == 0)
    goto <bb 7>; [67.00%]
  else
    goto <bb 3>; [33.00%]

  <bb 3> [local count: 354334802]:
  # DEBUG BEGIN_STMT
  res_31 = pfe_class_get_mmap (class_27(D), 0, &mmap);
  # DEBUG res => res_31
  # DEBUG BEGIN_STMT
  if (res_31 != 0)
    goto <bb 4>; [67.00%]
  else
    goto <bb 5>; [33.00%]

  <bb 4> [local count: 237404317]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  addr_37 = (addr_t) res_31;
  # DEBUG addr => addr_37
  goto <bb 7>; [100.00%]

  <bb 5> [local count: 116930485]:
  # DEBUG BEGIN_STMT
  _2 = vlan_count_24(D) r>> 8;
  temp.vlan_count = _2;
  # DEBUG BEGIN_STMT
  _3 = addr_29 >> 24;
  _4 = addr_29 >> 8;
  _5 = _4 & 65280;
  _6 = _3 | _5;
  _7 = addr_29 << 8;
  _8 = _7 & 16711680;
  _9 = _6 | _8;
  _10 = addr_29 << 24;
  _11 = _9 | _10;
  temp.vlan = _11;
  # DEBUG BEGIN_STMT
  _12 = mmap.vlan_statistics;
  _13 = _12 >> 24;
  _14 = _12 >> 8;
  _15 = _14 & 65280;
  _16 = _13 | _15;
  _17 = _12 << 8;
  _18 = _17 & 16711680;
  _19 = _16 | _18;
  _20 = _12 << 24;
  _21 = _19 | _20;
  res_35 = pfe_class_write_dmem (class_27(D), -1, _21, &temp, 8);
  # DEBUG res => res_35
  # DEBUG BEGIN_STMT
  if (res_35 != 0)
    goto <bb 6>; [33.00%]
  else
    goto <bb 7>; [67.00%]

  <bb 6> [local count: 38587060]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_class_dmem_heap_free (class_27(D), addr_29);
  # DEBUG BEGIN_STMT
  # DEBUG addr => 0

  <bb 7> [local count: 1073741824]:
  # addr_22 = PHI <addr_29(2), addr_37(4), addr_29(5), 0(6)>
  # DEBUG addr => addr_22
  # DEBUG BEGIN_STMT
  temp ={v} {CLOBBER};
  mmap ={v} {CLOBBER};
  return addr_22;

}


pfe_l2br_update_hw_entry (struct pfe_l2br_domain_t * domain)
{
  errno_t ret;
  unsigned char _1;
  unsigned char _2;
  struct pfe_l2br_t * _3;
  long unsigned int _4;
  struct pfe_l2br_table_entry_t * _5;
  long long unsigned int _6;
  struct pfe_l2br_t * _7;
  struct pfe_l2br_table_t * _8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = domain_13(D)->is_fallback;
  if (_1 == 1)
    goto <bb 3>; [20.24%]
  else
    goto <bb 4>; [79.76%]

  <bb 3> [local count: 217325344]:
  ret_9 = pfe_l2br_update_hw_entry.part.0 (domain_13(D));
  goto <bb 9>; [100.00%]

  <bb 4> [local count: 856416480]:
  # DEBUG BEGIN_STMT
  _2 = domain_13(D)->is_default;
  if (_2 == 1)
    goto <bb 5>; [20.24%]
  else
    goto <bb 6>; [79.76%]

  <bb 5> [local count: 173338695]:
  # DEBUG BEGIN_STMT
  _3 = domain_13(D)->bridge;
  _4 = _3->dmem_def_bd_base;
  pfe_l2br_update_hw_ll_entry (domain_13(D), _4);

  <bb 6> [local count: 856416479]:
  # DEBUG BEGIN_STMT
  _5 = &domain_13(D)->vlan_entry;
  _6 = domain_13(D)->u.action_data_u64val;
  ret_16 = pfe_l2br_table_entry_set_action_data (_5, _6);
  # DEBUG ret => ret_16
  # DEBUG BEGIN_STMT
  if (ret_16 != 0)
    goto <bb 9>; [52.23%]
  else
    goto <bb 7>; [47.77%]

  <bb 7> [local count: 409110152]:
  # DEBUG BEGIN_STMT
  _7 = domain_13(D)->bridge;
  _8 = _7->vlan_table;
  ret_18 = pfe_l2br_table_update_entry (_8, _5);
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  if (ret_18 != 0)
    goto <bb 8>; [35.00%]
  else
    goto <bb 9>; [65.00%]

  <bb 8> [local count: 143188553]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 114

  <bb 9> [local count: 1073741824]:
  # ret_10 = PHI <ret_9(3), 114(6), ret_18(7), 114(8)>
  # DEBUG ret => ret_10
  # DEBUG BEGIN_STMT
  return ret_10;

}


pfe_l2br_update_hw_ll_entry (struct pfe_l2br_domain_t * domain, uint32_t base)
{
  union pfe_ct_bd_entry_t sw_bd;
  long long unsigned int _1;
  long long unsigned int _2;
  long long unsigned int _3;
  long long unsigned int _4;
  long long unsigned int _5;
  long long unsigned int _6;
  long long unsigned int _7;
  long long unsigned int _8;
  long long unsigned int _9;
  long long unsigned int _10;
  long long unsigned int _11;
  long long unsigned int _12;
  long long unsigned int _13;
  long long unsigned int _14;
  long long unsigned int _15;
  long long unsigned int _16;
  long long unsigned int _17;
  long long unsigned int _18;
  long long unsigned int _19;
  long long unsigned int _20;
  long long unsigned int _21;
  long long unsigned int _22;
  struct pfe_l2br_t * _23;
  struct pfe_class_t * _30;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG need_shift => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG need_shift => 0
  # DEBUG BEGIN_STMT
  _1 = domain_25(D)->u.action_data.val;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = _1 >> 56;
  _3 = _1 >> 40;
  _4 = _3 & 65280;
  _5 = _2 | _4;
  _6 = _1 >> 24;
  _7 = _6 & 16711680;
  _8 = _5 | _7;
  _9 = _1 >> 8;
  _10 = _9 & 4278190080;
  _11 = _8 | _10;
  _12 = _1 << 8;
  _13 = _12 & 1095216660480;
  _14 = _11 | _13;
  _15 = _1 << 24;
  _16 = _15 & 280375465082880;
  _17 = _14 | _16;
  _18 = _1 << 40;
  _19 = _18 & 71776119061217280;
  _20 = _17 | _19;
  _21 = _1 << 56;
  _22 = _20 | _21;
  MEM[(uint64_t *)&sw_bd] = _22;
  # DEBUG BEGIN_STMT
  _23 = domain_25(D)->bridge;
  _30 = MEM[(struct pfe_class_t * *)_23];
  # DEBUG D#6 => _23
  pfe_bd_write_to_class.isra.0 (_30, base_27(D), &sw_bd);
  # DEBUG BEGIN_STMT
  sw_bd ={v} {CLOBBER};
  return;

}


oal_mutex_destroy (oal_mutex_t * mutex)
{
  errno_t _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _4 = oal_mutex_destroy_internal (mutex_2(D));
  return _4;

}


oal_mutex_init (oal_mutex_t * mutex)
{
  errno_t _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _4 = oal_mutex_init_internal (mutex_2(D));
  return _4;

}


