Parsed function:programDword_data_flash
Parsed function:string_to_int
Parsed function:put_charp
Parsed function:put_cr
Parsed function:monprintf
Parsed function:OutStr
Parsed function:OutDev0
Parsed function:D2C
Parsed function:delayN
Dump after hash based groups
Congruence classes: 9 (unique hash values: 9), with total: 9 items
Class size histogram [num of members]: number of classe number of classess
[1]: 9 classes


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


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


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


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



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

programDword_data_flash (uint32_t address, uint32_t * data)
{
  uint16_t ret;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG size => 8
  # DEBUG BEGIN_STMT
  return ret_1(D);

}


string_to_int (uint8_t * buf)
{
  uint32_t n;
  uint32_t p;
  uint32_t k;
  uint32_t j;
  uint32_t i;
  uint8_t * _1;
  unsigned char _2;
  int _3;
  int _5;
  long unsigned int _6;
  unsigned char _15;

  <bb 2> [local count: 118207164]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG j => 0
  # DEBUG BEGIN_STMT
  # DEBUG p => 0
  # DEBUG BEGIN_STMT
  # DEBUG n => 0
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 12>; [100.00%]

  <bb 3> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  # DEBUG k => 0
  # DEBUG BEGIN_STMT
  _1 = buf_17(D) + n_14;
  _2 = *_1;
  _3 = (int) _2;
  switch (_2) <default: <L17> [33.33%], case 48 ... 57: <L1> [33.33%], case 65 ... 70: <L11> [33.33%]>

  <bb 4> [local count: 318511554]:
<L1>:
  # DEBUG BEGIN_STMT
  _15 = _2 & 15;
  k_20 = (uint32_t) _15;
  # DEBUG k => k_20
  # DEBUG BEGIN_STMT
  p_21 = p_13 + 1;
  # DEBUG p => p_21
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 5> [local count: 318511554]:
<L11>:
  # DEBUG BEGIN_STMT
  _5 = _3 + -55;
  k_18 = (uint32_t) _5;
  # DEBUG k => k_18
  # DEBUG BEGIN_STMT
  p_19 = p_13 + 1;
  # DEBUG p => p_19
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 6> [local count: 318511554]:
<L17>:
  # DEBUG BEGIN_STMT
  if (j_10 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 7> [local count: 159255777]:
  if (p_13 != 0)
    goto <bb 8>; [50.00%]
  else
    goto <bb 9>; [50.00%]

  <bb 8> [local count: 238883666]:
  # DEBUG BEGIN_STMT
  # DEBUG i => 8

  <bb 9> [local count: 955534663]:
  # i_7 = PHI <i_8(4), i_8(5), 8(8), i_8(7)>
  # k_11 = PHI <k_20(4), k_18(5), 0(8), 0(7)>
  # p_12 = PHI <p_21(4), p_19(5), p_13(8), p_13(7)>
  # DEBUG p => p_12
  # DEBUG k => k_11
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  if (i_7 != 8)
    goto <bb 10>; [66.00%]
  else
    goto <bb 11>; [34.00%]

  <bb 10> [local count: 630652877]:
  # DEBUG BEGIN_STMT
  _6 = j_10 << 4;
  j_22 = _6 + k_11;
  # DEBUG j => j_22

  <bb 11> [local count: 955534663]:
  # j_9 = PHI <j_10(9), j_22(10)>
  # DEBUG j => j_9
  # DEBUG BEGIN_STMT
  n_23 = n_14 + 1;
  # DEBUG n => n_23
  # DEBUG BEGIN_STMT
  i_24 = i_7 + 1;
  # DEBUG i => i_24

  <bb 12> [local count: 1073741824]:
  # i_8 = PHI <0(2), i_24(11)>
  # j_10 = PHI <0(2), j_9(11)>
  # p_13 = PHI <0(2), p_12(11)>
  # n_14 = PHI <0(2), n_23(11)>
  # DEBUG n => n_14
  # DEBUG p => p_13
  # DEBUG j => j_10
  # DEBUG i => i_8
  # DEBUG BEGIN_STMT
  if (i_8 <= 7)
    goto <bb 3>; [89.00%]
  else
    goto <bb 13>; [11.00%]

  <bb 13> [local count: 118111601]:
  # j_4 = PHI <j_10(12)>
  # DEBUG BEGIN_STMT
  return j_4;

}


put_charp (unsigned char a)
{
  unsigned char i;
  unsigned char _1;
  unsigned char _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  i_4 = a_3(D) >> 4;
  # DEBUG i => i_4
  # DEBUG BEGIN_STMT
  # DEBUG i => i_4
  # DEBUG BEGIN_STMT
  _1 = D2C (i_4);
  OutDev0 (_1);
  # DEBUG BEGIN_STMT
  i_7 = a_3(D) & 15;
  # DEBUG i => i_7
  # DEBUG BEGIN_STMT
  _2 = D2C (i_7);
  OutDev0 (_2);
  # DEBUG BEGIN_STMT
  OutDev0 (44);
  return;

}


put_cr ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  OutDev0 (13);
  # DEBUG BEGIN_STMT
  OutDev0 (10);
  return;

}


monprintf (char * msg)
{
  struct va_list argptr;
  char str[256];

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  __builtin_va_start (&argptr, 0);
  # DEBUG BEGIN_STMT
  vsprintf (&str, msg_3(D), argptr);
  # DEBUG BEGIN_STMT
  __builtin_va_end (&argptr);
  # DEBUG BEGIN_STMT
  str[253] = 0;
  # DEBUG BEGIN_STMT
  str[254] = 0;
  # DEBUG BEGIN_STMT
  OutStr (&str);
  str ={v} {CLOBBER};
  argptr ={v} {CLOBBER};
  return;

}


OutStr (const char * text)
{
  char _1;

  <bb 2> [local count: 118111600]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 955630223]:
  # DEBUG BEGIN_STMT
  text_6 = text_2 + 1;
  # DEBUG text => text_6
  OutDev0 (_1);

  <bb 4> [local count: 1073741824]:
  # text_2 = PHI <text_4(D)(2), text_6(3)>
  # DEBUG text => text_2
  # DEBUG BEGIN_STMT
  _1 = *text_2;
  if (_1 != 0)
    goto <bb 3>; [89.00%]
  else
    goto <bb 5>; [11.00%]

  <bb 5> [local count: 118111601]:
  return;

}


OutDev0 (char c)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  Lpuart_Uart_Ip_SyncSend (0, &c, 1);
  return;

}


D2C (uint8_t c)
{
  uint8_t _1;
  uint8_t _3;
  uint8_t _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  if (c_2(D) <= 9)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _4 = c_2(D) + 48;
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 708669605]:
  # DEBUG BEGIN_STMT
  _3 = c_2(D) + 55;

  <bb 5> [local count: 1073741824]:
  # _1 = PHI <_4(3), _3(4)>
  return _1;

}


delayN (uint32_t n)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG n => NULL
  # DEBUG BEGIN_STMT
  return;

}


