
IPA constant propagation start:
Determining dynamic type for call: _6 (ref_ptr_2);
  Starting walk at: _6 (ref_ptr_2);
  instance pointer: ref_ptr_2  Outer instance pointer: ref_ptr_2 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ref_ptr_2 = pfe_hif_drv_client_receive_tx_conf (client_1(D), 0);
  Function call may change dynamic type:ref_ptr_2 = pfe_hif_drv_client_receive_tx_conf (client_1(D), 0);
  Function call may change dynamic type:_5 (ref_ptr_2);
  Function call may change dynamic type:_6 (ref_ptr_2);
Determining dynamic type for call: _5 (ref_ptr_2);
  Starting walk at: _5 (ref_ptr_2);
  instance pointer: ref_ptr_2  Outer instance pointer: ref_ptr_2 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:ref_ptr_2 = pfe_hif_drv_client_receive_tx_conf (client_1(D), 0);
  Function call may change dynamic type:ref_ptr_2 = pfe_hif_drv_client_receive_tx_conf (client_1(D), 0);
  Function call may change dynamic type:_5 (ref_ptr_2);
  Function call may change dynamic type:_6 (ref_ptr_2);
Determining dynamic type for call: ret_51 = pfe_idex_request_send (dst_phy_49(D), 1, _12, &pfe_idex_response_frame.msg_rpc, resp_buf_size_39);
  Starting walk at: ret_51 = pfe_idex_request_send (dst_phy_49(D), 1, _12, &pfe_idex_response_frame.msg_rpc, resp_buf_size_39);
  instance pointer: &pfe_idex_response_frame.msg_rpc  Outer instance pointer: pfe_idex_response_frame offset: 200 (bits) vtbl reference: 
  Function call may change dynamic type:memset (&pfe_idex_response_frame, 0, 1538);
Determining dynamic type for call: _9 = pfe_idex_rpc (_1, id_3(D), buf_4(D), buf_len_5(D), resp_6(D), resp_len_7(D));
  Starting walk at: _9 = pfe_idex_rpc (_1, id_3(D), buf_4(D), buf_len_5(D), resp_6(D), resp_len_7(D));
  instance pointer: buf_4(D)  Outer instance pointer: buf_4(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _9 = pfe_idex_rpc (_1, id_3(D), buf_4(D), buf_len_5(D), resp_6(D), resp_len_7(D));
  Starting walk at: _9 = pfe_idex_rpc (_1, id_3(D), buf_4(D), buf_len_5(D), resp_6(D), resp_len_7(D));
  instance pointer: resp_6(D)  Outer instance pointer: resp_6(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: ret_36 = pfe_idex_send_frame (dst_phy_27(D), 0, &pfe_idex_request_frame.req, _12);
  Starting walk at: ret_36 = pfe_idex_send_frame (dst_phy_27(D), 0, &pfe_idex_request_frame.req, _12);
  instance pointer: &pfe_idex_request_frame.req  Outer instance pointer: pfe_idex_request_frame offset: 144 (bits) vtbl reference: 
Determining dynamic type for call: ret_12 = pfe_idex_send_frame (dst_phy_10(D), 1, &pfe_idex_response_frame.resp, _2);
  Starting walk at: ret_12 = pfe_idex_send_frame (dst_phy_10(D), 1, &pfe_idex_response_frame.resp, _2);
  instance pointer: &pfe_idex_response_frame.resp  Outer instance pointer: pfe_idex_response_frame offset: 144 (bits) vtbl reference: 
Determining dynamic type for call: pfe_idex_request_finalize.isra.0 (resp_payload_35, _25);
  Starting walk at: pfe_idex_request_finalize.isra.0 (resp_payload_35, _25);
  instance pointer: resp_payload_35  Outer instance pointer: resp_payload_35 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_hif_pkt_free (pkt_31);
  Function call may change dynamic type:_7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_idex_request_finalize.isra.0 (resp_payload_35, _25);
Determining dynamic type for call: _7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  Starting walk at: _7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  instance pointer: rpc_msg_payload_ptr_39  Outer instance pointer: rpc_msg_payload_ptr_39 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_hif_pkt_free (pkt_31);
  Function call may change dynamic type:_7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_idex_request_finalize.isra.0 (resp_payload_35, _25);
Determining dynamic type for call: _7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  Starting walk at: _7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  instance pointer: _20  Outer instance pointer: _20 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_hif_pkt_free (pkt_31);
  Function call may change dynamic type:_7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
  Function call may change dynamic type:pkt_31 = pfe_hif_drv_client_receive_pkt (client_29(D), 0);
  Function call may change dynamic type:pfe_idex_request_finalize.isra.0 (resp_payload_35, _25);
Determining dynamic type for call: pfe_idex_do_tx_conf.isra.0 (client_5(D), &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]);
  Starting walk at: pfe_idex_do_tx_conf.isra.0 (client_5(D), &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]);
  instance pointer: client_5(D)  Outer instance pointer: client_5(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: pfe_idex_do_tx_conf.isra.0 (client_5(D), &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]);
  Starting walk at: pfe_idex_do_tx_conf.isra.0 (client_5(D), &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]);
  instance pointer: &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]  Outer instance pointer: pfe_idex offset: 96 (bits) vtbl reference: 
