
IPA constant propagation start:
Determining dynamic type for call: match_8 = fci_fp_match_rule_by_criterion.isra.0.part.0 (ISRA.6_6(D), ISRA.7_7(D));
  Starting walk at: match_8 = fci_fp_match_rule_by_criterion.isra.0.part.0 (ISRA.6_6(D), ISRA.7_7(D));
  instance pointer: ISRA.6_6(D)  Outer instance pointer: ISRA.6_6(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: match_8 = fci_fp_match_rule_by_criterion.isra.0.part.0 (ISRA.6_6(D), ISRA.7_7(D));
  Starting walk at: match_8 = fci_fp_match_rule_by_criterion.isra.0.part.0 (ISRA.6_6(D), ISRA.7_7(D));
  instance pointer: ISRA.7_7(D)  Outer instance pointer: ISRA.7_7(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  Starting walk at: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  Starting walk at: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  instance pointer: table_name_11(D)  Outer instance pointer: table_name_11(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_15 = fci_fp_rule_get_next (_1, 1);
  Starting walk at: rule_15 = fci_fp_rule_get_next (_1, 1);
  instance pointer: _1  Outer instance pointer: fp_table_13 offset: 192 (bits) vtbl reference: 
  Function call may change dynamic type:fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
Determining dynamic type for call: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  Starting walk at: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  Starting walk at: fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  instance pointer: table_name_11(D)  Outer instance pointer: table_name_11(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_15 = fci_fp_rule_get_first (_1, 0, 0B, 1);
  Starting walk at: rule_15 = fci_fp_rule_get_first (_1, 0, 0B, 1);
  instance pointer: _1  Outer instance pointer: fp_table_13 offset: 192 (bits) vtbl reference: 
  Function call may change dynamic type:fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
Determining dynamic type for call: rule_15 = fci_fp_rule_get_first (_1, 0, 0B, 1);
  Starting walk at: rule_15 = fci_fp_rule_get_first (_1, 0, 0B, 1);
  instance pointer: 0B  Outer instance pointer: 0B offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
Determining dynamic type for call: rule_11 = fci_fp_rule_get_next (&fci_fp_rule_db, 0);
  Starting walk at: rule_11 = fci_fp_rule_get_next (&fci_fp_rule_db, 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_11 = fci_fp_rule_get_first (&fci_fp_rule_db, 0, 0B, 0);
  Starting walk at: rule_11 = fci_fp_rule_get_first (&fci_fp_rule_db, 0, 0B, 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_11 = fci_fp_rule_get_first (&fci_fp_rule_db, 0, 0B, 0);
  Starting walk at: rule_11 = fci_fp_rule_get_first (&fci_fp_rule_db, 0, 0B, 0);
  instance pointer: 0B  Outer instance pointer: 0B offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _5 = fci_fp_table_get_first (&fci_fp_table_db, crit_2(D), arg_3(D));
  Starting walk at: _5 = fci_fp_table_get_first (&fci_fp_table_db, crit_2(D), arg_3(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _5 = fci_fp_table_get_first (&fci_fp_table_db, crit_2(D), arg_3(D));
  Starting walk at: _5 = fci_fp_table_get_first (&fci_fp_table_db, crit_2(D), arg_3(D));
  instance pointer: arg_3(D)  Outer instance pointer: arg_3(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_7 = fci_fp_table_get_first (&fci_fp_table_db, 2, &addr);
  Starting walk at: fp_table_7 = fci_fp_table_get_first (&fci_fp_table_db, 2, &addr);
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_7 = fci_fp_table_get_first (&fci_fp_table_db, 2, &addr);
  Starting walk at: fp_table_7 = fci_fp_table_get_first (&fci_fp_table_db, 2, &addr);
  instance pointer: &addr  Outer instance pointer: addr offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_8 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_6(D));
  Starting walk at: fp_table_8 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_6(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_8 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_6(D));
  Starting walk at: fp_table_8 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_6(D));
  instance pointer: table_name_6(D)  Outer instance pointer: table_name_6(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Starting walk at: fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Starting walk at: fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  instance pointer: table_name_23(D)  Outer instance pointer: table_name_23(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  Starting walk at: next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  instance pointer: _9  Outer instance pointer: fp_table_25 offset: 192 (bits) vtbl reference: 
  Function call may change dynamic type:_2 = pfe_fp_create_table (class_26(D), _1);
  Function call may change dynamic type:fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Function call may change dynamic type:pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  Function call may change dynamic type:_11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
Determining dynamic type for call: next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  Starting walk at: next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  instance pointer: _8  Outer instance pointer: _8 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:_2 = pfe_fp_create_table (class_26(D), _1);
  Function call may change dynamic type:fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Function call may change dynamic type:pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  Function call may change dynamic type:_11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
Determining dynamic type for call: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Starting walk at: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  instance pointer: fp_table_25  Outer instance pointer: fp_table_25 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  Function call may change dynamic type:_2 = pfe_fp_create_table (class_26(D), _1);
  Function call may change dynamic type:fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Function call may change dynamic type:pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  Function call may change dynamic type:_11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
Determining dynamic type for call: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Starting walk at: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  instance pointer: next_rule_38  Outer instance pointer: next_rule_38 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  Function call may change dynamic type:_2 = pfe_fp_create_table (class_26(D), _1);
  Function call may change dynamic type:fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Function call may change dynamic type:pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  Function call may change dynamic type:_11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
Determining dynamic type for call: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Starting walk at: _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  instance pointer: &pos  Outer instance pointer: pos offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  Function call may change dynamic type:_2 = pfe_fp_create_table (class_26(D), _1);
  Function call may change dynamic type:fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  Function call may change dynamic type:pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  Function call may change dynamic type:_11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  Function call may change dynamic type:next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
Determining dynamic type for call: fp_table_5 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_3(D));
  Starting walk at: fp_table_5 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_3(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_5 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_3(D));
  Starting walk at: fp_table_5 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_3(D));
  instance pointer: table_name_3(D)  Outer instance pointer: table_name_3(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_12 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_10(D), 0);
  Starting walk at: rule_12 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_10(D), 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_12 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_10(D), 0);
  Starting walk at: rule_12 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_10(D), 0);
  instance pointer: rule_name_10(D)  Outer instance pointer: rule_name_10(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
  Starting walk at: rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
  Starting walk at: rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
  instance pointer: rule_name_26(D)  Outer instance pointer: rule_name_26(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_31 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_29(D));
  Starting walk at: fp_table_31 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_29(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
Determining dynamic type for call: fp_table_31 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_29(D));
  Starting walk at: fp_table_31 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_29(D));
  instance pointer: table_name_29(D)  Outer instance pointer: table_name_29(D) offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
Determining dynamic type for call: fp_table_22 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_20(D));
  Starting walk at: fp_table_22 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_20(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: fp_table_22 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_20(D));
  Starting walk at: fp_table_22 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_20(D));
  instance pointer: name_20(D)  Outer instance pointer: name_20(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _1 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_10(D));
  Starting walk at: _1 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_10(D));
  instance pointer: &fci_fp_table_db  Outer instance pointer: fci_fp_table_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _1 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_10(D));
  Starting walk at: _1 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_10(D));
  instance pointer: name_10(D)  Outer instance pointer: name_10(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_10 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_8(D), 0);
  Starting walk at: rule_10 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_8(D), 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: rule_10 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_8(D), 0);
  Starting walk at: rule_10 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_8(D), 0);
  instance pointer: name_8(D)  Outer instance pointer: name_8(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _1 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_21(D), 0);
  Starting walk at: _1 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_21(D), 0);
  instance pointer: &fci_fp_rule_db  Outer instance pointer: fci_fp_rule_db offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _1 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_21(D), 0);
  Starting walk at: _1 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_21(D), 0);
  instance pointer: name_21(D)  Outer instance pointer: name_21(D) offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _12 = fci_fp_match_table_by_criterion.isra.0 (_10, _11, fp_table_34);
  Starting walk at: _12 = fci_fp_match_table_by_criterion.isra.0 (_10, _11, fp_table_34);
  instance pointer: _11  Outer instance pointer: db_22(D) offset: 96 (bits) vtbl reference: 
  Function call may change dynamic type:strcpy (mem_30, arg_27(D));
  Function call may change dynamic type:mem_30 = oal_mm_malloc (_4);
  Function call may change dynamic type:oal_mm_free (_2);
Determining dynamic type for call: _12 = fci_fp_match_table_by_criterion.isra.0 (_10, _11, fp_table_34);
  Starting walk at: _12 = fci_fp_match_table_by_criterion.isra.0 (_10, _11, fp_table_34);
  instance pointer: fp_table_34  Outer instance pointer: fp_table_34 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:strcpy (mem_30, arg_27(D));
  Function call may change dynamic type:mem_30 = oal_mm_malloc (_4);
  Function call may change dynamic type:oal_mm_free (_2);
Determining dynamic type for call: _9 = fci_fp_match_rule_by_criterion.isra.0 (_7, _8, rule_12);
  Starting walk at: _9 = fci_fp_match_rule_by_criterion.isra.0 (_7, _8, rule_12);
  instance pointer: _8  Outer instance pointer: db_18(D) offset: 96 (bits) vtbl reference: 
Determining dynamic type for call: _9 = fci_fp_match_rule_by_criterion.isra.0 (_7, _8, rule_12);
  Starting walk at: _9 = fci_fp_match_rule_by_criterion.isra.0 (_7, _8, rule_12);
  instance pointer: rule_12  Outer instance pointer: rule_12 offset: 0 (bits) vtbl reference: 
Determining dynamic type for call: _12 = fci_fp_match_rule_by_criterion.isra.0 (_10, _11, rule_14);
  Starting walk at: _12 = fci_fp_match_rule_by_criterion.isra.0 (_10, _11, rule_14);
  instance pointer: _11  Outer instance pointer: db_23(D) offset: 96 (bits) vtbl reference: 
  Function call may change dynamic type:strcpy (mem_30, arg_28(D));
  Function call may change dynamic type:mem_30 = oal_mm_malloc (_4);
  Function call may change dynamic type:oal_mm_free (_2);
Determining dynamic type for call: _12 = fci_fp_match_rule_by_criterion.isra.0 (_10, _11, rule_14);
  Starting walk at: _12 = fci_fp_match_rule_by_criterion.isra.0 (_10, _11, rule_14);
  instance pointer: rule_14  Outer instance pointer: rule_14 offset: 0 (bits) vtbl reference: 
  Function call may change dynamic type:strcpy (mem_30, arg_28(D));
  Function call may change dynamic type:mem_30 = oal_mm_malloc (_4);
  Function call may change dynamic type:oal_mm_free (_2);

IPA structures before propagation:

