
IPA constant propagation start:

IPA structures before propagation:

Jump functions:
  Jump functions of caller  table_read.part.0/47:
    callsite  table_read.part.0/47 -> read_table_n/38 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0x1f
         VR  [0, 28]
  Jump functions of caller  write_table_n.part.0/46:
  Jump functions of caller  dtc_read/45:
  Jump functions of caller  programDword_data_flash/44:
  Jump functions of caller  monprintf/43:
  Jump functions of caller  init_table_setup/42:
    callsite  init_table_setup/42 -> read_sign_cs/41 : 
    callsite  init_table_setup/42 -> table_write/39 : 
       param 0: CONST: 0
         value: 0x0, mask: 0x0
         Unknown VR
    callsite  init_table_setup/42 -> table_read.part.0/47 : 
    callsite  init_table_setup/42 -> read_sign_cs/41 : 
    callsite  init_table_setup/42 -> table_read.part.0/47 : 
    callsite  init_table_setup/42 -> read_sign_cs/41 : 
  Jump functions of caller  read_sign_cs/41:
  Jump functions of caller  table_read/40:
    callsite  table_read/40 -> table_read.part.0/47 : 
  Jump functions of caller  table_write/39:
    callsite  table_write/39 -> write_table_n/37 : 
       param 0: UNKNOWN
         value: 0x0, mask: 0x1f
         VR  [0, 29]
  Jump functions of caller  read_table_n/38:
  Jump functions of caller  write_table_n/37:
    callsite  write_table_n/37 -> write_table_n.part.0/46 : 
       param 0: PASS THROUGH: 0, op nop_expr
         value: 0x0, mask: 0xffff
         Unknown VR
  Jump functions of caller  table_did_maping_write/36:
  Jump functions of caller  table_did_maping/35:

 Propagating constants:

Not considering init_table_setup for cloning; -fipa-cp-clone disabled.
Not considering read_sign_cs for cloning; -fipa-cp-clone disabled.
Not considering table_read for cloning; -fipa-cp-clone disabled.
Not considering table_write for cloning; -fipa-cp-clone disabled.
Not considering read_table_n for cloning; -fipa-cp-clone disabled.
Not considering write_table_n for cloning; -fipa-cp-clone disabled.
Function table_did_maping_write/36 is not versionable, reason: not a tree_versionable_function.
Not considering table_did_maping for cloning; -fipa-cp-clone disabled.

overall_size: 332, max_new_size: 11001
 - context independent values, size: 14, time_benefit: 1.000000

IPA lattices after all propagation:

Lattices:
  Node: table_read.part.0/47:
  Node: write_table_n.part.0/46:
    param [0]: VARIABLE
         ctxs: VARIABLE
         Bits unusable (BOTTOM)
         VARYING
        AGGS VARIABLE
  Node: init_table_setup/42:
  Node: read_sign_cs/41:
  Node: table_read/40:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: table_write/39:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: read_table_n/38:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: write_table_n/37:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: table_did_maping_write/36:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM
  Node: table_did_maping/35:
    param [0]: BOTTOM
         ctxs: BOTTOM
         Bits unusable (BOTTOM)
         VARYING
        AGGS BOTTOM

IPA decision stage:


IPA constant propagation end

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

table_read.part.0/47 (table_read.part.0) @06a0f2a0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: 
  Availability: local
  Function flags: count:35755602 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: init_table_setup/42 (240947665 (estimated locally),0.22 per call) init_table_setup/42 (365072220 (estimated locally),0.34 per call) table_read/40 (35755602 (estimated locally),0.50 per call) 
  Calls: read_table_n/38 (1037986221 (estimated locally),29.03 per call) 
write_table_n.part.0/46 (write_table_n.part.0) @06a08e00
  Type: function definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)
  Referring: 
  Availability: local
  Function flags: count:1073741823 (estimated locally) first_run:1 body local split_part optimize_size
  Called by: write_table_n/37 (708669599 (estimated locally),0.66 per call) 
  Calls: monprintf/43 (280030793 (estimated locally),0.26 per call) programDword_data_flash/44 (788691460 (estimated locally),0.73 per call) 