Determining dynamic type for call: pfe_idex_do_rx (client_5(D), &pfe_idex);
  Starting walk at: pfe_idex_do_rx (client_5(D), &pfe_idex);
  instance pointer: client_5(D)  Outer instance pointer: client_5(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: pfe_idex_do_rx (client_5(D), &pfe_idex);
  Starting walk at: pfe_idex_do_rx (client_5(D), &pfe_idex);
  instance pointer: &pfe_idex  Outer instance pointer: pfe_idex offset: 0 (bits) vtbl reference: 

IPA structures before propagation:

Jump functions:
  Jump functions of caller  pfe_idex_do_tx_conf.isra.0/66:
    indirect aggregate callsite, calling param 1, offset 0, by reference, for stmt _6 (ref_ptr_2);
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
    indirect aggregate callsite, calling param 1, offset 0, by reference, for stmt _5 (ref_ptr_2);
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_idex_request_finalize.isra.0/65:
  Jump functions of caller  pfe_hif_drv_client_xmit_sg_pkt/63:
  Jump functions of caller  oal_mm_virt_to_phys_contig/62:
  Jump functions of caller  oal_time_udelay/61:
  Jump functions of caller  oal_time_usleep/60:
  Jump functions of caller  oal_irq_in_atomic/59:
  Jump functions of caller  pfe_hif_drv_client_unregister/58:
  Jump functions of caller  pfe_hif_clear_master_up/57:
  Jump functions of caller  pfe_hif_get_master_detect_cfg/56:
  Jump functions of caller  pfe_hif_drv_client_receive_tx_conf/55:
  Jump functions of caller  memcpy/54:
  Jump functions of caller  pfe_hif_pkt_free/53:
  Jump functions of caller  pfe_hif_drv_client_receive_pkt/52:
  Jump functions of caller  pfe_hif_drv_ihc_client_register/51:
  Jump functions of caller  oal_util_rand/50:
  Jump functions of caller  memset/49:
  Jump functions of caller  pfe_idex_set_rpc_ret_val/48:
    callsite  pfe_idex_set_rpc_ret_val/48 -> pfe_idex_send_response/40 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: PASS THROUGH: 2, op plus_expr 10
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  pfe_idex_rpc/47:
    callsite  pfe_idex_rpc/47 -> pfe_idex_request_send/41 : 
       param 0: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 3, op plus_expr 10
         value: 0x0, mask: 0xffff
         Unknown VR
       param 3: CONST: &pfe_idex_response_frame.msg_rpc
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 4: PASS THROUGH: 5, op plus_expr 10
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  pfe_idex_master_rpc/46:
    callsite  pfe_idex_master_rpc/46 -> pfe_idex_rpc/47 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: PASS THROUGH: 1, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: PASS THROUGH: 2, op nop_expr
         value: 0x0, mask: 0xffff
         Unknown VR
       param 4: PASS THROUGH: 3, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 5: PASS THROUGH: 4, op nop_expr
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  pfe_idex_fini/45:
  Jump functions of caller  pfe_idex_init/44:
    callsite  pfe_idex_init/44 -> pfe_idex_fini/45 : 
  Jump functions of caller  pfe_idex_send_frame/42:
  Jump functions of caller  pfe_idex_request_send/41:
    callsite  pfe_idex_request_send/41 -> pfe_idex_send_frame/42 : 
       param 0: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
       param 2: CONST: &pfe_idex_request_frame.req
         Aggregate passed by reference:
           offset: 120, cst: 1
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 3: PASS THROUGH: 2, op plus_expr 37
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  pfe_idex_send_response/40:
    callsite  pfe_idex_send_response/40 -> pfe_idex_send_frame/42 : 
       param 0: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: CONST: &pfe_idex_response_frame.resp
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 3: PASS THROUGH: 3, op plus_expr 7
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  pfe_idex_do_rx/37:
    callsite  pfe_idex_do_rx/37 -> pfe_idex_request_finalize.isra.0/65 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffff
         Unknown VR
    indirect aggregate callsite, calling param 1, offset 128, by reference, for stmt _7 (_47, _17, rpc_msg_payload_ptr_39, _19, _20);
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: UNKNOWN
         value: 0x0, mask: 0xffff
         Unknown VR
       param 4: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_idex_ihc_handler/36:
    callsite  pfe_idex_ihc_handler/36 -> pfe_idex_do_tx_conf.isra.0/66 : 
       param 0: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: CONST: &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
    callsite  pfe_idex_ihc_handler/36 -> pfe_idex_do_rx/37 : 
       param 0: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: CONST: &pfe_idex
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]

 Propagating constants:

Not considering pfe_idex_set_rpc_ret_val for cloning; -fipa-cp-clone disabled.
Not considering pfe_idex_rpc for cloning; -fipa-cp-clone disabled.
Not considering pfe_idex_master_rpc for cloning; -fipa-cp-clone disabled.
Not considering pfe_idex_fini for cloning; -fipa-cp-clone disabled.
Not considering pfe_idex_init for cloning; -fipa-cp-clone disabled.
Not considering pfe_idex_ihc_handler for cloning; -fipa-cp-clone disabled.

overall_size: 394, max_new_size: 11001
 - context independent values, size: 48, time_benefit: 23.298796
     Decided to specialize for all known contexts, code not going to grow.
 - context independent values, size: 17, time_benefit: 2.000000
 - context independent values, size: 66, time_benefit: 1.000000
     Decided to specialize for all known contexts, code not going to grow.
 - context independent values, size: 29, time_benefit: 1.000000
     Decided to specialize for all known contexts, code not going to grow.

IPA lattices after all propagation:

Lattices:
  Node: pfe_idex_do_tx_conf.isra.0/66:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B] [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         void (*<Tdaa>) (void *) * ~[0B, 0B]
        AGGS VARIABLE
  Node: pfe_idex_request_finalize.isra.0/65:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_idex_set_rpc_ret_val/48:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_idex_rpc/47:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [4]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [5]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_idex_master_rpc/46:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [4]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_idex_fini/45:
  Node: pfe_idex_init/44:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [4]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [5]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: pfe_idex_send_frame/42:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: 1 [loc_time: 1, loc_size: 29, prop_time: 0, prop_size: 0]
               0 [loc_time: 1, loc_size: 29, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0x1
         pfe_idex_frame_type_t [0, 1]
        AGGS VARIABLE
    param [2]: &pfe_idex_response_frame.resp [loc_time: 3, loc_size: 27, prop_time: 0, prop_size: 0]
               &pfe_idex_request_frame.req [loc_time: 3, loc_size: 27, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         const void * ~[0B, 0B]
        AGGS VARIABLE
        ref offset 120: 1 [loc_time: 0, loc_size: 29, prop_time: 0, prop_size: 0]
    param [3]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_idex_request_send/41:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: 1 [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x1, mask = 0x0
         pfe_idex_request_type_t [1, 1]
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [3]: &pfe_idex_response_frame.msg_rpc [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         void * ~[0B, 0B]
        AGGS VARIABLE
    param [4]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_idex_send_response/40:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [3]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: pfe_idex_do_rx/37:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: &pfe_idex [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         struct pfe_idex_t * ~[0B, 0B]
        AGGS VARIABLE
  Node: pfe_idex_ihc_handler/36:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [3]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM

IPA decision stage:

 - Creating a specialized node of pfe_idex_request_send/41 for all known contexts.
    replacing param #1 type with const 1
    replacing param #3 resp with const &pfe_idex_response_frame.msg_rpc
 - Creating a specialized node of pfe_idex_do_rx/37 for all known contexts.
    replacing param #1 idex with const &pfe_idex
 - Creating a specialized node of pfe_idex_do_tx_conf.isra.0/66 for all known contexts.
    replacing param #1 ISRA.19 with const &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]
Propagated bits info for function pfe_idex_do_tx_conf.isra.0.constprop/69:
 param 1: value = 0x0, mask = 0xfffffffc
Propagated bits info for function pfe_idex_do_rx.constprop/68:
 param 1: value = 0x0, mask = 0xfffffffc
Propagated bits info for function pfe_idex_request_send.constprop/67:
 param 1: value = 0x1, mask = 0x0
Propagated bits info for function pfe_idex_do_tx_conf.isra.0/66:
 param 1: value = 0x0, mask = 0xfffffffc
Propagated bits info for function pfe_idex_send_frame/42:
 param 1: value = 0x0, mask = 0x1
Propagated bits info for function pfe_idex_request_send/41:
 param 1: value = 0x1, mask = 0x0
Propagated bits info for function pfe_idex_do_rx/37:
 param 1: value = 0x0, mask = 0xfffffffc

IPA constant propagation end

Reclaiming functions: pfe_idex_do_tx_conf.isra.0/66 pfe_idex_request_send/41 pfe_idex_do_rx/37
Reclaiming variables:
Clearing address taken flags:
Symbol table:

pfe_idex_do_tx_conf.isra.0.constprop.0/69 (pfe_idex_do_tx_conf.isra.0.constprop) @07671c40
  Type: function definition analyzed
  Visibility: artificial
  References: pfe_idex/33 (addr)
  Referring: 
  Clone of pfe_idex_do_tx_conf.isra.0/66
  Availability: local
  Function flags: count:118207164 (estimated locally) local optimize_size
  Called by: pfe_idex_ihc_handler/36 (268435456 (estimated locally),0.25 per call) 
  Calls: pfe_hif_drv_client_receive_tx_conf/55 (1073741824 (estimated locally),9.08 per call) 
   Indirect call(222958088 (estimated locally),1.89 per call)  of param:1 loaded from aggregate passed by reference at offset 0 (vptr maybe changed)
   Indirect call(222958088 (estimated locally),1.89 per call)  of param:1 loaded from aggregate passed by reference at offset 0 (vptr maybe changed)
pfe_idex_do_rx.constprop.0/68 (pfe_idex_do_rx.constprop) @076719a0
  Type: function definition analyzed
  Visibility:
  References: pfe_idex/33 (addr)
  Referring: 
  Clone of pfe_idex_do_rx/37
  Availability: local
  Function flags: count:118207164 (estimated locally) local optimize_size
  Called by: pfe_idex_ihc_handler/36 (268435456 (estimated locally),0.25 per call) 
  Calls: pfe_hif_drv_client_receive_pkt/52 (1073741824 (estimated locally),9.08 per call) pfe_idex_request_finalize.isra.0/65 (64466738 (estimated locally),0.55 per call) pfe_hif_pkt_free/53 (955534665 (estimated locally),8.08 per call) 
   Indirect call(111479044 (estimated locally),0.94 per call)  of param:1 loaded from aggregate passed by reference at offset 128 (vptr maybe changed)
pfe_idex_request_send.constprop.0/67 (pfe_idex_request_send.constprop) @07389d20
  Type: function definition analyzed
  Visibility:
  References: pfe_idex_request_frame/35 (addr)pfe_idex/33 (read)pfe_idex/33 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (addr)pfe_idex_request_frame/35 (read)pfe_idex_response_frame/34 (addr)
  Referring: 
  Clone of pfe_idex_request_send/41
  Availability: local
  Function flags: count:99818264 (estimated locally) local optimize_size
  Called by: pfe_idex_rpc/47 (1073741824 (estimated locally),1.00 per call) 
  Calls: memset/49 (99818264 (estimated locally),1.00 per call) pfe_idex_send_frame/42 (99818264 (estimated locally),1.00 per call) oal_irq_in_atomic/59 (1023832692 (estimated locally),10.26 per call) oal_time_usleep/60 (511916346 (estimated locally),5.13 per call) oal_time_udelay/61 (511916346 (estimated locally),5.13 per call) 
pfe_idex_do_tx_conf.isra.0/66 (pfe_idex_do_tx_conf.isra.0) @07389540
  Type: function
  Body removed by symtab_remove_unreachable_nodes
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: not_available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_idex_request_finalize.isra.0/65 (pfe_idex_request_finalize.isra.0) @06f02ee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: pfe_idex_request_frame/35 (read)pfe_idex_request_frame/35 (read)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: pfe_idex_do_rx.constprop/68 (64466738 (estimated locally),0.55 per call) 
  Calls: memcpy/54 (173624053 (estimated locally),0.16 per call) 
pfe_hif_drv_client_xmit_sg_pkt/63 (pfe_hif_drv_client_xmit_sg_pkt) @07716700
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_send_frame/42 (731110809 (estimated locally),0.68 per call) 
  Calls: 
oal_mm_virt_to_phys_contig/62 (oal_mm_virt_to_phys_contig) @07716620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_send_frame/42 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
oal_time_udelay/61 (oal_time_udelay) @07716460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_request_send.constprop/67 (511916346 (estimated locally),5.13 per call) 
  Calls: 
oal_time_usleep/60 (oal_time_usleep) @07716380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_request_send.constprop/67 (511916346 (estimated locally),5.13 per call) 
  Calls: 
oal_irq_in_atomic/59 (oal_irq_in_atomic) @077162a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_request_send.constprop/67 (1023832692 (estimated locally),10.26 per call) 
  Calls: 
pfe_hif_drv_client_unregister/58 (pfe_hif_drv_client_unregister) @07697e00
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_fini/45 (574129754 (estimated locally),0.53 per call) 
  Calls: 
pfe_hif_clear_master_up/57 (pfe_hif_clear_master_up) @07697d20
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_fini/45 (116203862 (estimated locally),0.11 per call) 
  Calls: 
pfe_hif_get_master_detect_cfg/56 (pfe_hif_get_master_detect_cfg) @07697c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_fini/45 (574129754 (estimated locally),0.53 per call) 
  Calls: 
pfe_hif_drv_client_receive_tx_conf/55 (pfe_hif_drv_client_receive_tx_conf) @076979a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_do_tx_conf.isra.0.constprop/69 (1073741824 (estimated locally),9.08 per call) 
  Calls: 
memcpy/54 (memcpy) @076977e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_set_rpc_ret_val/48 (1073741824 (estimated locally),1.00 per call) pfe_idex_rpc/47 (62692438 (estimated locally),0.06 per call) pfe_idex_rpc/47 (1073741824 (estimated locally),1.00 per call) pfe_idex_request_finalize.isra.0/65 (173624053 (estimated locally),0.16 per call) 
  Calls: 
pfe_hif_pkt_free/53 (pfe_hif_pkt_free) @07697380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_do_rx.constprop/68 (955534665 (estimated locally),8.08 per call) 
  Calls: 
pfe_hif_drv_client_receive_pkt/52 (pfe_hif_drv_client_receive_pkt) @076972a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_do_rx.constprop/68 (1073741824 (estimated locally),9.08 per call) 
  Calls: 
pfe_hif_drv_ihc_client_register/51 (pfe_hif_drv_ihc_client_register) @07686b60
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_init/44 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
oal_util_rand/50 (oal_util_rand) @076868c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_init/44 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
memset/49 (memset) @07686620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_idex_request_send.constprop/67 (99818264 (estimated locally),1.00 per call) pfe_idex_set_rpc_ret_val/48 (1073741824 (estimated locally),1.00 per call) pfe_idex_rpc/47 (1073741824 (estimated locally),1.00 per call) pfe_idex_rpc/47 (1073741824 (estimated locally),1.00 per call) pfe_idex_init/44 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
pfe_idex_set_rpc_ret_val/48 (pfe_idex_set_rpc_ret_val) @07686d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_idex_response_frame/34 (addr)pfe_idex/33 (read)pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (addr)pfe_idex/33 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_idex_send_response/40 (1073741824 (estimated locally),1.00 per call) memcpy/54 (1073741824 (estimated locally),1.00 per call) memset/49 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_rpc/47 (pfe_idex_rpc) @07686a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_idex_response_frame/34 (addr)pfe_idex_request_frame/35 (addr)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (write)pfe_idex_request_frame/35 (addr)pfe_idex_response_frame/34 (addr)pfe_idex_response_frame/34 (read)pfe_idex_response_frame/34 (read)pfe_idex_response_frame/34 (read)pfe_idex_response_frame/34 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: pfe_idex_master_rpc/46 (1073741824 (estimated locally),1.00 per call) 
  Calls: memcpy/54 (62692438 (estimated locally),0.06 per call) pfe_idex_request_send.constprop/67 (1073741824 (estimated locally),1.00 per call) memcpy/54 (1073741824 (estimated locally),1.00 per call) memset/49 (1073741824 (estimated locally),1.00 per call) memset/49 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_master_rpc/46 (pfe_idex_master_rpc) @076867e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_idex/33 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_idex_rpc/47 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_fini/45 (pfe_idex_fini) @07686540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_idex/33 (read)pfe_idex/33 (read)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (read)pfe_idex/33 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: pfe_idex_init/44 (109629040 (estimated locally),0.10 per call) 
  Calls: pfe_hif_drv_client_unregister/58 (574129754 (estimated locally),0.53 per call) pfe_hif_clear_master_up/57 (116203862 (estimated locally),0.11 per call) pfe_hif_get_master_detect_cfg/56 (574129754 (estimated locally),0.53 per call) 
pfe_idex_init/44 (pfe_idex_init) @076862a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_idex/33 (addr)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex_ihc_handler/36 (addr)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)pfe_idex/33 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_idex_fini/45 (109629040 (estimated locally),0.10 per call) pfe_hif_drv_ihc_client_register/51 (1073741824 (estimated locally),1.00 per call) oal_util_rand/50 (1073741824 (estimated locally),1.00 per call) memset/49 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_send_frame/42 (pfe_idex_send_frame) @07671a80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pfe_idex/33 (read)
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: pfe_idex_request_send.constprop/67 (99818264 (estimated locally),1.00 per call) pfe_idex_send_response/40 (1073741824 (estimated locally),1.00 per call) 
  Calls: pfe_hif_drv_client_xmit_sg_pkt/63 (731110809 (estimated locally),0.68 per call) oal_mm_virt_to_phys_contig/62 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_request_send/41 (pfe_idex_request_send) @07671540
  Type: function
  Body removed by symtab_remove_unreachable_nodes
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: not_available
  Function flags: count:99818264 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_idex_send_response/40 (pfe_idex_send_response) @07671ee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (write)pfe_idex_response_frame/34 (addr)
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: pfe_idex_set_rpc_ret_val/48 (1073741824 (estimated locally),1.00 per call) 
  Calls: pfe_idex_send_frame/42 (1073741824 (estimated locally),1.00 per call) 
pfe_idex_do_rx/37 (pfe_idex_do_rx) @07671700
  Type: function
  Body removed by symtab_remove_unreachable_nodes
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: not_available
  Function flags: count:118207164 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_idex_ihc_handler/36 (pfe_idex_ihc_handler) @07671460
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  References: pfe_idex/33 (addr)pfe_idex/33 (addr)
  Referring: pfe_idex_init/44 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_idex_do_tx_conf.isra.0.constprop/69 (268435456 (estimated locally),0.25 per call) pfe_idex_do_rx.constprop/68 (268435456 (estimated locally),0.25 per call) 
pfe_idex_request_frame/35 (pfe_idex_request_frame) @076686c0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: pfe_idex_request_send.constprop.0/67 (read)pfe_idex_request_finalize.isra.0/65 (write)pfe_idex_request_send.constprop.0/67 (write)pfe_idex_request_send.constprop.0/67 (write)pfe_idex_request_send.constprop.0/67 (write)pfe_idex_request_send.constprop.0/67 (addr)pfe_idex_rpc/47 (addr)pfe_idex_rpc/47 (write)pfe_idex_rpc/47 (write)pfe_idex_rpc/47 (addr)pfe_idex_request_finalize.isra.0/65 (read)pfe_idex_request_finalize.isra.0/65 (read)pfe_idex_request_finalize.isra.0/65 (write)pfe_idex_request_send.constprop.0/67 (addr)pfe_idex_request_send.constprop.0/67 (write)pfe_idex_request_send.constprop.0/67 (write)pfe_idex_request_send.constprop.0/67 (write)
  Availability: available
  Varpool flags:
pfe_idex_response_frame/34 (pfe_idex_response_frame) @07668630
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: pfe_idex_rpc/47 (read)pfe_idex_rpc/47 (read)pfe_idex_rpc/47 (addr)pfe_idex_rpc/47 (addr)pfe_idex_send_response/40 (write)pfe_idex_send_response/40 (write)pfe_idex_send_response/40 (write)pfe_idex_send_response/40 (addr)pfe_idex_rpc/47 (read)pfe_idex_rpc/47 (addr)pfe_idex_set_rpc_ret_val/48 (addr)pfe_idex_set_rpc_ret_val/48 (write)pfe_idex_set_rpc_ret_val/48 (write)pfe_idex_set_rpc_ret_val/48 (write)pfe_idex_set_rpc_ret_val/48 (addr)pfe_idex_request_send.constprop.0/67 (addr)
  Availability: available
  Varpool flags:
pfe_idex/33 (pfe_idex) @076685a0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_idex_do_tx_conf.isra.0.constprop.0/69 (addr)pfe_idex_fini/45 (read)pfe_idex_master_rpc/46 (read)pfe_idex_init/44 (write)pfe_idex_send_frame/42 (read)pfe_idex_fini/45 (write)pfe_idex_ihc_handler/36 (addr)pfe_idex_fini/45 (write)pfe_idex_ihc_handler/36 (addr)pfe_idex_do_rx.constprop.0/68 (addr)pfe_idex_fini/45 (read)pfe_idex_fini/45 (read)pfe_idex_fini/45 (write)pfe_idex_fini/45 (write)pfe_idex_fini/45 (write)pfe_idex_init/44 (addr)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_init/44 (write)pfe_idex_set_rpc_ret_val/48 (read)pfe_idex_set_rpc_ret_val/48 (read)pfe_idex_request_send.constprop.0/67 (read)pfe_idex_request_send.constprop.0/67 (write)
  Availability: available
  Varpool flags: initialized

;; Function pfe_idex_send_frame (pfe_idex_send_frame, funcdef_no=37, decl_uid=11910, cgraph_uid=38, symbol_order=42)

Modification phase of node pfe_idex_send_frame/42
Adjusting mask for param 1 to 0x1
Setting value range of param 1 [0, 1]
Setting nonnull for 2
pfe_idex_send_frame (pfe_ct_phy_if_id_t dst_phy, pfe_idex_frame_type_t type, const void * data, uint16_t data_len)
{
  struct hif_drv_sg_list_t sg_list;
  errno_t ret;
  struct pfe_idex_frame_header_t * idex_hdr_pa;
  struct pfe_idex_frame_header_t * idex_hdr;
  unsigned int data.5_1;
  unsigned int _2;
  unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  struct pfe_hif_drv_client_t * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  sg_list = {};
  # DEBUG BEGIN_STMT
  data.5_1 = (unsigned int) data_11(D);
  _2 = data.5_1 + 4294967294;
  idex_hdr_12 = (struct pfe_idex_frame_header_t *) _2;
  # DEBUG idex_hdr => idex_hdr_12
  # DEBUG BEGIN_STMT
  idex_hdr_12->dst_phy_if = dst_phy_13(D);
  # DEBUG BEGIN_STMT
  idex_hdr_12->type = type_15(D);
  # DEBUG BEGIN_STMT
  _3 = data.5_1 + 4294967278;
  idex_hdr_17 = (struct pfe_idex_frame_header_t *) _3;
  # DEBUG idex_hdr => idex_hdr_17
  # DEBUG BEGIN_STMT
  idex_hdr_pa_19 = oal_mm_virt_to_phys_contig (idex_hdr_17);
  # DEBUG idex_hdr_pa => idex_hdr_pa_19
  # DEBUG BEGIN_STMT
  if (idex_hdr_pa_19 == 0B)
    goto <bb 4>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  sg_list.size = 1;
  # DEBUG BEGIN_STMT
  sg_list.dst_phy = dst_phy_13(D);
  # DEBUG BEGIN_STMT
  sg_list.items[0].data_va = idex_hdr_17;
  # DEBUG BEGIN_STMT
  sg_list.items[0].data_pa = idex_hdr_pa_19;
  # DEBUG BEGIN_STMT
  _4 = (long unsigned int) data_len_24(D);
  _5 = _4 + 18;
  sg_list.items[0].len = _5;
  # DEBUG BEGIN_STMT
  _6 = pfe_idex.ihc_client;
  ret_27 = pfe_hif_drv_client_xmit_sg_pkt (_6, 0, &sg_list, idex_hdr_17);
  # DEBUG ret => ret_27
  # DEBUG BEGIN_STMT

  <bb 4> [local count: 1073741824]:
  # ret_7 = PHI <11(2), ret_27(3)>
  # DEBUG ret => ret_7
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  sg_list ={v} {CLOBBER};
  return ret_7;

}



;; Function pfe_idex_ihc_handler (pfe_idex_ihc_handler, funcdef_no=31, decl_uid=11921, cgraph_uid=32, symbol_order=36)

Modification phase of node pfe_idex_ihc_handler/36
pfe_idex_ihc_handler (struct pfe_hif_drv_client_t * client, void * arg, uint32_t event, uint32_t qno)
{
  errno_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  switch (event_3(D)) <default: <L3> [25.00%], case 1: <L0> [25.00%], case 2: <L1> [25.00%], case 3: <L6> [25.00%]>

  <bb 3> [local count: 268435456]:
<L0>:
  # DEBUG BEGIN_STMT
  pfe_idex_do_rx (client_5(D), &pfe_idex);
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 268435456]:
<L1>:
  # DEBUG BEGIN_STMT
  # DEBUG D#5 => &pfe_idex
  pfe_idex_do_tx_conf.isra.0 (client_5(D), &MEM[(void (*<Te3>) (void *) *)&pfe_idex + 12B]);
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 268435456]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT

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

}



;; Function pfe_idex_fini (pfe_idex_fini, funcdef_no=40, decl_uid=9781, cgraph_uid=41, symbol_order=45)

Modification phase of node pfe_idex_fini/45
pfe_idex_fini ()
{
  struct pfe_hif_t * _1;
  unsigned char _2;
  struct pfe_hif_t * _3;
  struct pfe_hif_drv_client_t * _4;

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

  <bb 3> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  _2 = pfe_hif_get_master_detect_cfg (_1);
  if (_2 == 1)
    goto <bb 4>; [20.24%]
  else
    goto <bb 5>; [79.76%]

  <bb 4> [local count: 116203862]:
  # DEBUG BEGIN_STMT
  _3 = pfe_idex.hif;
  pfe_hif_clear_master_up (_3);

  <bb 5> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  pfe_idex.hif = 0B;

  <bb 6> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  pfe_idex.rpc_cbk = 0B;
  # DEBUG BEGIN_STMT
  pfe_idex.rpc_cbk_arg = 0B;
  # DEBUG BEGIN_STMT
  pfe_idex.txc_free_cbk = 0B;
  # DEBUG BEGIN_STMT
  _4 = pfe_idex.ihc_client;
  if (_4 != 0B)
    goto <bb 7>; [53.47%]
  else
    goto <bb 8>; [46.53%]

  <bb 7> [local count: 574129754]:
  # DEBUG BEGIN_STMT
  pfe_hif_drv_client_unregister (_4);
  # DEBUG BEGIN_STMT
  pfe_idex.ihc_client = 0B;

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

}



;; Function pfe_idex_init (pfe_idex_init, funcdef_no=39, decl_uid=9762, cgraph_uid=40, symbol_order=44)

Modification phase of node pfe_idex_init/44
pfe_idex_init (struct pfe_hif_drv_t * hif_drv, pfe_ct_phy_if_id_t master, struct pfe_hif_t * hif, void (*pfe_idex_rpc_cbk_t) (pfe_ct_phy_if_id_t, uint32_t, void *, uint16_t, void *) cbk, void * arg, void (*pfe_idex_tx_conf_free_cbk_t) (void *) txcf_cbk)
{
  errno_t ret;
  long int _1;
  long unsigned int _2;
  struct pfe_hif_drv_client_t * _3;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG idex => &pfe_idex
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  memset (&pfe_idex, 0, 36);
  # DEBUG BEGIN_STMT
  _1 = oal_util_rand ();
  _2 = (long unsigned int) _1;
  pfe_idex.req_seq_num = _2;
  # DEBUG BEGIN_STMT
  pfe_idex.master_phy_if = master_10(D);
  # DEBUG BEGIN_STMT
  pfe_idex.cur_req_phy_id = 10;
  # DEBUG BEGIN_STMT
  pfe_idex.txc_free_cbk = txcf_cbk_13(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = pfe_hif_drv_ihc_client_register (hif_drv_15(D), pfe_idex_ihc_handler, 0B);
  pfe_idex.ihc_client = _3;
  # DEBUG BEGIN_STMT
  if (_3 == 0B)
    goto <bb 3>; [10.21%]
  else
    goto <bb 4>; [89.79%]

  <bb 3> [local count: 109629040]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_idex_fini ();
  # DEBUG BEGIN_STMT
  # DEBUG ret => 117
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 964112785]:
  # DEBUG BEGIN_STMT
  # DEBUG cbk => cbk_18(D)
  # DEBUG arg => arg_19(D)
  # DEBUG INLINE_ENTRY pfe_idex_set_rpc_cbk
  # DEBUG BEGIN_STMT
  # DEBUG idex => &pfe_idex
  # DEBUG BEGIN_STMT
  pfe_idex.rpc_cbk_arg = arg_19(D);
  # DEBUG BEGIN_STMT
  pfe_idex.rpc_cbk = cbk_18(D);
  # DEBUG BEGIN_STMT
  # DEBUG cbk => NULL
  # DEBUG arg => NULL
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  pfe_idex.hif = hif_20(D);

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

}



;; Function pfe_idex_rpc (pfe_idex_rpc, funcdef_no=42, decl_uid=9769, cgraph_uid=43, symbol_order=47)

Modification phase of node pfe_idex_rpc/47
pfe_idex_rpc (pfe_ct_phy_if_id_t dst_phy, uint32_t id, const void * buf, uint16_t buf_len, void * resp, uint16_t resp_len)
{
  uint16_t msg_plen;
  const uint16_t resp_buf_size;
  errno_t ret;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  long unsigned int _9;
  short unsigned int _10;
  unsigned int _11;
  short 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;
  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;
  short unsigned int _34;
  unsigned int _35;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  resp_buf_size_39 = resp_len_38(D) + 10;
  # DEBUG resp_buf_size => resp_buf_size_39
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  memset (&pfe_idex_response_frame, 0, 1538);
  # DEBUG BEGIN_STMT
  memset (&pfe_idex_request_frame, 0, 1538);
  # DEBUG BEGIN_STMT
  _1 = id_43(D) >> 24;
  _2 = id_43(D) >> 8;
  _3 = _2 & 65280;
  _4 = _1 | _3;
  _5 = id_43(D) << 8;
  _6 = _5 & 16711680;
  _7 = _4 | _6;
  _8 = id_43(D) << 24;
  _9 = _7 | _8;
  pfe_idex_request_frame.msg.rpc_id = _9;
  # DEBUG BEGIN_STMT
  _10 = buf_len_45(D) r>> 8;
  pfe_idex_request_frame.msg.plen = _10;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG payload => &pfe_idex_request_frame.arg
  # DEBUG BEGIN_STMT
  _11 = (unsigned int) buf_len_45(D);
  memcpy (&pfe_idex_request_frame.arg, buf_47(D), _11);
  # DEBUG BEGIN_STMT
  _12 = buf_len_45(D) + 10;
  ret_51 = pfe_idex_request_send (dst_phy_49(D), 1, _12, &pfe_idex_response_frame.msg_rpc, resp_buf_size_39);
  # DEBUG ret => ret_51
  # DEBUG BEGIN_STMT
  if (ret_51 != 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _13 = pfe_idex_response_frame.msg_rpc.rpc_id;
  _14 = _13 >> 24;
  _15 = _13 >> 8;
  _16 = _15 & 65280;
  _17 = _14 | _16;
  _18 = _13 << 8;
  _19 = _18 & 16711680;
  _20 = _17 | _19;
  _21 = _13 << 24;
  _22 = _20 | _21;
  if (_22 != id_43(D))
    goto <bb 7>; [51.11%]
  else
    goto <bb 4>; [48.89%]

  <bb 4> [local count: 262476189]:
  # DEBUG BEGIN_STMT
  _23 = pfe_idex_response_frame.msg_rpc.rpc_ret;
  _24 = (long unsigned int) _23;
  _25 = _24 >> 24;
  _26 = _24 >> 8;
  _27 = _26 & 65280;
  _28 = _25 | _27;
  _29 = _24 << 8;
  _30 = _29 & 16711680;
  _31 = _28 | _30;
  _32 = _24 << 24;
  _33 = _31 | _32;
  ret_52 = (errno_t) _33;
  # DEBUG ret => ret_52
  # DEBUG BEGIN_STMT
  _34 = pfe_idex_response_frame.msg_rpc.plen;
  msg_plen_53 = _34 r>> 8;
  # DEBUG msg_plen => msg_plen_53
  # DEBUG BEGIN_STMT
  if (msg_plen_53 == 0)
    goto <bb 7>; [50.00%]
  else
    goto <bb 5>; [50.00%]

  <bb 5> [local count: 131238094]:
  # DEBUG BEGIN_STMT
  if (resp_len_38(D) < msg_plen_53)
    goto <bb 7>; [52.23%]
  else
    goto <bb 6>; [47.77%]

  <bb 6> [local count: 62692438]:
  # DEBUG BEGIN_STMT
  # DEBUG payload => &pfe_idex_response_frame.ret
  # DEBUG BEGIN_STMT
  _35 = (unsigned int) msg_plen_53;
  memcpy (resp_54(D), &pfe_idex_response_frame.ret, _35);

  <bb 7> [local count: 1073741824]:
  # ret_36 = PHI <ret_51(2), 22(3), ret_52(4), 11(5), ret_52(6)>
  # DEBUG ret => ret_36
  # DEBUG BEGIN_STMT
  return ret_36;

}



;; Function pfe_idex_master_rpc (pfe_idex_master_rpc, funcdef_no=41, decl_uid=9775, cgraph_uid=42, symbol_order=46)

Modification phase of node pfe_idex_master_rpc/46
pfe_idex_master_rpc (uint32_t id, const void * buf, uint16_t buf_len, void * resp, uint16_t resp_len)
{
  <unnamed type> _1;
  errno_t _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG idex => &pfe_idex
  # DEBUG BEGIN_STMT
  _1 = pfe_idex.master_phy_if;
  _9 = pfe_idex_rpc (_1, id_3(D), buf_4(D), buf_len_5(D), resp_6(D), resp_len_7(D));
  return _9;

}



;; Function pfe_idex_set_rpc_ret_val (pfe_idex_set_rpc_ret_val, funcdef_no=43, decl_uid=9779, cgraph_uid=44, symbol_order=48)

Modification phase of node pfe_idex_set_rpc_ret_val/48
pfe_idex_set_rpc_ret_val (errno_t retval, void * resp, uint16_t resp_len)
{
  errno_t ret;
  struct pfe_idex_msg_rpc_t * rpc_req;
  struct pfe_idex_request_t * _1;
  unsigned int _2;
  unsigned int _3;
  long unsigned int _4;
  short unsigned int _5;
  long unsigned int retval.7_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;
  int _16;
  unsigned int _17;
  <unnamed type> _18;
  <unnamed type> _19;
  long unsigned int _20;
  short unsigned int _21;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG idex => &pfe_idex
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  memset (&pfe_idex_response_frame, 0, 1538);
  # DEBUG BEGIN_STMT
  _1 = pfe_idex.cur_req;
  _2 = (unsigned int) _1;
  _3 = _2 + 37;
  rpc_req_24 = (struct pfe_idex_msg_rpc_t *) _3;
  # DEBUG rpc_req => rpc_req_24
  # DEBUG BEGIN_STMT
  _4 = rpc_req_24->rpc_id;
  pfe_idex_response_frame.msg_rpc.rpc_id = _4;
  # DEBUG BEGIN_STMT
  _5 = resp_len_26(D) r>> 8;
  pfe_idex_response_frame.msg_rpc.plen = _5;
  # DEBUG BEGIN_STMT
  retval.7_6 = (long unsigned int) retval_28(D);
  _7 = retval.7_6 >> 24;
  _8 = retval.7_6 >> 8;
  _9 = _8 & 65280;
  _10 = _7 | _9;
  _11 = retval.7_6 << 8;
  _12 = _11 & 16711680;
  _13 = _10 | _12;
  _14 = retval.7_6 << 24;
  _15 = _13 | _14;
  _16 = (int) _15;
  pfe_idex_response_frame.msg_rpc.rpc_ret = _16;
  # DEBUG BEGIN_STMT
  # DEBUG payload => &pfe_idex_response_frame.ret
  # DEBUG BEGIN_STMT
  _17 = (unsigned int) resp_len_26(D);
  memcpy (&pfe_idex_response_frame.ret, resp_30(D), _17);
  # DEBUG BEGIN_STMT
  _18 = pfe_idex.cur_req_phy_id;
  _19 = _1->type;
  _20 = _1->seqnum;
  _21 = resp_len_26(D) + 10;
  ret_33 = pfe_idex_send_response (_18, _19, _20, _21);
  # DEBUG ret => ret_33
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  return ret_33;

}