Jump functions:
  Jump functions of caller  fci_fp_match_table_by_criterion.isra.0/55:
  Jump functions of caller  fci_fp_match_rule_by_criterion.isra.0.part.0/54:
  Jump functions of caller  fci_fp_match_rule_by_criterion.isra.0/53:
    callsite  fci_fp_match_rule_by_criterion.isra.0/53 -> fci_fp_match_rule_by_criterion.isra.0.part.0/54 : 
       param 0: PASS THROUGH: 1, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: PASS THROUGH: 2, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  pfe_fp_table_write_rule/52:
  Jump functions of caller  pfe_fp_destroy_table/51:
  Jump functions of caller  pfe_fp_create_table/50:
  Jump functions of caller  strcmp/49:
  Jump functions of caller  oal_mm_free/48:
  Jump functions of caller  strcpy/47:
  Jump functions of caller  oal_mm_malloc/46:
  Jump functions of caller  strlen/45:
  Jump functions of caller  memset/44:
  Jump functions of caller  fci_fp_db_get_table_next_rule/43:
    callsite  fci_fp_db_get_table_next_rule/43 -> fci_fp_rule_get_next/24 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
    callsite  fci_fp_db_get_table_next_rule/43 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_get_table_first_rule/42:
    callsite  fci_fp_db_get_table_first_rule/42 -> fci_fp_rule_get_first/23 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 1: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
       param 2: CONST: 0B
         value: 0x0, mask: 0xfffffff8
         Unknown VR
       param 3: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
    callsite  fci_fp_db_get_table_first_rule/42 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_get_next_rule/41:
    callsite  fci_fp_db_get_next_rule/41 -> fci_fp_rule_get_next/24 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_get_first_rule/40:
    callsite  fci_fp_db_get_first_rule/40 -> fci_fp_rule_get_first/23 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
       param 2: CONST: 0B
         value: 0x0, mask: 0xfffffff8
         Unknown VR
       param 3: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_get_first/39:
    callsite  fci_fp_db_get_first/39 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xff
         Unknown VR
       param 2: PASS THROUGH: 1, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_get_table_from_addr/38:
    callsite  fci_fp_db_get_table_from_addr/38 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 2
         value: 0x2, mask: 0x0
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
  Jump functions of caller  fci_fp_db_pop_table_from_hw/37:
    callsite  fci_fp_db_pop_table_from_hw/37 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_push_table_to_hw/36:
    callsite  fci_fp_db_push_table_to_hw/36 -> fci_fp_get_rule_pos_in_table/27 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
    callsite  fci_fp_db_push_table_to_hw/36 -> fci_fp_rule_get_first/23 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
    callsite  fci_fp_db_push_table_to_hw/36 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 1, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_get_table_dmem_addr/35:
    callsite  fci_fp_db_get_table_dmem_addr/35 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_remove_rule_from_table/34:
    callsite  fci_fp_db_remove_rule_from_table/34 -> fci_fp_rule_get_first/23 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_add_rule_to_table/33:
    callsite  fci_fp_db_add_rule_to_table/33 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xffffffff
         Unknown VR
    callsite  fci_fp_db_add_rule_to_table/33 -> fci_fp_rule_get_first/23 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 1, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_destroy_table/32:
    callsite  fci_fp_db_destroy_table/32 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_create_table/31:
    callsite  fci_fp_db_create_table/31 -> fci_fp_table_get_first/26 : 
       param 0: CONST: &fci_fp_table_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_db_destroy_rule/30:
    callsite  fci_fp_db_destroy_rule/30 -> fci_fp_rule_get_first/23 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_create_rule/29:
    callsite  fci_fp_db_create_rule/29 -> fci_fp_rule_get_first/23 : 
       param 0: CONST: &fci_fp_rule_db
         value: 0x0, mask: 0xfffffffc
         VR  ~[0, 0]
       param 1: CONST: 1
         value: 0x1, mask: 0x0
         Unknown VR
       param 2: PASS THROUGH: 0, op nop_expr, agg_preserved
         value: 0x0, mask: 0xffffffff
         Unknown VR
       param 3: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
  Jump functions of caller  fci_fp_db_init/28:
  Jump functions of caller  fci_fp_get_rule_pos_in_table/27:
  Jump functions of caller  fci_fp_table_get_first/26:
    callsite  fci_fp_table_get_first/26 -> fci_fp_match_table_by_criterion.isra.0/55 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_rule_get_next/24:
    callsite  fci_fp_rule_get_next/24 -> fci_fp_match_rule_by_criterion.isra.0/53 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR
  Jump functions of caller  fci_fp_rule_get_first/23:
    callsite  fci_fp_rule_get_first/23 -> fci_fp_match_rule_by_criterion.isra.0/53 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0xff
         Unknown VR
       param 1: UNKNOWN
         value: 0x0, mask: 0xffffffff
         VR  ~[0, 0]
       param 2: UNKNOWN
         value: 0x0, mask: 0xffffffff
         Unknown VR

 Propagating constants:

Not considering fci_fp_db_get_table_next_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_table_first_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_next_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_first_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_first for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_table_from_addr for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_pop_table_from_hw for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_push_table_to_hw for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_get_table_dmem_addr for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_remove_rule_from_table for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_add_rule_to_table for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_destroy_table for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_create_table for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_destroy_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_create_rule for cloning; -fipa-cp-clone disabled.
Not considering fci_fp_db_init for cloning; -fipa-cp-clone disabled.

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

IPA lattices after all propagation:

Lattices:
  Node: fci_fp_match_table_by_criterion.isra.0/55:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         const uint32_t * ~[0B, 0B]
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: fci_fp_match_rule_by_criterion.isra.0.part.0/54:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         char_t * const * ~[0B, 0B]
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: fci_fp_match_rule_by_criterion.isra.0/53:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [1]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         char_t * const * ~[0B, 0B]
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: fci_fp_db_get_table_next_rule/43:
    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: fci_fp_db_get_table_first_rule/42:
    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: fci_fp_db_get_next_rule/41:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_get_first_rule/40:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_get_first/39:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_get_table_from_addr/38:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_pop_table_from_hw/37:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_push_table_to_hw/36:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_get_table_dmem_addr/35:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_remove_rule_from_table/34:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_add_rule_to_table/33:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [2]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_destroy_table/32:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
    param [1]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_create_table/31:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_destroy_rule/30:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: fci_fp_db_create_rule/29:
    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: fci_fp_db_init/28:
  Node: fci_fp_get_rule_pos_in_table/27:
    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)
         uint8_t * ~[0B, 0B]
        AGGS VARIABLE
  Node: fci_fp_table_get_first/26:
    param [0]: &fci_fp_table_db [loc_time: 0, loc_size: 0, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0xfffffffc
         struct fci_fp_table_db_t * ~[0B, 0B]
        AGGS VARIABLE
    param [1]: VARIABLE
               2 [loc_time: 6, loc_size: 36, prop_time: 0, prop_size: 0]
               1 [loc_time: 6, loc_size: 47, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [2]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: fci_fp_rule_get_next/24:
    param [0]: VARIABLE
               &fci_fp_rule_db [loc_time: 1, loc_size: 28, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         struct fci_fp_rule_db_t * ~[0B, 0B]
        AGGS VARIABLE
    param [1]: 0 [loc_time: 15, loc_size: 25, prop_time: 0, prop_size: 0]
               1 [loc_time: 15, loc_size: 25, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x1, mask = 0x1
         dbase_t [0, 1]
        AGGS VARIABLE
  Node: fci_fp_rule_get_first/23:
    param [0]: VARIABLE
               &fci_fp_rule_db [loc_time: 1, loc_size: 56, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         struct fci_fp_rule_db_t * ~[0B, 0B]
        AGGS VARIABLE
    param [1]: 1 [loc_time: 3, loc_size: 50, prop_time: 0, prop_size: 0]
               0 [loc_time: 3, loc_size: 37, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x0, mask = 0x1
         fci_fp_rule_criterion_t [0, 1]
        AGGS VARIABLE
    param [2]: VARIABLE
               0B [loc_time: 1, loc_size: 56, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
    param [3]: 0 [loc_time: 11, loc_size: 53, prop_time: 0, prop_size: 0]
               1 [loc_time: 11, loc_size: 53, prop_time: 0, prop_size: 0]
         ctxs: VARIABLE
         Bits: value = 0x1, mask = 0x1
         dbase_t [0, 1]
        AGGS VARIABLE

IPA decision stage:

 - Creating a specialized node of fci_fp_table_get_first/26 for all known contexts.
    replacing param #0 db with const &fci_fp_table_db
Propagated bits info for function fci_fp_table_get_first.constprop/56:
 param 0: value = 0x0, mask = 0xfffffffc
Propagated bits info for function fci_fp_table_get_first/26:
 param 0: value = 0x0, mask = 0xfffffffc
Propagated bits info for function fci_fp_rule_get_next/24:
 param 1: value = 0x1, mask = 0x1
Propagated bits info for function fci_fp_rule_get_first/23:
 param 1: value = 0x0, mask = 0x1
 param 3: value = 0x1, mask = 0x1

IPA constant propagation end

Reclaiming functions: fci_fp_table_get_first/26
Reclaiming variables:
Clearing address taken flags:
Symbol table:

fci_fp_table_get_first.constprop.0/56 (fci_fp_table_get_first.constprop) @0737b7e0
  Type: function definition analyzed
  Visibility:
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Clone of fci_fp_table_get_first/26
  Availability: local
  Function flags: count:168457994 (estimated locally) local optimize_size
  Called by: fci_fp_db_create_table/31 (1073741824 (estimated locally),1.00 per call) fci_fp_db_destroy_table/32 (251719693 (estimated locally),1.00 per call) fci_fp_db_add_rule_to_table/33 (245672129 (estimated locally),0.23 per call) fci_fp_db_get_table_dmem_addr/35 (1073741824 (estimated locally),1.00 per call) fci_fp_db_push_table_to_hw/36 (178601069 (estimated locally),1.00 per call) fci_fp_db_pop_table_from_hw/37 (1073741824 (estimated locally),1.00 per call) fci_fp_db_get_table_from_addr/38 (512926469 (estimated locally),0.48 per call) fci_fp_db_get_first/39 (1073741824 (estimated locally),1.00 per call) fci_fp_db_get_table_first_rule/42 (1073741824 (estimated locally),1.00 per call) fci_fp_db_get_table_next_rule/43 (1073741824 (estimated locally),1.00 per call) 
  Calls: oal_mm_free/48 (30625326 (estimated locally),0.18 per call) strlen/45 (42114499 (estimated locally),0.25 per call) oal_mm_malloc/46 (42114499 (estimated locally),0.25 per call) strcpy/47 (31072077 (estimated locally),0.18 per call) fci_fp_match_table_by_criterion.isra.0/55 (710280218 (estimated locally),4.22 per call) 
fci_fp_match_table_by_criterion.isra.0/55 (fci_fp_match_table_by_criterion.isra.0) @06d2a620
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_fp_table_get_first.constprop/56 (710280218 (estimated locally),4.22 per call) 
  Calls: strcmp/49 (268435456 (estimated locally),0.25 per call) 
fci_fp_match_rule_by_criterion.isra.0.part.0/54 (fci_fp_match_rule_by_criterion.isra.0.part.0) @06d2aee0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: fci_fp_match_rule_by_criterion.isra.0/53 (357913944 (estimated locally),0.33 per call) 
  Calls: strcmp/49 (1073741824 (estimated locally),1.00 per call) 
fci_fp_match_rule_by_criterion.isra.0/53 (fci_fp_match_rule_by_criterion.isra.0) @06adf0e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: fci_fp_rule_get_next/24 (710280217 (estimated locally),5.24 per call) fci_fp_rule_get_first/23 (710280217 (estimated locally),3.57 per call) 
  Calls: fci_fp_match_rule_by_criterion.isra.0.part.0/54 (357913944 (estimated locally),0.33 per call) 
pfe_fp_table_write_rule/52 (pfe_fp_table_write_rule) @074e2540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_db_push_table_to_hw/36 (994695672 (estimated locally),5.57 per call) 
  Calls: 
pfe_fp_destroy_table/51 (pfe_fp_destroy_table) @074e2460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_db_pop_table_from_hw/37 (731110809 (estimated locally),0.68 per call) fci_fp_db_push_table_to_hw/36 (19503135 (estimated locally),0.11 per call) fci_fp_db_push_table_to_hw/36 (20244068 (estimated locally),0.11 per call) 
  Calls: 
pfe_fp_create_table/50 (pfe_fp_create_table) @074e2380
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_db_push_table_to_hw/36 (121609468 (estimated locally),0.68 per call) 
  Calls: 
strcmp/49 (strcmp) @074557e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_match_table_by_criterion.isra.0/55 (268435456 (estimated locally),0.25 per call) fci_fp_match_rule_by_criterion.isra.0.part.0/54 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
oal_mm_free/48 (oal_mm_free) @07455620
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_table_get_first.constprop/56 (30625326 (estimated locally),0.18 per call) fci_fp_db_destroy_table/32 (168730858 (estimated locally),0.67 per call) fci_fp_db_destroy_rule/30 (245672129 (estimated locally),0.23 per call) fci_fp_rule_get_first/23 (36189897 (estimated locally),0.18 per call) 
  Calls: 
strcpy/47 (strcpy) @074552a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_table_get_first.constprop/56 (31072077 (estimated locally),0.18 per call) fci_fp_db_create_table/31 (205880803 (estimated locally),0.19 per call) fci_fp_db_create_rule/29 (53099908 (estimated locally),0.05 per call) fci_fp_db_create_rule/29 (229869733 (estimated locally),0.21 per call) fci_fp_rule_get_first/23 (48952200 (estimated locally),0.25 per call) 
  Calls: 
oal_mm_malloc/46 (oal_mm_malloc) @074551c0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_table_get_first.constprop/56 (42114499 (estimated locally),0.25 per call) fci_fp_db_create_table/31 (302365698 (estimated locally),0.28 per call) fci_fp_db_create_rule/29 (337596907 (estimated locally),0.31 per call) fci_fp_rule_get_first/23 (66348874 (estimated locally),0.33 per call) 
  Calls: 
strlen/45 (strlen) @074550e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_table_get_first.constprop/56 (42114499 (estimated locally),0.25 per call) fci_fp_db_create_table/31 (302365698 (estimated locally),0.28 per call) fci_fp_db_create_rule/29 (53099908 (estimated locally),0.05 per call) fci_fp_db_create_rule/29 (118158917 (estimated locally),0.11 per call) fci_fp_db_create_rule/29 (337596907 (estimated locally),0.31 per call) fci_fp_rule_get_first/23 (66348874 (estimated locally),0.33 per call) 
  Calls: 
memset/44 (memset) @07447a80
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: fci_fp_db_create_table/31 (205880803 (estimated locally),0.19 per call) fci_fp_db_create_rule/29 (229869733 (estimated locally),0.21 per call) fci_fp_db_init/28 (1073741824 (estimated locally),1.00 per call) fci_fp_db_init/28 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
fci_fp_db_get_table_next_rule/43 (fci_fp_db_get_table_next_rule) @07447ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_rule_get_next/24 (731110809 (estimated locally),0.68 per call) fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_get_table_first_rule/42 (fci_fp_db_get_table_first_rule) @07447c40
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_rule_get_first/23 (731110809 (estimated locally),0.68 per call) fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_get_next_rule/41 (fci_fp_db_get_next_rule) @074479a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_rule_get_next/24 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_get_first_rule/40 (fci_fp_db_get_first_rule) @07447700
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_rule_get_first/23 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_get_first/39 (fci_fp_db_get_first) @07447460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_get_table_from_addr/38 (fci_fp_db_get_table_from_addr) @074471c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_table_get_first.constprop/56 (512926469 (estimated locally),0.48 per call) 
fci_fp_db_pop_table_from_hw/37 (fci_fp_db_pop_table_from_hw) @0742eee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_fp_destroy_table/51 (731110809 (estimated locally),0.68 per call) fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_push_table_to_hw/36 (fci_fp_db_push_table_to_hw) @0742e9a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:178601069 (estimated locally) body optimize_size
  Called by: 
  Calls: pfe_fp_table_write_rule/52 (994695672 (estimated locally),5.57 per call) pfe_fp_destroy_table/51 (19503135 (estimated locally),0.11 per call) fci_fp_get_rule_pos_in_table/27 (532872537 (estimated locally),2.98 per call) pfe_fp_destroy_table/51 (20244068 (estimated locally),0.11 per call) fci_fp_rule_get_first/23 (553116605 (estimated locally),3.10 per call) pfe_fp_create_table/50 (121609468 (estimated locally),0.68 per call) fci_fp_table_get_first.constprop/56 (178601069 (estimated locally),1.00 per call) 
fci_fp_db_get_table_dmem_addr/35 (fci_fp_db_get_table_dmem_addr) @0742ee00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_remove_rule_from_table/34 (fci_fp_db_remove_rule_from_table) @0742eb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_rule_get_first/23 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_add_rule_to_table/33 (fci_fp_db_add_rule_to_table) @0742e8c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: 
  Calls: fci_fp_table_get_first.constprop/56 (245672129 (estimated locally),0.23 per call) fci_fp_rule_get_first/23 (1073741823 (estimated locally),1.00 per call) 
fci_fp_db_destroy_table/32 (fci_fp_db_destroy_table) @0742e460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)
  Referring: 
  Availability: available
  Function flags: count:251719693 (estimated locally) body optimize_size
  Called by: 
  Calls: oal_mm_free/48 (168730858 (estimated locally),0.67 per call) fci_fp_table_get_first.constprop/56 (251719693 (estimated locally),1.00 per call) 
fci_fp_db_create_table/31 (fci_fp_db_create_table) @0742e000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_table_db/21 (addr)fci_fp_table_db/21 (read)fci_fp_table_db/21 (addr)fci_fp_table_db/21 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: strcpy/47 (205880803 (estimated locally),0.19 per call) memset/44 (205880803 (estimated locally),0.19 per call) oal_mm_malloc/46 (302365698 (estimated locally),0.28 per call) strlen/45 (302365698 (estimated locally),0.28 per call) fci_fp_table_get_first.constprop/56 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_destroy_rule/30 (fci_fp_db_destroy_rule) @0741eb60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: oal_mm_free/48 (245672129 (estimated locally),0.23 per call) fci_fp_rule_get_first/23 (1073741824 (estimated locally),1.00 per call) 
fci_fp_db_create_rule/29 (fci_fp_db_create_rule) @0741e0e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)fci_fp_rule_db/20 (read)fci_fp_rule_db/20 (addr)fci_fp_rule_db/20 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: 
  Calls: strcpy/47 (53099908 (estimated locally),0.05 per call) strlen/45 (53099908 (estimated locally),0.05 per call) strcpy/47 (229869733 (estimated locally),0.21 per call) memset/44 (229869733 (estimated locally),0.21 per call) oal_mm_malloc/46 (337596907 (estimated locally),0.31 per call) strlen/45 (118158917 (estimated locally),0.11 per call) strlen/45 (337596907 (estimated locally),0.31 per call) fci_fp_rule_get_first/23 (761725873 (estimated locally),0.71 per call) 
fci_fp_db_init/28 (fci_fp_db_init) @0741ed20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: fci_fp_rule_db/20 (addr)fci_fp_table_db/21 (addr)fci_fp_table_db/21 (write)fci_fp_table_db/21 (addr)fci_fp_table_db/21 (write)fci_fp_table_db/21 (addr)fci_fp_rule_db/20 (write)fci_fp_rule_db/20 (addr)fci_fp_rule_db/20 (write)fci_fp_rule_db/20 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: memset/44 (1073741824 (estimated locally),1.00 per call) memset/44 (1073741824 (estimated locally),1.00 per call) 
fci_fp_get_rule_pos_in_table/27 (fci_fp_get_rule_pos_in_table) @0741ea80
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:114863532 (estimated locally) body local optimize_size
  Called by: fci_fp_db_push_table_to_hw/36 (532872537 (estimated locally),2.98 per call) 
  Calls: 
fci_fp_table_get_first/26 (fci_fp_table_get_first) @0741e700
  Type: function
  Body removed by symtab_remove_unreachable_nodes
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: not_available
  Function flags: count:168457994 (estimated locally) body optimize_size
  Called by: 
  Calls: 
fci_fp_rule_get_next/24 (fci_fp_rule_get_next) @0741e000
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:135488924 (estimated locally) body local optimize_size
  Called by: fci_fp_db_get_table_next_rule/43 (731110809 (estimated locally),0.68 per call) fci_fp_db_get_next_rule/41 (1073741824 (estimated locally),1.00 per call) 
  Calls: fci_fp_match_rule_by_criterion.isra.0/53 (710280217 (estimated locally),5.24 per call) 
fci_fp_rule_get_first/23 (fci_fp_rule_get_first) @0737bd20
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: 
  Availability: local
  Function flags: count:199066530 (estimated locally) body local optimize_size
  Called by: fci_fp_db_get_table_first_rule/42 (731110809 (estimated locally),0.68 per call) fci_fp_db_get_first_rule/40 (1073741824 (estimated locally),1.00 per call) fci_fp_db_push_table_to_hw/36 (553116605 (estimated locally),3.10 per call) fci_fp_db_remove_rule_from_table/34 (1073741824 (estimated locally),1.00 per call) fci_fp_db_add_rule_to_table/33 (1073741823 (estimated locally),1.00 per call) fci_fp_db_destroy_rule/30 (1073741824 (estimated locally),1.00 per call) fci_fp_db_create_rule/29 (761725873 (estimated locally),0.71 per call) 
  Calls: fci_fp_match_rule_by_criterion.isra.0/53 (710280217 (estimated locally),3.57 per call) strcpy/47 (48952200 (estimated locally),0.25 per call) oal_mm_malloc/46 (66348874 (estimated locally),0.33 per call) strlen/45 (66348874 (estimated locally),0.33 per call) oal_mm_free/48 (36189897 (estimated locally),0.18 per call) 
fci_fp_table_db/21 (fci_fp_table_db) @07419630
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: fci_fp_db_get_table_dmem_addr/35 (addr)fci_fp_db_push_table_to_hw/36 (addr)fci_fp_db_pop_table_from_hw/37 (addr)fci_fp_db_get_table_from_addr/38 (addr)fci_fp_db_get_first/39 (addr)fci_fp_db_init/28 (addr)fci_fp_db_init/28 (write)fci_fp_db_init/28 (addr)fci_fp_db_init/28 (write)fci_fp_db_get_table_first_rule/42 (addr)fci_fp_db_init/28 (addr)fci_fp_db_create_table/31 (write)fci_fp_db_destroy_table/32 (addr)fci_fp_db_add_rule_to_table/33 (addr)fci_fp_db_create_table/31 (addr)fci_fp_db_create_table/31 (read)fci_fp_db_create_table/31 (addr)fci_fp_db_get_table_next_rule/43 (addr)fci_fp_table_get_first.constprop.0/56 (addr)
  Availability: available
  Varpool flags:
fci_fp_rule_db/20 (fci_fp_rule_db) @074195a0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: fci_fp_db_init/28 (addr)fci_fp_db_create_rule/29 (write)fci_fp_db_destroy_rule/30 (addr)fci_fp_db_add_rule_to_table/33 (addr)fci_fp_db_remove_rule_from_table/34 (addr)fci_fp_db_init/28 (addr)fci_fp_db_init/28 (write)fci_fp_db_init/28 (addr)fci_fp_db_init/28 (write)fci_fp_db_get_first_rule/40 (addr)fci_fp_db_create_rule/29 (addr)fci_fp_db_create_rule/29 (read)fci_fp_db_create_rule/29 (addr)fci_fp_db_get_next_rule/41 (addr)
  Availability: available
  Varpool flags:

;; Function fci_fp_rule_get_first (fci_fp_rule_get_first, funcdef_no=18, decl_uid=11291, cgraph_uid=19, symbol_order=23)

Modification phase of node fci_fp_rule_get_first/23
Adjusting mask for param 1 to 0x1
Adjusting mask for param 3 to 0x1
Setting nonnull for 0
Setting value range of param 1 [0, 1]
Setting value range of param 3 [0, 1]
fci_fp_rule_get_first (struct fci_fp_rule_db_t * db, fci_fp_rule_criterion_t crit, void * arg, dbase_t dbase)
{
  char_t * mem;
  bool_t match;
  struct fci_fp_rule_t * rule;
  struct LLIST_t * item;
  <unnamed type> _1;
  char_t * _2;
  unsigned int _3;
  unsigned int _4;
  struct LLIST_Struct * _5;
  struct LLIST_t * _6;
  int _7;
  int _8;
  struct LLIST_Struct * _9;
  <unnamed type> _10;
  union fci_fp_rule_criterion_arg_t * _11;
  unsigned char _12;

  <bb 2> [local count: 199066530]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG cur_crit_remember_success => 1
  # DEBUG BEGIN_STMT
  _1 = db_23(D)->cur_crit;
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 5>; [66.00%]

  <bb 3> [local count: 67682620]:
  # DEBUG BEGIN_STMT
  _2 = db_23(D)->cur_crit_arg.name;
  if (_2 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 36189897]:
  # DEBUG BEGIN_STMT
  oal_mm_free (_2);
  # DEBUG BEGIN_STMT
  db_23(D)->cur_crit_arg.name = 0B;

  <bb 5> [local count: 199066530]:
  # DEBUG BEGIN_STMT
  db_23(D)->cur_crit = crit_26(D);
  # DEBUG BEGIN_STMT
  switch (crit_26(D)) <default: <L31> [33.33%], case 0: <L32> [33.33%], case 1: <L5> [33.33%]>

  <bb 6> [local count: 66348874]:
<L5>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = strlen (arg_28(D));
  _4 = _3 + 1;
  mem_30 = oal_mm_malloc (_4);
  # DEBUG mem => mem_30
  # DEBUG BEGIN_STMT
  if (mem_30 == 0B)
    goto <bb 18>; [26.22%]
  else
    goto <bb 7>; [73.78%]

  <bb 7> [local count: 48952200]:
  # DEBUG BEGIN_STMT
  db_23(D)->cur_crit_arg.name = mem_30;
  # DEBUG BEGIN_STMT
  strcpy (mem_30, arg_28(D));
  # DEBUG cur_crit_remember_success => 1
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 115301074]:
<L32>:
  # DEBUG cur_crit_remember_success => NULL
  # DEBUG BEGIN_STMT
  _5 = db_23(D)->rules.prNext;
  _6 = &db_23(D)->rules;
  if (_5 != _6)
    goto <bb 19>; [85.10%]
  else
    goto <bb 18>; [14.90%]

  <bb 19> [local count: 98121214]:
  goto <bb 15>; [100.00%]

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

  <bb 10> [local count: 507343012]:
  # DEBUG BEGIN_STMT
  _7 = item_13 - 4B;
  rule_36 = (struct fci_fp_rule_t *) _7;
  # DEBUG rule => rule_36
  goto <bb 12>; [100.00%]

  <bb 11> [local count: 507343012]:
  # DEBUG BEGIN_STMT
  _8 = item_13 - 12B;
  rule_35 = (struct fci_fp_rule_t *) _8;
  # DEBUG rule => rule_35

  <bb 12> [local count: 1014686024]:
  # rule_14 = PHI <rule_36(10), rule_35(11)>
  # DEBUG rule => rule_14
  # DEBUG BEGIN_STMT
  _9 = item_13->prNext;
  db_23(D)->cur_item = _9;
  # DEBUG BEGIN_STMT
  if (rule_14 != 0B)
    goto <bb 13>; [70.00%]
  else
    goto <bb 14>; [30.00%]

  <bb 13> [local count: 710280217]:
  # DEBUG BEGIN_STMT
  _10 = db_23(D)->cur_crit;
  _11 = &db_23(D)->cur_crit_arg;
  # DEBUG D#1 => _11
  # DEBUG D#2 => rule_14
  _12 = fci_fp_match_rule_by_criterion.isra.0 (_10, _11, rule_14);
  if (_12 == 1)
    goto <bb 16>; [5.50%]
  else
    goto <bb 14>; [94.50%]

  <bb 14> [local count: 975620612]:
  # DEBUG BEGIN_STMT
  item_38 = item_13->prNext;
  # DEBUG item => item_38

  <bb 15> [local count: 1073741824]:
  # item_13 = PHI <item_38(14), _5(19)>
  # rule_15 = PHI <rule_14(14), rule_33(D)(19)>
  # DEBUG rule => rule_15
  # DEBUG item => item_13
  # DEBUG BEGIN_STMT
  if (_6 != item_13)
    goto <bb 9>; [94.50%]
  else
    goto <bb 16>; [5.50%]

  <bb 16> [local count: 98121212]:
  # rule_16 = PHI <rule_14(13), rule_15(15)>
  # match_18 = PHI <1(13), 0(15)>
  # DEBUG match => match_18
  # DEBUG rule => rule_16
  # DEBUG BEGIN_STMT
  if (match_18 != 1)
    goto <bb 17>; [44.22%]
  else
    goto <bb 18>; [55.78%]

  <bb 17> [local count: 43389200]:

  <bb 18> [local count: 199046622]:
  # rule_17 = PHI <rule_16(16), 0B(8), 0B(17), 0B(6), 0B(5)>
<L31>:
  # DEBUG cur_crit_remember_success => NULL
  # DEBUG match => NULL
  # DEBUG rule => rule_17
  # DEBUG BEGIN_STMT
  return rule_17;

}



;; Function fci_fp_table_get_first.constprop (fci_fp_table_get_first.constprop.0, funcdef_no=42, decl_uid=11827, cgraph_uid=52, symbol_order=56)

Modification phase of node fci_fp_table_get_first.constprop/56
fci_fp_table_get_first.constprop (fci_fp_table_criterion_t crit, void * arg)
{
  struct LLIST_t * item;
  struct fci_fp_table_t * fp_table;
  bool_t match;
  char_t * mem;
  struct fci_fp_table_db_t * db;
  <unnamed type> _1;
  char_t * _2;
  unsigned int _5;
  unsigned int _6;
  long unsigned int _8;
  struct LLIST_Struct * _9;
  struct LLIST_t * _10;
  int _12;
  struct LLIST_Struct * _14;
  <unnamed type> _15;
  union fci_fp_table_criterion_arg_t * _16;
  unsigned char _17;

  <bb 18> [local count: 168457994]:
  # DEBUG db => &fci_fp_table_db

  <bb 2> [local count: 168457994]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG match => 0
  # DEBUG BEGIN_STMT
  # DEBUG cur_crit_remember_success => 1
  # DEBUG BEGIN_STMT
  _1 = fci_fp_table_db.cur_crit;
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 5>; [66.00%]

  <bb 3> [local count: 57275718]:
  # DEBUG BEGIN_STMT
  _2 = fci_fp_table_db.cur_crit_arg.name;
  if (_2 != 0B)
    goto <bb 4>; [53.47%]
  else
    goto <bb 5>; [46.53%]

  <bb 4> [local count: 30625326]:
  # DEBUG BEGIN_STMT
  oal_mm_free (_2);
  # DEBUG BEGIN_STMT
  fci_fp_table_db.cur_crit_arg.name = 0B;

  <bb 5> [local count: 168457994]:
  # DEBUG BEGIN_STMT
  fci_fp_table_db.cur_crit = crit_3(D);
  # DEBUG BEGIN_STMT
  switch (crit_3(D)) <default: <L3> [25.00%], case 0: <L2> [25.00%], case 1: <L0> [25.00%], case 2: <L1> [25.00%]>

  <bb 6> [local count: 42114499]:
<L0>:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = strlen (arg_4(D));
  _6 = _5 + 1;
  mem_7 = oal_mm_malloc (_6);
  # DEBUG mem => mem_7
  # DEBUG BEGIN_STMT
  if (mem_7 == 0B)
    goto <bb 17>; [26.22%]
  else
    goto <bb 7>; [73.78%]

  <bb 7> [local count: 31072077]:
  # DEBUG BEGIN_STMT
  fci_fp_table_db.cur_crit_arg.name = mem_7;
  # DEBUG BEGIN_STMT
  strcpy (mem_7, arg_4(D));
  # DEBUG cur_crit_remember_success => 1
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 42114499]:
<L1>:
  # DEBUG BEGIN_STMT
  _8 = MEM[(uint32_t *)arg_4(D)];
  fci_fp_table_db.cur_crit_arg.address = _8;
  # DEBUG BEGIN_STMT
  # DEBUG cur_crit_remember_success => 1
  # DEBUG BEGIN_STMT

  <bb 9> [local count: 115301074]:
<L2>:
  # DEBUG cur_crit_remember_success => NULL
  # DEBUG BEGIN_STMT
  _9 = fci_fp_table_db.tables.prNext;
  _10 = &fci_fp_table_db.tables;
  if (_9 != _10)
    goto <bb 10>; [85.10%]
  else
    goto <bb 17>; [14.90%]

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

  <bb 11> [local count: 1014686024]:
  # DEBUG BEGIN_STMT
  _12 = item_11 - 16B;
  fp_table_13 = (struct fci_fp_table_t *) _12;
  # DEBUG fp_table => fp_table_13
  # DEBUG BEGIN_STMT
  _14 = item_11->prNext;
  fci_fp_table_db.cur_item = _14;
  # DEBUG BEGIN_STMT
  if (item_11 != 16B)
    goto <bb 12>; [70.00%]
  else
    goto <bb 13>; [30.00%]

  <bb 12> [local count: 710280218]:
  # DEBUG BEGIN_STMT
  _15 = fci_fp_table_db.cur_crit;
  _16 = &fci_fp_table_db.cur_crit_arg;
  # DEBUG D#5 => _16
  _17 = fci_fp_match_table_by_criterion.isra.0 (_15, _16, fp_table_13);
  if (_17 == 1)
    goto <bb 15>; [5.50%]
  else
    goto <bb 13>; [94.50%]

  <bb 13> [local count: 975620613]:
  # DEBUG BEGIN_STMT
  item_18 = item_11->prNext;
  # DEBUG item => item_18

  <bb 14> [local count: 1073741824]:
  # item_11 = PHI <_9(10), item_18(13)>
  # fp_table_21 = PHI <fp_table_22(D)(10), fp_table_13(13)>
  # DEBUG fp_table => fp_table_21
  # DEBUG item => item_11
  # DEBUG BEGIN_STMT
  if (_10 != item_11)
    goto <bb 11>; [94.50%]
  else
    goto <bb 15>; [5.50%]

  <bb 15> [local count: 98121212]:
  # fp_table_23 = PHI <fp_table_13(12), fp_table_21(14)>
  # match_19 = PHI <1(12), 0(14)>
  # DEBUG match => match_19
  # DEBUG fp_table => fp_table_23
  # DEBUG BEGIN_STMT
  if (match_19 != 1)
    goto <bb 16>; [44.22%]
  else
    goto <bb 17>; [55.78%]

  <bb 16> [local count: 43389200]:

  <bb 17> [local count: 168457993]:
  # fp_table_20 = PHI <0B(5), 0B(6), 0B(9), fp_table_23(15), 0B(16)>
<L3>:
  # DEBUG cur_crit_remember_success => NULL
  # DEBUG match => NULL
  # DEBUG fp_table => fp_table_20
  # DEBUG BEGIN_STMT
  return fp_table_20;

}



;; Function fci_fp_rule_get_next (fci_fp_rule_get_next, funcdef_no=19, decl_uid=11294, cgraph_uid=20, symbol_order=24)

Modification phase of node fci_fp_rule_get_next/24
Adjusting mask for param 1 to 0x1
Setting nonnull for 0
Setting value range of param 1 [0, 1]
fci_fp_rule_get_next (struct fci_fp_rule_db_t * db, dbase_t dbase)
{
  struct fci_fp_rule_t * rule;
  struct LLIST_Struct * _1;
  struct LLIST_t * _2;
  struct LLIST_t * _3;
  int _4;
  int _5;
  struct LLIST_Struct * _6;
  <unnamed type> _7;
  union fci_fp_rule_criterion_arg_t * _8;
  unsigned char _9;
  struct LLIST_t * _10;

  <bb 2> [local count: 135488924]:
  # DEBUG BEGIN_STMT
  # DEBUG rule => 0B
  # DEBUG BEGIN_STMT
  _1 = db_18(D)->rules.prNext;
  _2 = &db_18(D)->rules;
  if (_1 != _2)
    goto <bb 3>; [85.10%]
  else
    goto <bb 11>; [14.90%]

  <bb 3> [local count: 115301074]:
  # DEBUG BEGIN_STMT
  _3 = db_18(D)->cur_item;
  if (_2 == _3)
    goto <bb 11>; [14.90%]
  else
    goto <bb 12>; [85.10%]

  <bb 12> [local count: 98121214]:
  goto <bb 10>; [100.00%]

  <bb 4> [local count: 1014686024]:
  # DEBUG BEGIN_STMT
  if (dbase_19(D) == 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 507343012]:
  # DEBUG BEGIN_STMT
  _4 = _10 - 4B;
  rule_21 = (struct fci_fp_rule_t *) _4;
  # DEBUG rule => rule_21
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 507343012]:
  # DEBUG BEGIN_STMT
  _5 = _10 - 12B;
  rule_20 = (struct fci_fp_rule_t *) _5;
  # DEBUG rule => rule_20

  <bb 7> [local count: 1014686024]:
  # rule_12 = PHI <rule_21(5), rule_20(6)>
  # DEBUG rule => rule_12
  # DEBUG BEGIN_STMT
  _6 = _10->prNext;
  db_18(D)->cur_item = _6;
  # DEBUG BEGIN_STMT
  if (rule_12 != 0B)
    goto <bb 8>; [70.00%]
  else
    goto <bb 9>; [30.00%]

  <bb 8> [local count: 710280217]:
  # DEBUG BEGIN_STMT
  _7 = db_18(D)->cur_crit;
  _8 = &db_18(D)->cur_crit_arg;
  # DEBUG D#1 => _8
  # DEBUG D#2 => rule_12
  _9 = fci_fp_match_rule_by_criterion.isra.0 (_7, _8, rule_12);
  if (_9 == 1)
    goto <bb 11>; [5.50%]
  else
    goto <bb 9>; [94.50%]

  <bb 9> [local count: 975620611]:
  # rule_11 = PHI <rule_12(7), rule_12(8)>

  <bb 10> [local count: 1073741824]:
  # rule_13 = PHI <rule_11(9), 0B(12)>
  # DEBUG rule => rule_13
  # DEBUG BEGIN_STMT
  _10 = db_18(D)->cur_item;
  if (_2 != _10)
    goto <bb 4>; [94.50%]
  else
    goto <bb 11>; [5.50%]

  <bb 11> [local count: 135488922]:
  # rule_14 = PHI <0B(2), 0B(3), rule_12(8), rule_13(10)>
  # DEBUG rule => rule_14
  # DEBUG BEGIN_STMT
  return rule_14;

}



;; Function fci_fp_db_init (fci_fp_db_init, funcdef_no=23, decl_uid=8328, cgraph_uid=24, symbol_order=28)

Modification phase of node fci_fp_db_init/28
fci_fp_db_init ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  memset (&MEM[(void *)&fci_fp_rule_db + 8B], 0, 12);
  # DEBUG BEGIN_STMT
  memset (&MEM[(void *)&fci_fp_table_db + 8B], 0, 12);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fci_fp_table_db.tables.prNext = &fci_fp_table_db.tables;
  # DEBUG BEGIN_STMT
  fci_fp_table_db.tables.prPrev = &fci_fp_table_db.tables;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fci_fp_rule_db.rules.prNext = &fci_fp_rule_db.rules;
  # DEBUG BEGIN_STMT
  fci_fp_rule_db.rules.prPrev = &fci_fp_rule_db.rules;
  # DEBUG BEGIN_STMT
  return;

}



;; Function fci_fp_db_create_rule (fci_fp_db_create_rule, funcdef_no=24, decl_uid=8335, cgraph_uid=25, symbol_order=29)

Modification phase of node fci_fp_db_create_rule/29
fci_fp_db_create_rule (char_t * name, uint32_t data, uint32_t mask, uint16_t offset, pfe_ct_fp_flags_t flags, char_t * next_rule)
{
  errno_t ret;
  bool_t ignore_next_rule;
  struct fci_fp_rule_t * rule;
  uint32_t mem_size;
  struct fci_fp_rule_t * _1;
  unsigned int _2;
  unsigned int _3;
  long unsigned int _4;
  struct LLIST_t * _5;
  struct LLIST_t * _6;
  struct fci_fp_rule_t * _7;
  unsigned int _8;
  sizetype _9;
  char_t * _10;
  struct LLIST_Struct * _11;
  <unnamed type> _17;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG rule => 0B
  # DEBUG BEGIN_STMT
  # DEBUG ignore_next_rule => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _17 = flags_18(D) & 6;
  if (_17 == 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 536870911]:
  if (next_rule_19(D) == 0B)
    goto <bb 18>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 4> [local count: 973078527]:
  # DEBUG BEGIN_STMT
  if (_17 == 6)
    goto <bb 18>; [21.72%]
  else
    goto <bb 5>; [78.28%]

  <bb 5> [local count: 761725872]:
  # DEBUG BEGIN_STMT
  if (_17 != 0)
    goto <bb 6>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 6> [local count: 380862936]:
  if (next_rule_19(D) != 0B)
    goto <bb 7>; [70.00%]
  else
    goto <bb 8>; [30.00%]

  <bb 7> [local count: 266604055]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ignore_next_rule => 1

  <bb 8> [local count: 761725873]:
  # ignore_next_rule_13 = PHI <0(5), 0(6), 1(7)>
  # DEBUG ignore_next_rule => ignore_next_rule_13
  # DEBUG BEGIN_STMT
  _1 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_21(D), 0);
  if (_1 != 0B)
    goto <bb 18>; [55.68%]
  else
    goto <bb 9>; [44.32%]

  <bb 9> [local count: 337596907]:
  # DEBUG BEGIN_STMT
  _2 = strlen (name_21(D));
  mem_size_23 = _2 + 45;
  # DEBUG mem_size => mem_size_23
  # DEBUG BEGIN_STMT
  if (next_rule_19(D) != 0B)
    goto <bb 10>; [70.00%]
  else
    goto <bb 12>; [30.00%]

  <bb 10> [local count: 236317834]:
  if (ignore_next_rule_13 == 0)
    goto <bb 11>; [50.00%]
  else
    goto <bb 12>; [50.00%]

  <bb 11> [local count: 118158917]:
  # DEBUG BEGIN_STMT
  _3 = strlen (next_rule_19(D));
  _4 = _3 + mem_size_23;
  mem_size_24 = _4 + 1;
  # DEBUG mem_size => mem_size_24

  <bb 12> [local count: 337596907]:
  # mem_size_12 = PHI <mem_size_23(9), mem_size_23(10), mem_size_24(11)>
  # DEBUG mem_size => mem_size_12
  # DEBUG BEGIN_STMT
  rule_26 = oal_mm_malloc (mem_size_12);
  # DEBUG rule => rule_26
  # DEBUG BEGIN_STMT
  if (rule_26 == 0B)
    goto <bb 18>; [31.91%]
  else
    goto <bb 13>; [68.09%]

  <bb 13> [local count: 229869733]:
  # DEBUG BEGIN_STMT
  memset (rule_26, 0, mem_size_12);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = &rule_26->db_entry;
  rule_26->db_entry.prNext = _5;
  # DEBUG BEGIN_STMT
  rule_26->db_entry.prPrev = _5;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = &rule_26->table_entry;
  rule_26->table_entry.prNext = _6;
  # DEBUG BEGIN_STMT
  rule_26->table_entry.prPrev = _6;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _7 = rule_26 + 44;
  rule_26->name = _7;
  # DEBUG BEGIN_STMT
  strcpy (_7, name_21(D));
  # DEBUG BEGIN_STMT
  rule_26->data = data_34(D);
  # DEBUG BEGIN_STMT
  rule_26->mask = mask_36(D);
  # DEBUG BEGIN_STMT
  rule_26->offset = offset_38(D);
  # DEBUG BEGIN_STMT
  if (next_rule_19(D) != 0B)
    goto <bb 14>; [70.00%]
  else
    goto <bb 16>; [30.00%]

  <bb 14> [local count: 160908814]:
  if (ignore_next_rule_13 == 0)
    goto <bb 15>; [33.00%]
  else
    goto <bb 16>; [67.00%]

  <bb 15> [local count: 53099908]:
  # DEBUG BEGIN_STMT
  _8 = strlen (name_21(D));
  _9 = _8 + 1;
  _10 = _7 + _9;
  rule_26->next_rule = _10;
  # DEBUG BEGIN_STMT
  strcpy (_10, next_rule_19(D));
  goto <bb 17>; [100.00%]

  <bb 16> [local count: 176769825]:
  # DEBUG BEGIN_STMT
  rule_26->next_rule = 0B;

  <bb 17> [local count: 229869734]:
  # DEBUG BEGIN_STMT
  rule_26->flags = flags_18(D);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _11 = fci_fp_rule_db.rules.prPrev;
  rule_26->db_entry.prPrev = _11;
  # DEBUG BEGIN_STMT
  rule_26->db_entry.prNext = &fci_fp_rule_db.rules;
  # DEBUG BEGIN_STMT
  _11->prNext = _5;
  # DEBUG BEGIN_STMT
  fci_fp_rule_db.rules.prPrev = _5;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

  <bb 18> [local count: 1073741824]:
  # ret_14 = PHI <22(3), 22(4), 116(8), 11(12), 0(17)>
  # DEBUG ret => ret_14
  # DEBUG BEGIN_STMT
  return ret_14;

}