dtc_read/45 (dtc_read) @06b15c40
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: init_table_setup/42 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
programDword_data_flash/44 (programDword_data_flash) @06b15460
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: table_write/39 (35755603 (estimated locally),1.00 per call) write_table_n.part.0/46 (788691460 (estimated locally),0.73 per call) 
  Calls: 
monprintf/43 (monprintf) @06b152a0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: read_sign_cs/41 (141733921 (estimated locally),0.66 per call) read_sign_cs/41 (73014444 (estimated locally),0.34 per call) read_sign_cs/41 (214748365 (estimated locally),1.00 per call) read_table_n/38 (217325345 (estimated locally),0.20 per call) write_table_n.part.0/46 (280030793 (estimated locally),0.26 per call) 
  Calls: 
init_table_setup/42 (init_table_setup) @06af7460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: 
  Calls: dtc_read/45 (1073741824 (estimated locally),1.00 per call) read_sign_cs/41 (467721938 (estimated locally),0.44 per call) table_write/39 (467721938 (estimated locally),0.44 per call) table_read.part.0/47 (240947665 (estimated locally),0.22 per call) read_sign_cs/41 (708669604 (estimated locally),0.66 per call) table_read.part.0/47 (365072220 (estimated locally),0.34 per call) read_sign_cs/41 (1073741823 (estimated locally),1.00 per call) 
read_sign_cs/41 (read_sign_cs) @06af71c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:214748364 (estimated locally) body optimize_size
  Called by: init_table_setup/42 (467721938 (estimated locally),0.44 per call) init_table_setup/42 (708669604 (estimated locally),0.66 per call) init_table_setup/42 (1073741823 (estimated locally),1.00 per call) 
  Calls: monprintf/43 (141733921 (estimated locally),0.66 per call) monprintf/43 (73014444 (estimated locally),0.34 per call) monprintf/43 (214748365 (estimated locally),1.00 per call) 
table_read/40 (table_read) @06aa8ee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:71511204 (estimated locally) body optimize_size
  Called by: 
  Calls: table_read.part.0/47 (35755602 (estimated locally),0.50 per call) 
table_write/39 (table_write) @06aa89a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:35755602 (estimated locally) body optimize_size
  Called by: init_table_setup/42 (467721938 (estimated locally),0.44 per call) 
  Calls: programDword_data_flash/44 (35755603 (estimated locally),1.00 per call) write_table_n/37 (1037986221 (estimated locally),29.03 per call) 
read_table_n/38 (read_table_n) @06aa80e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)EEP_ADDR_TABLE/34 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: table_read.part.0/47 (1037986221 (estimated locally),29.03 per call) 
  Calls: monprintf/43 (217325345 (estimated locally),0.20 per call) 
write_table_n/37 (write_table_n) @06aa8e00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741823 (estimated locally) body optimize_size
  Called by: table_write/39 (1037986221 (estimated locally),29.03 per call) 
  Calls: write_table_n.part.0/46 (708669599 (estimated locally),0.66 per call) 
table_did_maping_write/36 (table_did_maping_write) @06aa8b60
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body icf_merged optimize_size
  Called by: 
  Calls: table_did_maping/35 (1073741824 (estimated locally),1.00 per call) 
table_did_maping/35 (table_did_maping) @06aa88c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body icf_merged optimize_size
  Called by: table_did_maping_write/36 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
