
IPA constant propagation start:
Determining dynamic type for call: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  Starting walk at: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  instance pointer: fci_ret_35(D)  Outer instance pointer: fci_ret_35(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ret_34 = pfe_spd_acc_get_rule (phy_if_31, search_position.3_13, &spd_entry);
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
Determining dynamic type for call: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  Starting walk at: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  instance pointer: &reply_buf  Outer instance pointer: reply_buf offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ret_34 = pfe_spd_acc_get_rule (phy_if_31, search_position.3_13, &spd_entry);
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
Determining dynamic type for call: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  Starting walk at: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  instance pointer: reply_len_19(D)  Outer instance pointer: reply_len_19(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ret_34 = pfe_spd_acc_get_rule (phy_if_31, search_position.3_13, &spd_entry);
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
Determining dynamic type for call: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  Starting walk at: ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  instance pointer: spd_cmd_25  Outer instance pointer: msg_24(D) offset: 128 (bits) vtbl reference: 
  Function call may change dynamic type:ret_34 = pfe_spd_acc_get_rule (phy_if_31, search_position.3_13, &spd_entry);
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
Determining dynamic type for call: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  Starting walk at: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  instance pointer: phy_if_31  Outer instance pointer: phy_if_31 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
  Function call may change dynamic type:memset (&spd_entry, 0, 56);
Determining dynamic type for call: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  Starting walk at: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  instance pointer: fci_ret_35(D)  Outer instance pointer: fci_ret_35(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
Determining dynamic type for call: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  Starting walk at: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  instance pointer: &spd_entry  Outer instance pointer: spd_entry offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");
  Function call may change dynamic type:memset (&spd_entry, 0, 56);
Determining dynamic type for call: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  Starting walk at: ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  instance pointer: spd_cmd_25  Outer instance pointer: msg_24(D) offset: 128 (bits) vtbl reference: 
  Function call may change dynamic type:_8 = pfe_if_db_unlock (_7);
  Function call may change dynamic type:ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  Function call may change dynamic type:ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  Function call may change dynamic type:memset (reply_buf.0_3, 0, 68);
  Function call may change dynamic type:_2 = pfe_feature_mgr_is_available ("IPsec");

IPA structures before propagation:

Jump functions:
  Jump functions of caller  strcpy/35:
  Jump functions of caller  pfe_spd_acc_add_rule/34:
  Jump functions of caller  memcpy/33:
  Jump functions of caller  pfe_spd_acc_get_rule/32:
  Jump functions of caller  pfe_spd_acc_remove_rule/31:
  Jump functions of caller  pfe_if_db_entry_get_phy_if/30:
  Jump functions of caller  pfe_if_db_unlock/29:
  Jump functions of caller  pfe_if_db_get_first/28:
  Jump functions of caller  pfe_if_db_lock/27:
  Jump functions of caller  pfe_feature_mgr_is_available/26:
  Jump functions of caller  memset/25:
  Jump functions of caller  fci_spd_cmd/23:
    callsite  fci_spd_cmd/23 -> fci_spd_cmd_query_cont_construct_reply/21 : 
       param 0: PASS THROUGH: 1, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 2: PASS THROUGH: 3, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: UNKNOWN
         Unknown bits
         Unknown VR
       param 4: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
    callsite  fci_spd_cmd/23 -> fci_spd_cmd_register/22 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: PASS THROUGH: 1, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 3: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
  Jump functions of caller  fci_spd_cmd_register/22:
  Jump functions of caller  fci_spd_cmd_query_cont_construct_reply/21:

 Propagating constants:

Not considering fci_spd_cmd for cloning; -fipa-cp-clone disabled.

overall_size: 231, max_new_size: 11001

IPA lattices after all propagation:

Lattices:
  Node: fci_spd_cmd/23:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_spd_cmd_register/22:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         struct pfe_ct_spd_entry_t * ~[0B, 0B]
        AGGS VARIABLE
    param [3]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         const struct fpp_spd_cmd_t * ~[0B, 0B]
        AGGS VARIABLE
  Node: fci_spd_cmd_query_cont_construct_reply/21:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         struct fpp_spd_cmd_t * * ~[0B, 0B]
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [3]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [4]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         const struct fpp_spd_cmd_t * ~[0B, 0B]
        AGGS VARIABLE

IPA decision stage:

Propagated bits info for function fci_spd_cmd_register/22:
 param 2: value = 0x0, mask = 0xfffffffc
Propagated bits info for function fci_spd_cmd_query_cont_construct_reply/21:
 param 1: value = 0x0, mask = 0xfffffffc

IPA constant propagation end

Reclaiming functions:
Reclaiming variables:
Clearing address taken flags:
Symbol table:

strcpy/35 (strcpy) @0749eb60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd_query_cont_construct_reply/21 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_spd_acc_add_rule/34 (pfe_spd_acc_add_rule) @0749e9a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd_register/22 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
memcpy/33 (memcpy) @0749e8c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd_query_cont_construct_reply/21 (354334802 (estimated locally),0.33 per call) fci_spd_cmd_query_cont_construct_reply/21 (354334802 (estimated locally),0.33 per call) fci_spd_cmd_register/22 (354334802 (estimated locally),0.33 per call) fci_spd_cmd_register/22 (354334802 (estimated locally),0.33 per call) 
  Calls: 
pfe_spd_acc_get_rule/32 (pfe_spd_acc_get_rule) @0749e700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (4129978 (estimated locally),0.00 per call) 
  Calls: 
pfe_spd_acc_remove_rule/31 (pfe_spd_acc_remove_rule) @0749e620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (2064989 (estimated locally),0.00 per call) 
  Calls: 
pfe_if_db_entry_get_phy_if/30 (pfe_if_db_entry_get_phy_if) @0749e540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (12707625 (estimated locally),0.01 per call) 
  Calls: 
pfe_if_db_unlock/29 (pfe_if_db_unlock) @0749e460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (55857692 (estimated locally),0.05 per call) 
  Calls: 
pfe_if_db_get_first/28 (pfe_if_db_get_first) @0749e380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (55857692 (estimated locally),0.05 per call) 
  Calls: 
pfe_if_db_lock/27 (pfe_if_db_lock) @0749e2a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (169265735 (estimated locally),0.16 per call) 
  Calls: 
pfe_feature_mgr_is_available/26 (pfe_feature_mgr_is_available) @0749e1c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (512926469 (estimated locally),0.48 per call) 
  Calls: 
memset/25 (memset) @0749e0e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_spd_cmd/23 (169265735 (estimated locally),0.16 per call) fci_spd_cmd/23 (512926469 (estimated locally),0.48 per call) fci_spd_cmd_query_cont_construct_reply/21 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
__context/24 (__context) @0749f168
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: external public
  References: 
  Referring: fci_spd_cmd/23 (addr)fci_spd_cmd/23 (read)fci_spd_cmd/23 (read)fci_spd_cmd/23 (read)
  Availability: not_available
  Varpool flags:
fci_spd_cmd/23 (fci_spd_cmd) @07586b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: __context/24 (addr)__context/24 (read)__context/24 (read)__context/24 (read)search_position/20 (write)search_position/20 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_spd_cmd_query_cont_construct_reply/21 (1362893 (estimated locally),0.00 per call) pfe_spd_acc_get_rule/32 (4129978 (estimated locally),0.00 per call) pfe_spd_acc_remove_rule/31 (2064989 (estimated locally),0.00 per call) fci_spd_cmd_register/22 (2064989 (estimated locally),0.00 per call) pfe_if_db_entry_get_phy_if/30 (12707625 (estimated locally),0.01 per call) pfe_if_db_unlock/29 (55857692 (estimated locally),0.05 per call) pfe_if_db_get_first/28 (55857692 (estimated locally),0.05 per call) pfe_if_db_lock/27 (169265735 (estimated locally),0.16 per call) memset/25 (169265735 (estimated locally),0.16 per call) pfe_feature_mgr_is_available/26 (512926469 (estimated locally),0.48 per call) memset/25 (512926469 (estimated locally),0.48 per call) 
fci_spd_cmd_register/22 (fci_spd_cmd_register) @075867e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_spd_cmd/23 (2064989 (estimated locally),0.00 per call) 
  Calls: pfe_spd_acc_add_rule/34 (1073741824 (estimated locally),1.00 per call) memcpy/33 (354334802 (estimated locally),0.33 per call) memcpy/33 (354334802 (estimated locally),0.33 per call) 
fci_spd_cmd_query_cont_construct_reply/21 (fci_spd_cmd_query_cont_construct_reply) @07586540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: search_position/20 (read)search_position/20 (write)
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_spd_cmd/23 (1362893 (estimated locally),0.00 per call) 
  Calls: memcpy/33 (354334802 (estimated locally),0.33 per call) memcpy/33 (354334802 (estimated locally),0.33 per call) strcpy/35 (1073741824 (estimated locally),1.00 per call) memset/25 (1073741824 (estimated locally),1.00 per call) 
search_position/20 (search_position) @075852d0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: fci_spd_cmd_query_cont_construct_reply/21 (read)fci_spd_cmd_query_cont_construct_reply/21 (write)fci_spd_cmd/23 (write)fci_spd_cmd/23 (read)
  Availability: available
  Varpool flags: initialized

;; Function fci_spd_cmd (fci_spd_cmd, funcdef_no=19, decl_uid=11911, cgraph_uid=20, symbol_order=23)

Modification phase of node fci_spd_cmd/23
fci_spd_cmd (struct fci_msg_t * msg, uint16_t * fci_ret, struct fpp_spd_cmd_t * reply_buf, uint32_t * reply_len)
{
  struct pfe_ct_spd_entry_t spd_entry;
  struct pfe_phy_if_t * phy_if;
  struct pfe_if_db_entry_t * pfe_if_db_entry;
  struct fpp_spd_cmd_t * spd_cmd;
  errno_t ret;
  long unsigned int _1;
  unsigned char _2;
  struct fpp_spd_cmd_t * reply_buf.0_3;
  struct pfe_if_db_t * _4;
  long unsigned int _5;
  char[16] * _6;
  long unsigned int _7;
  int _8;
  struct pfe_if_db_entry_t * pfe_if_db_entry.1_9;
  short unsigned int _10;
  short unsigned int _11;
  short unsigned int _12;
  short unsigned int search_position.3_13;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG fci_context => &__context
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_if_db_entry = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG phy_if => 0B
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = *reply_len_19(D);
  if (_1 <= 67)
    goto <bb 24>; [52.23%]
  else
    goto <bb 3>; [47.77%]

  <bb 3> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  *reply_len_19(D) = 0;
  # DEBUG BEGIN_STMT
  memset (&spd_entry, 0, 56);
  # DEBUG BEGIN_STMT
  _2 = pfe_feature_mgr_is_available ("IPsec");
  if (_2 == 0)
    goto <bb 4>; [67.00%]
  else
    goto <bb 5>; [33.00%]

  <bb 4> [local count: 343660734]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 62034;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 24>; [100.00%]

  <bb 5> [local count: 169265735]:
  # DEBUG BEGIN_STMT
  reply_buf.0_3 = reply_buf;
  memset (reply_buf.0_3, 0, 68);
  # DEBUG BEGIN_STMT
  spd_cmd_25 = &msg_24(D)->msg_cmd.payload;
  # DEBUG spd_cmd => spd_cmd_25
  # DEBUG BEGIN_STMT
  ret_27 = pfe_if_db_lock (&MEM[(void *)&__context + 20B]);
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT
  if (ret_27 != 0)
    goto <bb 6>; [67.00%]
  else
    goto <bb 7>; [33.00%]

  <bb 6> [local count: 113408042]:
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 61712;
  # DEBUG BEGIN_STMT
  goto <bb 24>; [100.00%]

  <bb 7> [local count: 55857692]:
  # DEBUG BEGIN_STMT
  _4 = __context.phy_if_db;
  _5 = __context.if_session_id;
  _6 = &MEM[(struct fpp_spd_cmd_t *)msg_24(D) + 16B].name;
  ret_29 = pfe_if_db_get_first (_4, _5, 3, _6, &pfe_if_db_entry);
  # DEBUG ret => ret_29
  # DEBUG BEGIN_STMT
  _7 = __context.if_session_id;
  _8 = pfe_if_db_unlock (_7);
  if (_8 != 0)
    goto <bb 8>; [35.00%]
  else
    goto <bb 9>; [65.00%]

  <bb 8> [local count: 19550192]:
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 61713;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  goto <bb 24>; [100.00%]

  <bb 9> [local count: 36307500]:
  # DEBUG BEGIN_STMT
  if (ret_29 != 0)
    goto <bb 11>; [50.00%]
  else
    goto <bb 10>; [50.00%]

  <bb 10> [local count: 18153750]:
  pfe_if_db_entry.1_9 = pfe_if_db_entry;
  if (pfe_if_db_entry.1_9 == 0B)
    goto <bb 11>; [30.00%]
  else
    goto <bb 12>; [70.00%]

  <bb 11> [local count: 23599875]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 61700;
  goto <bb 24>; [100.00%]

  <bb 12> [local count: 12707625]:
  # DEBUG BEGIN_STMT
  phy_if_31 = pfe_if_db_entry_get_phy_if (pfe_if_db_entry.1_9);
  # DEBUG phy_if => phy_if_31
  # DEBUG BEGIN_STMT
  if (phy_if_31 == 0B)
    goto <bb 13>; [18.75%]
  else
    goto <bb 14>; [81.25%]

  <bb 13> [local count: 2382680]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 61700;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  goto <bb 24>; [100.00%]

  <bb 14> [local count: 10324945]:
  # DEBUG BEGIN_STMT
  _10 = MEM[(struct fpp_spd_cmd_t *)msg_24(D) + 16B].action;
  switch (_10) <default: <L23> [20.00%], case 0: <L13> [20.00%], case 1: <L14> [20.00%], case 6: <L18> [20.00%], case 7: <L19> [20.00%]>

  <bb 15> [local count: 2064989]:
<L13>:
  # DEBUG BEGIN_STMT
  ret_44 = fci_spd_cmd_register (phy_if_31, fci_ret_35(D), &spd_entry, spd_cmd_25);
  # DEBUG ret => ret_44
  # DEBUG BEGIN_STMT
  goto <bb 24>; [100.00%]

  <bb 16> [local count: 2064989]:
<L14>:
  # DEBUG BEGIN_STMT
  _11 = MEM[(struct fpp_spd_cmd_t *)msg_24(D) + 16B].position;
  _12 = _11 r>> 8;
  ret_40 = pfe_spd_acc_remove_rule (phy_if_31, _12);
  # DEBUG ret => ret_40
  # DEBUG BEGIN_STMT
  if (ret_40 != 0)
    goto <bb 17>; [50.00%]
  else
    goto <bb 18>; [50.00%]

  <bb 17> [local count: 1032495]:
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 65535;
  goto <bb 24>; [100.00%]

  <bb 18> [local count: 1032495]:
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 0;
  goto <bb 24>; [100.00%]

  <bb 19> [local count: 2064989]:
<L18>:
  # DEBUG BEGIN_STMT
  search_position = 0;

  <bb 20> [local count: 4129978]:
<L19>:
  # DEBUG BEGIN_STMT
  search_position.3_13 = search_position;
  ret_34 = pfe_spd_acc_get_rule (phy_if_31, search_position.3_13, &spd_entry);
  # DEBUG ret => ret_34
  # DEBUG BEGIN_STMT
  if (ret_34 == 0)
    goto <bb 21>; [33.00%]
  else
    goto <bb 22>; [67.00%]

  <bb 21> [local count: 1362893]:
  # DEBUG BEGIN_STMT
  ret_38 = fci_spd_cmd_query_cont_construct_reply (fci_ret_35(D), &reply_buf, reply_len_19(D), spd_entry, spd_cmd_25);
  # DEBUG ret => ret_38
  goto <bb 24>; [100.00%]

  <bb 22> [local count: 2767085]:
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 61700;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 24>; [100.00%]

  <bb 23> [local count: 2064989]:
<L23>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  *fci_ret_35(D) = 4;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT

  <bb 24> [local count: 1073741824]:
  # ret_14 = PHI <22(2), 0(4), ret_27(6), 2(8), ret_29(11), 2(13), ret_44(15), 0(18), 0(22), 22(23), ret_40(17), ret_38(21)>
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  pfe_if_db_entry ={v} {CLOBBER};
  spd_entry ={v} {CLOBBER};
  return ret_14;

}