;; Function fci_fp_db_destroy_rule (fci_fp_db_destroy_rule, funcdef_no=25, decl_uid=8355, cgraph_uid=26, symbol_order=30)

Modification phase of node fci_fp_db_destroy_rule/30
fci_fp_db_destroy_rule (char_t * name)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * _1;
  struct LLIST_Struct * _2;
  struct LLIST_Struct * _3;
  struct LLIST_Struct * _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG rule => 0B
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_10 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, name_8(D), 0);
  # DEBUG rule => rule_10
  # DEBUG BEGIN_STMT
  if (rule_10 == 0B)
    goto <bb 5>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _1 = rule_10->table;
  if (_1 != 0B)
    goto <bb 5>; [71.84%]
  else
    goto <bb 4>; [28.16%]

  <bb 4> [local count: 245672129]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = rule_10->db_entry.prPrev;
  _3 = rule_10->db_entry.prNext;
  _2->prNext = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_10->db_entry.prNext;
  _4->prPrev = _2;
  # DEBUG BEGIN_STMT
  rule_10->db_entry.prPrev = 0B;
  # DEBUG BEGIN_STMT
  rule_10->db_entry.prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (rule_10);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_create_table (fci_fp_db_create_table, funcdef_no=26, decl_uid=8337, cgraph_uid=27, symbol_order=31)