EEP_ADDR_TABLE/34 (EEP_ADDR_TABLE) @06aa3bd0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: TABLE_OEM_PN_ASCII/5 (addr)TABLE_ECU_DATE_BCD/6 (addr)TABLE_SUPPLYER_SW_NO_ASC/7 (addr)TABLE_SUPPLYER_HW_NO_ASC/8 (addr)RID_10/9 (addr)RID_11/10 (addr)RID_12/11 (addr)RID_13/12 (addr)RID_14/13 (addr)RID_15/14 (addr)RID_16/15 (addr)RID_17/16 (addr)RID_18/17 (addr)RID_19/18 (addr)RID_1A/19 (addr)RID_1B/20 (addr)RID_1C/21 (addr)RID_1D/22 (addr)RID_1E/23 (addr)RID_1F/24 (addr)RID_20/25 (addr)RID_21/26 (addr)RID_22/27 (addr)RID_23/28 (addr)RID_24/29 (addr)RID_25/30 (addr)RID_26/31 (addr)RID_27/32 (addr)RID_28/33 (addr)
  Referring: write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)write_table_n.part.0/46 (read)read_table_n/38 (read)read_table_n/38 (read)read_table_n/38 (read)read_table_n/38 (read)read_table_n/38 (read)read_table_n/38 (read)read_table_n/38 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
RID_28/33 (RID_28) @06aa32d0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_27/32 (RID_27) @06aa3288
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_26/31 (RID_26) @06aa3240
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_25/30 (RID_25) @06aa31f8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_24/29 (RID_24) @06aa31b0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_23/28 (RID_23) @06aa3168
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_22/27 (RID_22) @06aa3120
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_21/26 (RID_21) @06aa30d8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_20/25 (RID_20) @06aa3090
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1F/24 (RID_1F) @06aa3048
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1E/23 (RID_1E) @06aa3000
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1D/22 (RID_1D) @06a9ca68
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1C/21 (RID_1C) @06a9cf78
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1B/20 (RID_1B) @06a9cf30
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_1A/19 (RID_1A) @06a9cee8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_19/18 (RID_19) @06a9cea0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_18/17 (RID_18) @06a9ce58
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_17/16 (RID_17) @06a9ce10
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_16/15 (RID_16) @06a9cdc8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_15/14 (RID_15) @06a9cd80
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_14/13 (RID_14) @06a9cd38
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_13/12 (RID_13) @06a9ccf0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_12/11 (RID_12) @06a9cca8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_11/10 (RID_11) @06a9cc60
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
RID_10/9 (RID_10) @06a9cc18
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags:
TABLE_SUPPLYER_HW_NO_ASC/8 (TABLE_SUPPLYER_HW_NO_ASC) @06a9cbd0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags: initialized
TABLE_SUPPLYER_SW_NO_ASC/7 (TABLE_SUPPLYER_SW_NO_ASC) @06a9cb88
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags: initialized
TABLE_ECU_DATE_BCD/6 (TABLE_ECU_DATE_BCD) @06a9cb40
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags: initialized
TABLE_OEM_PN_ASCII/5 (TABLE_OEM_PN_ASCII) @06a9caf8
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: EEP_ADDR_TABLE/34 (addr)
  Availability: available
  Varpool flags: initialized
TABLE_DTC_SEND/4 (TABLE_DTC_SEND) @06a9cab0
  Type: variable definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Varpool flags: initialized
dflash_buf/3 (dflash_buf) @06a9ca20
  Type: variable definition analyzed
  Visibility: force_output externally_visible public
  References: 
  Referring: 
  Availability: available
  Varpool flags: initialized

;; Function table_did_maping (table_did_maping, funcdef_no=3, decl_uid=5982, cgraph_uid=4, symbol_order=35)

Modification phase of node table_did_maping/35
table_did_maping (uint16_t did)
{
  uint16_t rt;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT
  switch (did_2(D)) <default: <L29> [3.33%], case 61456: <L4> [3.33%], case 61457: <L5> [3.33%], case 61458: <L6> [3.33%], case 61459: <L7> [3.33%], case 61460: <L8> [3.33%], case 61461: <L9> [3.33%], case 61462: <L10> [3.33%], case 61463: <L11> [3.33%], case 61464: <L12> [3.33%], case 61465: <L13> [3.33%], case 61466: <L14> [3.33%], case 61467: <L15> [3.33%], case 61468: <L16> [3.33%], case 61469: <L17> [3.33%], case 61470: <L18> [3.33%], case 61471: <L19> [3.33%], case 61472: <L20> [3.33%], case 61473: <L21> [3.33%], case 61474: <L22> [3.33%], case 61475: <L23> [3.33%], case 61476: <L24> [3.33%], case 61477: <L25> [3.33%], case 61478: <L26> [3.33%], case 61479: <L27> [3.33%], case 61480: <L28> [3.33%], case 61831: <L32> [3.33%], case 61832: <L1> [3.33%], case 61843: <L3> [3.33%], case 61845: <L2> [3.33%]>

  <bb 3> [local count: 35755603]:
<L1>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 1
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 4> [local count: 35755603]:
<L2>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 2
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 5> [local count: 35755603]:
<L3>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 3
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 6> [local count: 35755603]:
<L4>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 4
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 7> [local count: 35755603]:
<L5>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 5
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 8> [local count: 35755603]:
<L6>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 6
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 9> [local count: 35755603]:
<L7>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 7
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 10> [local count: 35755603]:
<L8>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 8
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 11> [local count: 35755603]:
<L9>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 9
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 12> [local count: 35755603]:
<L10>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 13> [local count: 35755603]:
<L11>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 10
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 14> [local count: 35755603]:
<L12>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 11
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 15> [local count: 35755603]:
<L13>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 12
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 16> [local count: 35755603]:
<L14>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 13
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 17> [local count: 35755603]:
<L15>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 14
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 18> [local count: 35755603]:
<L16>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 15
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 19> [local count: 35755603]:
<L17>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 16
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 20> [local count: 35755603]:
<L18>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 17
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 21> [local count: 35755603]:
<L19>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 18
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 22> [local count: 35755603]:
<L20>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 19
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 23> [local count: 35755603]:
<L21>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 24> [local count: 35755603]:
<L22>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 20
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 25> [local count: 35755603]:
<L23>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 21
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 26> [local count: 35755603]:
<L24>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 22
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 27> [local count: 35755603]:
<L25>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 23
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 28> [local count: 35755603]:
<L26>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 24
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 29> [local count: 35755603]:
<L27>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 25
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 30> [local count: 35755603]:
<L28>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 26
  # DEBUG BEGIN_STMT
  goto <bb 32>; [100.00%]

  <bb 31> [local count: 35755603]:
<L29>:
  # DEBUG BEGIN_STMT
  # DEBUG rt => 65535
  # DEBUG BEGIN_STMT

  <bb 32> [local count: 1072668089]:
  # rt_1 = PHI <0(2), 1(3), 2(4), 3(5), 4(6), 5(7), 6(8), 7(9), 8(10), 9(11), 10(12), 10(13), 11(14), 12(15), 13(16), 14(17), 15(18), 16(19), 17(20), 18(21), 19(22), 20(23), 20(24), 21(25), 22(26), 23(27), 24(28), 25(29), 26(30), 65535(31)>
<L32>:
  # DEBUG rt => rt_1
  # DEBUG BEGIN_STMT
  return rt_1;

}



;; Function table_did_maping_write (table_did_maping_write, funcdef_no=14, decl_uid=5984, cgraph_uid=5, symbol_order=36)

Modification phase of node table_did_maping_write/36
table_did_maping_write (uint16_t did)
{
  uint16_t retval.36;

  <bb 2> [local count: 1073741824]:
  retval.36_2 = table_did_maping (did_1(D)); [tail call]
  return retval.36_2;

}



;; Function write_table_n (write_table_n, funcdef_no=5, decl_uid=5978, cgraph_uid=6, symbol_order=37)

Modification phase of node write_table_n/37
write_table_n (uint16_t n)
{
  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (n_1(D) > 28)
    goto <bb 4>; [34.00%]
  else
    goto <bb 3>; [66.00%]

  <bb 3> [local count: 708669599]:
  write_table_n.part.0 (n_1(D));

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

}



;; Function read_table_n (read_table_n, funcdef_no=6, decl_uid=5980, cgraph_uid=7, symbol_order=38)