Modification phase of node fci_fp_db_create_table/31
fci_fp_db_create_table (char_t * name)
{
  errno_t ret;
  struct fci_fp_table_t * fp_table;
  uint32_t mem_size;
  struct fci_fp_table_t * _1;
  unsigned int _2;
  struct LLIST_t * _3;
  struct LLIST_t * _4;
  struct fci_fp_table_t * _5;
  struct LLIST_Struct * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_10(D));
  if (_1 != 0B)
    goto <bb 5>; [71.84%]
  else
    goto <bb 3>; [28.16%]

  <bb 3> [local count: 302365698]:
  # DEBUG BEGIN_STMT
  _2 = strlen (name_10(D));
  mem_size_12 = _2 + 45;
  # DEBUG mem_size => mem_size_12
  # DEBUG BEGIN_STMT
  fp_table_14 = oal_mm_malloc (mem_size_12);
  # DEBUG fp_table => fp_table_14
  # DEBUG BEGIN_STMT
  if (fp_table_14 == 0B)
    goto <bb 5>; [31.91%]
  else
    goto <bb 4>; [68.09%]

  <bb 4> [local count: 205880803]:
  # DEBUG BEGIN_STMT
  memset (fp_table_14, 0, mem_size_12);
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = &fp_table_14->db_entry;
  fp_table_14->db_entry.prNext = _3;
  # DEBUG BEGIN_STMT
  fp_table_14->db_entry.prPrev = _3;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 = &fp_table_14->rules_db.rules;
  fp_table_14->rules_db.rules.prNext = _4;
  # DEBUG BEGIN_STMT
  fp_table_14->rules_db.rules.prPrev = _4;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = fp_table_14 + 44;
  fp_table_14->name = _5;
  # DEBUG BEGIN_STMT
  strcpy (_5, name_10(D));
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _6 = fci_fp_table_db.tables.prPrev;
  fp_table_14->db_entry.prPrev = _6;
  # DEBUG BEGIN_STMT
  fp_table_14->db_entry.prNext = &fci_fp_table_db.tables;
  # DEBUG BEGIN_STMT
  _6->prNext = _3;
  # DEBUG BEGIN_STMT
  fci_fp_table_db.tables.prPrev = _3;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_destroy_table (fci_fp_db_destroy_table, funcdef_no=27, decl_uid=8353, cgraph_uid=28, symbol_order=32)