Modification phase of node read_table_n/38
read_table_n (uint16_t n)
{
  volatile vuint8_t * pd1;
  volatile vuint16_t * pd2;
  volatile vuint32_t * pd4;
  volatile vuint32_t * ps;
  unsigned int k;
  unsigned int wr;
  unsigned int wrlen;
  int _1;
  int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  unsigned int _9;
  unsigned int _10;
  volatile vuint16_t * _11;
  short unsigned int _12;
  unsigned int _13;
  volatile vuint16_t * _14;
  short unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  unsigned int _18;
  volatile vuint32_t * _19;
  long unsigned int _20;
  unsigned int _21;
  volatile vuint8_t * _22;
  unsigned char _23;
  unsigned int _24;
  volatile vuint8_t * _25;
  unsigned char _26;
  unsigned int _27;
  volatile vuint8_t * _28;
  unsigned char _29;
  volatile vuint8_t * _30;
  unsigned char _31;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (n_42(D) > 28)
    goto <bb 3>; [20.24%]
  else
    goto <bb 4>; [79.76%]

  <bb 3> [local count: 217325345]:
  # DEBUG BEGIN_STMT
  _1 = (int) n_42(D);
  monprintf ("table over %d\n\r", _1);
  # DEBUG BEGIN_STMT
  goto <bb 22>; [100.00%]

  <bb 4> [local count: 856416478]:
  # DEBUG BEGIN_STMT
  _2 = (int) n_42(D);
  _3 = EEP_ADDR_TABLE[_2][0];
  if (_3 == 65535)
    goto <bb 22>; [20.97%]
  else
    goto <bb 5>; [79.03%]

  <bb 5> [local count: 676825943]:
  # DEBUG BEGIN_STMT
  _4 = EEP_ADDR_TABLE[_2][7];
  if (_4 != 1)
    goto <bb 22>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 6> [local count: 338412971]:
  # DEBUG BEGIN_STMT
  _5 = EEP_ADDR_TABLE[_2][4];
  if (_5 == 7)
    goto <bb 22>; [20.97%]
  else
    goto <bb 7>; [79.03%]

  <bb 7> [local count: 267447771]:
  # DEBUG BEGIN_STMT
  # DEBUG D#10 => EEP_ADDR_TABLE[_2][1]
  # DEBUG rdlen => D#10
  # DEBUG BEGIN_STMT
  # DEBUG rdlen => D#10 >> 2
  # DEBUG BEGIN_STMT
  wrlen_44 = EEP_ADDR_TABLE[_2][2];
  # DEBUG wrlen => wrlen_44
  # DEBUG BEGIN_STMT
  _6 = _3 + 8388608;
  ps_45 = (volatile vuint32_t *) _6;
  # DEBUG ps => ps_45
  # DEBUG BEGIN_STMT
  # DEBUG wr => 0
  # DEBUG BEGIN_STMT
  _7 = _5 + 4294967294;
  if (_7 <= 1)
    goto <bb 8>; [41.00%]
  else
    goto <bb 12>; [59.00%]

  <bb 8> [local count: 109653586]:
  # DEBUG BEGIN_STMT
  wrlen_63 = wrlen_44 >> 1;
  # DEBUG wrlen => wrlen_63
  # DEBUG BEGIN_STMT
  _8 = EEP_ADDR_TABLE[_2][3];
  pd2_64 = (volatile vuint16_t *) _8;
  # DEBUG pd2 => pd2_64
  # DEBUG BEGIN_STMT
  goto <bb 11>; [100.00%]

  <bb 9> [local count: 998203895]:
  # DEBUG BEGIN_STMT
  ps_65 = ps_35 + 4;
  # DEBUG ps => ps_65
  k_66 ={v} *ps_35;
  # DEBUG k => k_66
  # DEBUG BEGIN_STMT
  _9 = k_66 >> 16;
  wr_67 = wr_32 + 1;
  # DEBUG wr => wr_67
  _10 = wr_32 * 2;
  _11 = pd2_64 + _10;
  _12 = (short unsigned int) _9;
  *_11 ={v} _12;
  # DEBUG BEGIN_STMT
  if (wrlen_63 <= wr_67)
    goto <bb 22>; [3.66%]
  else
    goto <bb 10>; [96.34%]

  <bb 10> [local count: 961669632]:
  # DEBUG BEGIN_STMT
  wr_69 = wr_32 + 2;
  # DEBUG wr => wr_69
  _13 = wr_67 * 2;
  _14 = pd2_64 + _13;
  _15 = (short unsigned int) k_66;
  *_14 ={v} _15;
  # DEBUG BEGIN_STMT
  if (wrlen_63 <= wr_69)
    goto <bb 22>; [3.66%]
  else
    goto <bb 23>; [96.34%]

  <bb 23> [local count: 926472522]:

  <bb 11> [local count: 1036126112]:
  # wr_32 = PHI <0(8), wr_69(23)>
  # ps_35 = PHI <ps_45(8), ps_65(23)>
  # DEBUG ps => ps_35
  # DEBUG wr => wr_32
  # DEBUG BEGIN_STMT
  if (wr_32 < wrlen_63)
    goto <bb 9>; [96.34%]
  else
    goto <bb 22>; [3.66%]

  <bb 12> [local count: 157794185]:
  # DEBUG BEGIN_STMT
  _16 = _5 + 4294967292;
  if (_16 <= 1)
    goto <bb 13>; [41.00%]
  else
    goto <bb 16>; [59.00%]

  <bb 13> [local count: 64695616]:
  # DEBUG BEGIN_STMT
  wrlen_57 = wrlen_44 >> 2;
  # DEBUG wrlen => wrlen_57
  # DEBUG BEGIN_STMT
  _17 = EEP_ADDR_TABLE[_2][3];
  pd4_58 = (volatile vuint32_t *) _17;
  # DEBUG pd4 => pd4_58
  # DEBUG BEGIN_STMT
  goto <bb 15>; [100.00%]

  <bb 14> [local count: 523446350]:
  # DEBUG BEGIN_STMT
  ps_59 = ps_36 + 4;
  # DEBUG ps => ps_59
  k_60 ={v} *ps_36;
  # DEBUG k => k_60
  # DEBUG BEGIN_STMT
  wr_61 = wr_33 + 1;
  # DEBUG wr => wr_61
  _18 = wr_33 * 4;
  _19 = pd4_58 + _18;
  *_19 ={v} k_60;

  <bb 15> [local count: 588141967]:
  # wr_33 = PHI <0(13), wr_61(14)>
  # ps_36 = PHI <ps_45(13), ps_59(14)>
  # DEBUG ps => ps_36
  # DEBUG wr => wr_33
  # DEBUG BEGIN_STMT
  if (wr_33 < wrlen_57)
    goto <bb 14>; [89.00%]
  else
    goto <bb 22>; [11.00%]

  <bb 16> [local count: 93098569]:
  # DEBUG BEGIN_STMT
  _20 = EEP_ADDR_TABLE[_2][3];
  pd1_46 = (volatile vuint8_t *) _20;
  # DEBUG pd1 => pd1_46
  # DEBUG BEGIN_STMT
  goto <bb 21>; [100.00%]

  <bb 17> [local count: 864961090]:
  # DEBUG BEGIN_STMT
  ps_47 = ps_37 + 4;
  # DEBUG ps => ps_47
  k_48 ={v} *ps_37;
  # DEBUG k => k_48
  # DEBUG BEGIN_STMT
  _21 = k_48 >> 24;
  wr_49 = wr_34 + 1;
  # DEBUG wr => wr_49
  _22 = pd1_46 + wr_34;
  _23 = (unsigned char) _21;
  *_22 ={v} _23;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_49)
    goto <bb 22>; [2.20%]
  else
    goto <bb 18>; [97.80%]

  <bb 18> [local count: 845931946]:
  # DEBUG BEGIN_STMT
  _24 = k_48 >> 16;
  wr_51 = wr_34 + 2;
  # DEBUG wr => wr_51
  _25 = pd1_46 + wr_49;
  _26 = (unsigned char) _24;
  *_25 ={v} _26;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_51)
    goto <bb 22>; [2.20%]
  else
    goto <bb 19>; [97.80%]

  <bb 19> [local count: 827321443]:
  # DEBUG BEGIN_STMT
  _27 = k_48 >> 8;
  wr_53 = wr_34 + 3;
  # DEBUG wr => wr_53
  _28 = pd1_46 + wr_51;
  _29 = (unsigned char) _27;
  *_28 ={v} _29;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_53)
    goto <bb 22>; [2.20%]
  else
    goto <bb 20>; [97.80%]

  <bb 20> [local count: 809120371]:
  # DEBUG BEGIN_STMT
  wr_55 = wr_34 + 4;
  # DEBUG wr => wr_55
  _30 = pd1_46 + wr_53;
  _31 = (unsigned char) k_48;
  *_30 ={v} _31;
  # DEBUG BEGIN_STMT
  if (wrlen_44 <= wr_55)
    goto <bb 22>; [2.20%]
  else
    goto <bb 24>; [97.80%]

  <bb 24> [local count: 791319723]:

  <bb 21> [local count: 884418293]:
  # wr_34 = PHI <0(16), wr_55(24)>
  # ps_37 = PHI <ps_45(16), ps_47(24)>
  # DEBUG ps => ps_37
  # DEBUG wr => wr_34
  # DEBUG BEGIN_STMT
  if (wr_34 < wrlen_44)
    goto <bb 17>; [97.80%]
  else
    goto <bb 22>; [2.20%]

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

}



;; Function table_read.part.0 (table_read.part.0, funcdef_no=12, decl_uid=6267, cgraph_uid=16, symbol_order=47)

Modification phase of node table_read.part.0/47
table_read.part.0 ()
{
  uint8_t i;
  uint16_t block;
  short unsigned int _2;

  <bb 5> [local count: 35755602]:
  # DEBUG D#12 s=> block
  # DEBUG block => D#12
  goto <bb 3>; [100.00%]

  <bb 2> [local count: 1037986221]:
  # DEBUG BEGIN_STMT
  _2 = (short unsigned int) i_1;
  read_table_n (_2);
  # DEBUG BEGIN_STMT
  i_3 = i_1 + 1;
  # DEBUG i => i_3

  <bb 3> [local count: 1073741824]:
  # i_1 = PHI <i_3(2), 0(5)>
  # DEBUG i => i_1
  # DEBUG BEGIN_STMT
  if (i_1 != 29)
    goto <bb 2>; [96.67%]
  else
    goto <bb 4>; [3.33%]

  <bb 4> [local count: 35755603]:
  return;

}



;; Function table_write (table_write, funcdef_no=7, decl_uid=5986, cgraph_uid=8, symbol_order=39)

Modification phase of node table_write/39
table_write (uint16_t block)
{
  volatile vuint32_t p;
  volatile vuint32_t t[2];
  uint16_t i;
  long unsigned int p.25_1;

  <bb 2> [local count: 35755602]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 1037986221]:
  # DEBUG BEGIN_STMT
  write_table_n (i_2);
  # DEBUG BEGIN_STMT
  i_10 = i_2 + 1;
  # DEBUG i => i_10

  <bb 4> [local count: 1073741824]:
  # i_2 = PHI <0(2), i_10(3)>
  # DEBUG i => i_2
  # DEBUG BEGIN_STMT
  if (i_2 != 29)
    goto <bb 3>; [96.67%]
  else
    goto <bb 5>; [3.33%]

  <bb 5> [local count: 35755603]:
  # DEBUG BEGIN_STMT
  t[0] ={v} 2882400085;
  # DEBUG BEGIN_STMT
  t[1] ={v} 1008;
  # DEBUG BEGIN_STMT
  p ={v} 8388624;
  # DEBUG BEGIN_STMT
  p.25_1 ={v} p;
  programDword_data_flash (p.25_1, &t);
  # DEBUG i => NULL
  # DEBUG BEGIN_STMT
  return 0;

}