Modification phase of node fci_fp_db_destroy_table/32
fci_fp_db_destroy_table (char_t * name, bool_t force)
{
  errno_t ret;
  struct LLIST_t * aux;
  struct LLIST_t * item;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * fp_table;
  long unsigned int _1;
  struct LLIST_Struct * _2;
  struct LLIST_t * _3;
  int _4;
  struct LLIST_Struct * _5;
  struct LLIST_Struct * _6;
  struct LLIST_Struct * _7;
  short unsigned int _8;
  short unsigned int _9;
  struct LLIST_Struct * _10;
  struct LLIST_Struct * _11;
  struct LLIST_Struct * _12;

  <bb 2> [local count: 251719693]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  fp_table_22 = fci_fp_table_get_first (&fci_fp_table_db, 1, name_20(D));
  # DEBUG fp_table => fp_table_22
  # DEBUG BEGIN_STMT
  if (fp_table_22 == 0B)
    goto <bb 13>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 204522251]:
  # DEBUG BEGIN_STMT
  _1 = fp_table_22->dmem_addr;
  if (_1 != 0)
    goto <bb 5>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 5> [local count: 102261125]:
  # DEBUG BEGIN_STMT
  if (force_23(D) == 0)
    goto <bb 13>; [35.00%]
  else
    goto <bb 6>; [65.00%]

  <bb 6> [local count: 66469732]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fp_table_22->dmem_addr = 0;
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 168730857]:
  # DEBUG ret => NULL
  # DEBUG BEGIN_STMT
  _2 = fp_table_22->rules_db.rules.prNext;
  _3 = &fp_table_22->rules_db.rules;
  if (_2 != _3)
    goto <bb 9>; [70.00%]
  else
    goto <bb 12>; [30.00%]

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

  <bb 10> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  _4 = item_13 - 12B;
  rule_26 = (struct fci_fp_rule_t *) _4;
  # DEBUG rule => rule_26
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = item_13->prPrev;
  _6 = item_13->prNext;
  _5->prNext = _6;
  # DEBUG BEGIN_STMT
  _7 = item_13->prNext;
  _7->prPrev = _5;
  # DEBUG BEGIN_STMT
  item_13->prPrev = 0B;
  # DEBUG BEGIN_STMT
  item_13->prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _8 = fp_table_22->rule_count;
  _9 = _8 + 65535;
  fp_table_22->rule_count = _9;
  # DEBUG BEGIN_STMT
  rule_26->table = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG item => aux_14
  aux_33 = aux_14->prNext;
  # DEBUG aux => aux_33

  <bb 11> [local count: 1073741824]:
  # item_13 = PHI <_2(9), aux_14(10)>
  # aux_14 = PHI <aux_25(9), aux_33(10)>
  # DEBUG aux => aux_14
  # DEBUG item => item_13
  # DEBUG BEGIN_STMT
  if (_3 != item_13)
    goto <bb 10>; [89.00%]
  else
    goto <bb 12>; [11.00%]

  <bb 12> [local count: 168730858]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _10 = fp_table_22->db_entry.prPrev;
  _11 = fp_table_22->db_entry.prNext;
  _10->prNext = _11;
  # DEBUG BEGIN_STMT
  _12 = fp_table_22->db_entry.prNext;
  _12->prPrev = _10;
  # DEBUG BEGIN_STMT
  fp_table_22->db_entry.prPrev = 0B;
  # DEBUG BEGIN_STMT
  fp_table_22->db_entry.prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  oal_mm_free (fp_table_22);

  <bb 13> [local count: 251719694]:
  # ret_15 = PHI <2(2), 13(5), 0(12)>
  # DEBUG ret => ret_15
  # DEBUG BEGIN_STMT
  return ret_15;

}



;; Function fci_fp_db_add_rule_to_table (fci_fp_db_add_rule_to_table, funcdef_no=28, decl_uid=8341, cgraph_uid=29, symbol_order=33)