;; Function table_read (table_read, funcdef_no=8, decl_uid=5988, cgraph_uid=9, symbol_order=40)

Modification phase of node table_read/40
table_read (uint16_t block)
{
  uint8_t i;

  <bb 2> [local count: 71511204]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (block_4(D) == 0)
    goto <bb 3>; [50.00%]
  else
    goto <bb 4>; [50.00%]

  <bb 3> [local count: 35755602]:
  # i_2 = PHI <0(2)>
  # DEBUG D#11 => block_4(D)
  table_read.part.0 ();

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

}



;; Function read_sign_cs (read_sign_cs, funcdef_no=9, decl_uid=5990, cgraph_uid=10, symbol_order=41)

Modification phase of node read_sign_cs/41
read_sign_cs ()
{
  volatile vuint32_t buf[8];
  volatile vuint32_t * p;
  uint32_t i;
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int _6;
  int16_t _9;

  <bb 2> [local count: 214748364]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG p => 8388624B
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 858993459]:
  # DEBUG BEGIN_STMT
  p_16 = p_8 + 4;
  # DEBUG p => p_16
  _1 ={v} *p_8;
  buf[i_7] ={v} _1;
  # DEBUG BEGIN_STMT
  i_18 = i_7 + 1;
  # DEBUG i => i_18

  <bb 4> [local count: 1073741824]:
  # i_7 = PHI <0(2), i_18(3)>
  # p_8 = PHI <8388624B(2), p_16(3)>
  # DEBUG p => p_8
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  if (i_7 != 4)
    goto <bb 3>; [80.00%]
  else
    goto <bb 5>; [20.00%]

  <bb 5> [local count: 214748365]:
  # DEBUG BEGIN_STMT
  _2 ={v} buf[0];
  _3 ={v} buf[1];
  _4 ={v} buf[2];
  _5 ={v} buf[3];
  monprintf ("\n\r%08X,%08X,%08X,%08X\n\r", _2, _3, _4, _5);
  # DEBUG BEGIN_STMT
  _6 ={v} buf[1];
  if (_6 == 1008)
    goto <bb 6>; [34.00%]
  else
    goto <bb 7>; [66.00%]

  <bb 6> [local count: 73014444]:
  # DEBUG BEGIN_STMT
  monprintf ("sign ok \n\r");
  # DEBUG BEGIN_STMT
  goto <bb 8>; [100.00%]

  <bb 7> [local count: 141733921]:
  # DEBUG BEGIN_STMT
  monprintf ("sign FAIL\n\n\r");
  # DEBUG BEGIN_STMT

  <bb 8> [local count: 214748365]:
  # _9 = PHI <1(6), -1(7)>
  return _9;

}



;; Function init_table_setup (init_table_setup, funcdef_no=10, decl_uid=5992, cgraph_uid=11, symbol_order=42)

Modification phase of node init_table_setup/42
init_table_setup ()
{
  short int _1;
  short int _2;

  <bb 2> [local count: 1073741823]:
  # DEBUG BEGIN_STMT
  _1 = read_sign_cs ();
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  # DEBUG block => 0
  # DEBUG INLINE_ENTRY table_read
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => 0
  table_read.part.0 ();
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 708669604]:
  # DEBUG BEGIN_STMT
  _2 = read_sign_cs ();
  if (_2 == 1)
    goto <bb 5>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 5> [local count: 240947665]:
  # DEBUG BEGIN_STMT
  # DEBUG block => 0
  # DEBUG INLINE_ENTRY table_read
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG D#11 => 0
  table_read.part.0 ();
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 6> [local count: 467721938]:
  # DEBUG BEGIN_STMT
  table_write (0);
  # DEBUG BEGIN_STMT
  read_sign_cs ();

  <bb 7> [local count: 1073741824]:
  # DEBUG block => NULL
  # DEBUG i => NULL
  # DEBUG block => NULL
  # DEBUG i => NULL
  # DEBUG BEGIN_STMT
  dtc_read ();
  return;

}