Modification phase of node fci_fp_db_add_rule_to_table/33
fci_fp_db_add_rule_to_table (char_t * table_name, char_t * rule_name, uint16_t position)
{
  errno_t ret;
  uint32_t i;
  struct LLIST_t * item;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * fp_table;
  struct fci_fp_table_t * _1;
  struct LLIST_Struct * _2;
  struct LLIST_t * _3;
  struct LLIST_t * _4;
  struct LLIST_t * _5;
  short unsigned int _6;
  short unsigned int _7;
  struct LLIST_Struct * _8;
  struct LLIST_t * _9;
  short unsigned int _10;
  short unsigned int _11;
  long unsigned int _12;
  struct LLIST_Struct * _13;
  struct LLIST_t * _14;
  short unsigned int _15;
  short unsigned int _16;
  struct LLIST_Struct * _17;
  struct LLIST_t * _18;
  short unsigned int _19;
  short unsigned int _20;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  # DEBUG BEGIN_STMT
  # DEBUG ret => 22
  # DEBUG BEGIN_STMT
  rule_28 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_26(D), 0);
  # DEBUG rule => rule_28
  # DEBUG BEGIN_STMT
  if (rule_28 == 0B)
    goto <bb 16>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 872415231]:
  # DEBUG BEGIN_STMT
  _1 = rule_28->table;
  if (_1 != 0B)
    goto <bb 16>; [71.84%]
  else
    goto <bb 4>; [28.16%]

  <bb 4> [local count: 245672129]:
  # DEBUG BEGIN_STMT
  fp_table_31 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_29(D));
  # DEBUG fp_table => fp_table_31
  # DEBUG BEGIN_STMT
  if (fp_table_31 == 0B)
    goto <bb 16>; [18.75%]
  else
    goto <bb 5>; [81.25%]

  <bb 5> [local count: 199608605]:
  # DEBUG BEGIN_STMT
  _2 = fp_table_31->rules_db.rules.prNext;
  _3 = &fp_table_31->rules_db.rules;
  if (_2 == _3)
    goto <bb 6>; [30.00%]
  else
    goto <bb 7>; [70.00%]

  <bb 6> [local count: 59882581]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prNext = _2;
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prPrev = _3;
  # DEBUG BEGIN_STMT
  _4 = &rule_28->table_entry;
  _2->prPrev = _4;
  # DEBUG BEGIN_STMT
  fp_table_31->rules_db.rules.prNext = _4;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table = fp_table_31;
  # DEBUG BEGIN_STMT
  fp_table_31->rule_count = 1;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 16>; [100.00%]

  <bb 7> [local count: 139726023]:
  # DEBUG BEGIN_STMT
  if (position_32(D) == 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 69863012]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prNext = _2;
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prPrev = _3;
  # DEBUG BEGIN_STMT
  _5 = &rule_28->table_entry;
  _2->prPrev = _5;
  # DEBUG BEGIN_STMT
  fp_table_31->rules_db.rules.prNext = _5;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table = fp_table_31;
  # DEBUG BEGIN_STMT
  _6 = fp_table_31->rule_count;
  _7 = _6 + 1;
  fp_table_31->rule_count = _7;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 16>; [100.00%]

  <bb 9> [local count: 69863012]:
  # DEBUG BEGIN_STMT
  if (position_32(D) > 255)
    goto <bb 10>; [50.00%]
  else
    goto <bb 17>; [50.00%]

  <bb 17> [local count: 34931506]:
  goto <bb 14>; [100.00%]

  <bb 10> [local count: 34931506]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _8 = fp_table_31->rules_db.rules.prPrev;
  rule_28->table_entry.prPrev = _8;
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prNext = _3;
  # DEBUG BEGIN_STMT
  _9 = &rule_28->table_entry;
  _8->prNext = _9;
  # DEBUG BEGIN_STMT
  fp_table_31->rules_db.rules.prPrev = _9;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table = fp_table_31;
  # DEBUG BEGIN_STMT
  _10 = fp_table_31->rule_count;
  _11 = _10 + 1;
  fp_table_31->rule_count = _11;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  goto <bb 16>; [100.00%]

  <bb 11> [local count: 308579322]:
  # DEBUG BEGIN_STMT
  _12 = (long unsigned int) position_32(D);
  if (_12 == i_22)
    goto <bb 12>; [5.50%]
  else
    goto <bb 13>; [94.50%]

  <bb 12> [local count: 16971863]:
  # item_33 = PHI <item_21(11)>
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _13 = item_33->prPrev;
  rule_28->table_entry.prPrev = _13;
  # DEBUG BEGIN_STMT
  _14 = &rule_28->table_entry;
  _13->prNext = _14;
  # DEBUG BEGIN_STMT
  item_33->prPrev = _14;
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prNext = item_33;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table = fp_table_31;
  # DEBUG BEGIN_STMT
  _15 = fp_table_31->rule_count;
  _16 = _15 + 1;
  fp_table_31->rule_count = _16;
  # DEBUG BEGIN_STMT
  # DEBUG added => 1
  # DEBUG BEGIN_STMT
  # DEBUG added => 1
  # DEBUG BEGIN_STMT
  goto <bb 16>; [100.00%]

  <bb 13> [local count: 291607459]:
  # DEBUG BEGIN_STMT
  i_34 = i_22 + 1;
  # DEBUG i => i_34
  # DEBUG BEGIN_STMT
  item_35 = item_21->prNext;
  # DEBUG item => item_35

  <bb 14> [local count: 326538965]:
  # item_21 = PHI <item_35(13), _2(17)>
  # i_22 = PHI <i_34(13), 0(17)>
  # DEBUG added => NULL
  # DEBUG i => i_22
  # DEBUG item => item_21
  # DEBUG BEGIN_STMT
  if (_3 != item_21)
    goto <bb 11>; [94.50%]
  else
    goto <bb 15>; [5.50%]

  <bb 15> [local count: 17959643]:
  # DEBUG added => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _17 = fp_table_31->rules_db.rules.prPrev;
  rule_28->table_entry.prPrev = _17;
  # DEBUG BEGIN_STMT
  rule_28->table_entry.prNext = _3;
  # DEBUG BEGIN_STMT
  _18 = &rule_28->table_entry;
  _17->prNext = _18;
  # DEBUG BEGIN_STMT
  fp_table_31->rules_db.rules.prPrev = _18;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_28->table = fp_table_31;
  # DEBUG BEGIN_STMT
  _19 = fp_table_31->rule_count;
  _20 = _19 + 1;
  fp_table_31->rule_count = _20;

  <bb 16> [local count: 1073741824]:
  # ret_23 = PHI <2(2), 13(3), 2(4), 0(6), 0(8), 0(10), 0(15), 0(12)>
  # DEBUG ret => ret_23
  # DEBUG BEGIN_STMT
  return ret_23;

}



;; Function fci_fp_db_remove_rule_from_table (fci_fp_db_remove_rule_from_table, funcdef_no=29, decl_uid=8350, cgraph_uid=30, symbol_order=34)

Modification phase of node fci_fp_db_remove_rule_from_table/34
fci_fp_db_remove_rule_from_table (char_t * rule_name)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * _1;
  struct LLIST_Struct * _2;
  struct LLIST_Struct * _3;
  struct LLIST_Struct * _4;
  short unsigned int _5;
  short unsigned int _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_12 = fci_fp_rule_get_first (&fci_fp_rule_db, 1, rule_name_10(D), 0);
  # DEBUG rule => rule_12
  # DEBUG BEGIN_STMT
  if (rule_12 == 0B)
    goto <bb 6>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _1 = rule_12->table;
  if (_1 != 0B)
    goto <bb 4>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 4> [local count: 610690663]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 = rule_12->table_entry.prPrev;
  _3 = rule_12->table_entry.prNext;
  _2->prNext = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_12->table_entry.prNext;
  _4->prPrev = _2;
  # DEBUG BEGIN_STMT
  rule_12->table_entry.prPrev = 0B;
  # DEBUG BEGIN_STMT
  rule_12->table_entry.prNext = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _5 = _1->rule_count;
  _6 = _5 + 65535;
  _1->rule_count = _6;
  # DEBUG BEGIN_STMT
  rule_12->table = 0B;

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

}



;; Function fci_fp_db_get_table_dmem_addr (fci_fp_db_get_table_dmem_addr, funcdef_no=30, decl_uid=8346, cgraph_uid=31, symbol_order=35)

Modification phase of node fci_fp_db_get_table_dmem_addr/35
fci_fp_db_get_table_dmem_addr (char_t * table_name)
{
  uint32_t retval;
  const struct fci_fp_table_t * fp_table;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fp_table_5 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_3(D));
  # DEBUG fp_table => fp_table_5
  # DEBUG BEGIN_STMT
  if (fp_table_5 == 0B)
    goto <bb 4>; [30.00%]
  else
    goto <bb 3>; [70.00%]

  <bb 3> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  retval_6 = fp_table_5->dmem_addr;
  # DEBUG retval => retval_6

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

}



;; Function fci_fp_db_push_table_to_hw (fci_fp_db_push_table_to_hw, funcdef_no=31, decl_uid=8344, cgraph_uid=32, symbol_order=36)

Modification phase of node fci_fp_db_push_table_to_hw/36
fci_fp_db_push_table_to_hw (struct pfe_class_t * class, char_t * table_name)
{
  errno_t ret;
  uint8_t pos;
  uint16_t i;
  struct fci_fp_rule_t * rule;
  struct LLIST_t * item;
  struct pfe_ct_fp_rule_t rule_buf;
  struct fci_fp_rule_t * next_rule;
  struct fci_fp_table_t * fp_table;
  short unsigned int _1;
  long unsigned int _2;
  int _3;
  long unsigned int _4;
  long unsigned int _5;
  short unsigned int _6;
  <unnamed type> _7;
  char_t * _8;
  struct fci_fp_rule_db_t * _9;
  long unsigned int _10;
  int _11;
  long unsigned int _12;
  unsigned char pos.0_13;
  long unsigned int _14;
  struct LLIST_t * _15;

  <bb 2> [local count: 178601069]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  fp_table_25 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_23(D));
  # DEBUG fp_table => fp_table_25
  # DEBUG BEGIN_STMT
  if (fp_table_25 == 0B)
    goto <bb 14>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 121609468]:
  # DEBUG BEGIN_STMT
  _1 = fp_table_25->rule_count;
  _2 = pfe_fp_create_table (class_26(D), _1);
  fp_table_25->dmem_addr = _2;
  # DEBUG BEGIN_STMT
  fp_table_25->class = class_26(D);
  # DEBUG BEGIN_STMT
  if (_2 == 0)
    goto <bb 14>; [35.00%]
  else
    goto <bb 4>; [65.00%]

  <bb 4> [local count: 79046154]:
  # DEBUG BEGIN_STMT
  item_30 = fp_table_25->rules_db.rules.prNext;
  # DEBUG item => item_30
  goto <bb 13>; [100.00%]

  <bb 5> [local count: 1034442874]:
  # DEBUG BEGIN_STMT
  _3 = item_16 - 12B;
  rule_31 = (struct fci_fp_rule_t *) _3;
  # DEBUG rule => rule_31
  # DEBUG BEGIN_STMT
  _4 = rule_31->data;
  rule_buf.data = _4;
  # DEBUG BEGIN_STMT
  _5 = rule_31->mask;
  rule_buf.mask = _5;
  # DEBUG BEGIN_STMT
  _6 = rule_31->offset;
  rule_buf.offset = _6;
  # DEBUG BEGIN_STMT
  _7 = rule_31->flags;
  rule_buf.flags = _7;
  # DEBUG BEGIN_STMT
  _8 = rule_31->next_rule;
  if (_8 != 0B)
    goto <bb 6>; [53.47%]
  else
    goto <bb 11>; [46.53%]

  <bb 6> [local count: 553116605]:
  # DEBUG BEGIN_STMT
  _9 = &fp_table_25->rules_db;
  next_rule_38 = fci_fp_rule_get_first (_9, 1, _8, 1);
  # DEBUG next_rule => next_rule_38
  # DEBUG BEGIN_STMT
  if (next_rule_38 == 0B)
    goto <bb 7>; [3.66%]
  else
    goto <bb 8>; [96.34%]

  <bb 7> [local count: 20244068]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _10 = fp_table_25->dmem_addr;
  pfe_fp_destroy_table (class_26(D), _10);
  # DEBUG BEGIN_STMT
  fp_table_25->dmem_addr = 0;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

  <bb 8> [local count: 532872537]:
  # DEBUG BEGIN_STMT
  _11 = fci_fp_get_rule_pos_in_table (fp_table_25, next_rule_38, &pos);
  if (_11 != 0)
    goto <bb 9>; [3.66%]
  else
    goto <bb 10>; [96.34%]

  <bb 9> [local count: 19503135]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _12 = fp_table_25->dmem_addr;
  pfe_fp_destroy_table (class_26(D), _12);
  # DEBUG BEGIN_STMT
  fp_table_25->dmem_addr = 0;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  # DEBUG BEGIN_STMT
  goto <bb 14>; [100.00%]

  <bb 10> [local count: 513369402]:
  # DEBUG BEGIN_STMT
  pos.0_13 = pos;
  rule_buf.next_idx = pos.0_13;
  goto <bb 12>; [100.00%]

  <bb 11> [local count: 481326269]:
  # DEBUG BEGIN_STMT
  rule_buf.next_idx = 255;

  <bb 12> [local count: 994695672]:
  # DEBUG BEGIN_STMT
  _14 = fp_table_25->dmem_addr;
  pfe_fp_table_write_rule (class_26(D), _14, &rule_buf, i_17);
  # DEBUG BEGIN_STMT
  i_46 = i_17 + 1;
  # DEBUG i => i_46
  # DEBUG BEGIN_STMT
  item_47 = item_16->prNext;
  # DEBUG item => item_47

  <bb 13> [local count: 1073741824]:
  # item_16 = PHI <item_30(4), item_47(12)>
  # i_17 = PHI <0(4), i_46(12)>
  # DEBUG i => i_17
  # DEBUG item => item_16
  # DEBUG BEGIN_STMT
  _15 = &fp_table_25->rules_db.rules;
  if (_15 != item_16)
    goto <bb 5>; [96.34%]
  else
    goto <bb 14>; [3.66%]

  <bb 14> [local count: 178601068]:
  # ret_18 = PHI <2(2), 117(3), 2(7), 2(9), 0(13)>
  # DEBUG ret => ret_18
  # DEBUG BEGIN_STMT
  rule_buf ={v} {CLOBBER};
  pos ={v} {CLOBBER};
  return ret_18;

}



;; Function fci_fp_db_pop_table_from_hw (fci_fp_db_pop_table_from_hw, funcdef_no=32, decl_uid=8348, cgraph_uid=33, symbol_order=37)

Modification phase of node fci_fp_db_pop_table_from_hw/37
fci_fp_db_pop_table_from_hw (char_t * table_name)
{
  errno_t ret;
  struct fci_fp_table_t * fp_table;
  struct pfe_class_t * _1;
  long unsigned int _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fp_table_8 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_6(D));
  # DEBUG fp_table => fp_table_8
  # DEBUG BEGIN_STMT
  if (fp_table_8 == 0B)
    goto <bb 4>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  _1 = fp_table_8->class;
  _2 = fp_table_8->dmem_addr;
  pfe_fp_destroy_table (_1, _2);
  # DEBUG BEGIN_STMT
  fp_table_8->dmem_addr = 0;
  # DEBUG BEGIN_STMT
  fp_table_8->class = 0B;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_get_table_from_addr (fci_fp_db_get_table_from_addr, funcdef_no=33, decl_uid=8361, cgraph_uid=34, symbol_order=38)

Modification phase of node fci_fp_db_get_table_from_addr/38
fci_fp_db_get_table_from_addr (uint32_t addr, char_t * * table_name)
{
  errno_t ret;
  const struct fci_fp_table_t * fp_table;
  long unsigned int addr.3_1;
  char_t * _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  addr.3_1 = addr;
  if (addr.3_1 == 0)
    goto <bb 5>; [52.23%]
  else
    goto <bb 3>; [47.77%]

  <bb 3> [local count: 512926469]:
  # DEBUG BEGIN_STMT
  fp_table_7 = fci_fp_table_get_first (&fci_fp_table_db, 2, &addr);
  # DEBUG fp_table => fp_table_7
  # DEBUG BEGIN_STMT
  if (fp_table_7 == 0B)
    goto <bb 5>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 4> [local count: 416752756]:
  # DEBUG BEGIN_STMT
  _2 = fp_table_7->name;
  *table_name_8(D) = _2;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_get_first (fci_fp_db_get_first, funcdef_no=34, decl_uid=8358, cgraph_uid=35, symbol_order=39)

Modification phase of node fci_fp_db_get_first/39
fci_fp_db_get_first (fci_fp_table_criterion_t crit, void * arg)
{
  struct fci_fp_table_t * _5;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _5 = fci_fp_table_get_first (&fci_fp_table_db, crit_2(D), arg_3(D));
  return _5;

}



;; Function fci_fp_db_get_first_rule (fci_fp_db_get_first_rule, funcdef_no=35, decl_uid=8364, cgraph_uid=36, symbol_order=40)

Modification phase of node fci_fp_db_get_first_rule/40
fci_fp_db_get_first_rule (struct fci_fp_rule_info_t * rule_info, char_t * * next_rule)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  char_t * _1;
  long unsigned int _2;
  long unsigned int _3;
  short unsigned int _4;
  <unnamed type> _5;
  char_t * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_11 = fci_fp_rule_get_first (&fci_fp_rule_db, 0, 0B, 0);
  # DEBUG rule => rule_11
  # DEBUG BEGIN_STMT
  if (rule_11 == 0B)
    goto <bb 4>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _1 = rule_11->name;
  rule_info_12(D)->rule_name = _1;
  # DEBUG BEGIN_STMT
  _2 = rule_11->data;
  rule_info_12(D)->data = _2;
  # DEBUG BEGIN_STMT
  _3 = rule_11->mask;
  rule_info_12(D)->mask = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_11->offset;
  rule_info_12(D)->offset = _4;
  # DEBUG BEGIN_STMT
  _5 = rule_11->flags;
  rule_info_12(D)->flags = _5;
  # DEBUG BEGIN_STMT
  _6 = rule_11->next_rule;
  *next_rule_18(D) = _6;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_get_next_rule (fci_fp_db_get_next_rule, funcdef_no=36, decl_uid=8367, cgraph_uid=37, symbol_order=41)

Modification phase of node fci_fp_db_get_next_rule/41
fci_fp_db_get_next_rule (struct fci_fp_rule_info_t * rule_info, char_t * * next_rule)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  char_t * _1;
  long unsigned int _2;
  long unsigned int _3;
  short unsigned int _4;
  <unnamed type> _5;
  char_t * _6;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  rule_11 = fci_fp_rule_get_next (&fci_fp_rule_db, 0);
  # DEBUG rule => rule_11
  # DEBUG BEGIN_STMT
  if (rule_11 == 0B)
    goto <bb 4>; [18.75%]
  else
    goto <bb 3>; [81.25%]

  <bb 3> [local count: 872415233]:
  # DEBUG BEGIN_STMT
  _1 = rule_11->name;
  rule_info_12(D)->rule_name = _1;
  # DEBUG BEGIN_STMT
  _2 = rule_11->data;
  rule_info_12(D)->data = _2;
  # DEBUG BEGIN_STMT
  _3 = rule_11->mask;
  rule_info_12(D)->mask = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_11->offset;
  rule_info_12(D)->offset = _4;
  # DEBUG BEGIN_STMT
  _5 = rule_11->flags;
  rule_info_12(D)->flags = _5;
  # DEBUG BEGIN_STMT
  _6 = rule_11->next_rule;
  *next_rule_18(D) = _6;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_get_table_first_rule (fci_fp_db_get_table_first_rule, funcdef_no=37, decl_uid=8371, cgraph_uid=38, symbol_order=42)

Modification phase of node fci_fp_db_get_table_first_rule/42
fci_fp_db_get_table_first_rule (char_t * table_name, struct fci_fp_rule_info_t * rule_info, char_t * * next_rule)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * fp_table;
  struct fci_fp_rule_db_t * _1;
  char_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  short unsigned int _5;
  <unnamed type> _6;
  char_t * _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  # DEBUG fp_table => fp_table_13
  # DEBUG BEGIN_STMT
  if (fp_table_13 == 0B)
    goto <bb 5>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  _1 = &fp_table_13->rules_db;
  rule_15 = fci_fp_rule_get_first (_1, 0, 0B, 1);
  # DEBUG rule => rule_15
  # DEBUG BEGIN_STMT
  if (rule_15 == 0B)
    goto <bb 5>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 4> [local count: 594027532]:
  # DEBUG BEGIN_STMT
  _2 = rule_15->name;
  rule_info_16(D)->rule_name = _2;
  # DEBUG BEGIN_STMT
  _3 = rule_15->data;
  rule_info_16(D)->data = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_15->mask;
  rule_info_16(D)->mask = _4;
  # DEBUG BEGIN_STMT
  _5 = rule_15->offset;
  rule_info_16(D)->offset = _5;
  # DEBUG BEGIN_STMT
  _6 = rule_15->flags;
  rule_info_16(D)->flags = _6;
  # DEBUG BEGIN_STMT
  _7 = rule_15->next_rule;
  *next_rule_22(D) = _7;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}



;; Function fci_fp_db_get_table_next_rule (fci_fp_db_get_table_next_rule, funcdef_no=38, decl_uid=8375, cgraph_uid=39, symbol_order=43)

Modification phase of node fci_fp_db_get_table_next_rule/43
fci_fp_db_get_table_next_rule (char_t * table_name, struct fci_fp_rule_info_t * rule_info, char_t * * next_rule)
{
  errno_t ret;
  struct fci_fp_rule_t * rule;
  struct fci_fp_table_t * fp_table;
  struct fci_fp_rule_db_t * _1;
  char_t * _2;
  long unsigned int _3;
  long unsigned int _4;
  short unsigned int _5;
  <unnamed type> _6;
  char_t * _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  fp_table_13 = fci_fp_table_get_first (&fci_fp_table_db, 1, table_name_11(D));
  # DEBUG fp_table => fp_table_13
  # DEBUG BEGIN_STMT
  if (fp_table_13 == 0B)
    goto <bb 5>; [31.91%]
  else
    goto <bb 3>; [68.09%]

  <bb 3> [local count: 731110809]:
  # DEBUG BEGIN_STMT
  _1 = &fp_table_13->rules_db;
  rule_15 = fci_fp_rule_get_next (_1, 1);
  # DEBUG rule => rule_15
  # DEBUG BEGIN_STMT
  if (rule_15 == 0B)
    goto <bb 5>; [18.75%]
  else
    goto <bb 4>; [81.25%]

  <bb 4> [local count: 594027532]:
  # DEBUG BEGIN_STMT
  _2 = rule_15->name;
  rule_info_16(D)->rule_name = _2;
  # DEBUG BEGIN_STMT
  _3 = rule_15->data;
  rule_info_16(D)->data = _3;
  # DEBUG BEGIN_STMT
  _4 = rule_15->mask;
  rule_info_16(D)->mask = _4;
  # DEBUG BEGIN_STMT
  _5 = rule_15->offset;
  rule_info_16(D)->offset = _5;
  # DEBUG BEGIN_STMT
  _6 = rule_15->flags;
  rule_info_16(D)->flags = _6;
  # DEBUG BEGIN_STMT
  _7 = rule_15->next_rule;
  *next_rule_22(D) = _7;
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0

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

}


