
Marking local functions:


Marking externally visible functions: pfe_hm_get_src_str pfe_hm_get_event_str pfe_hm_register_event_cb pfe_hm_get pfe_hm_report pfe_hm_destroy pfe_hm_init


Marking externally visible variables:

Clearing variable flags: hm_src_strings (non-addressable) hm_src_strings (read-only) hm_evt_strings (non-addressable)

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

memcpy/22 (memcpy) @070bc540
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: pfe_hm_get/18 (250769751 (estimated locally),0.23 per call) 
  Calls: 
pfe_hm_get_src_str/21 (pfe_hm_get_src_str) @070b78c0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: hm_src_strings/14 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hm_get_event_str/20 (pfe_hm_get_event_str) @070b7e00
  Type: function definition analyzed
  Visibility: externally_visible public
  References: hm_evt_strings/13 (read)hm_evt_strings/13 (read)
  Referring: 
  Availability: available
  Function flags: count:69202660 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hm_register_event_cb/19 (pfe_hm_register_event_cb) @070b7a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_hm/12 (read)pfe_hm/12 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hm_get/18 (pfe_hm_get) @070b77e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_hm/12 (read)pfe_hm/12 (read)pfe_hm/12 (read)pfe_hm/12 (addr)pfe_hm/12 (read)pfe_hm/12 (write)pfe_hm/12 (read)pfe_hm/12 (write)pfe_hm/12 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: memcpy/22 (250769751 (estimated locally),0.23 per call) 
pfe_hm_report/17 (pfe_hm_report) @070b7460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_hm/12 (read)pfe_hm/12 (read)pfe_hm/12 (read)pfe_hm/12 (addr)pfe_hm/12 (read)pfe_hm/12 (write)pfe_hm/12 (read)pfe_hm/12 (write)pfe_hm/12 (write)pfe_hm/12 (read)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
   Indirect call(751619278 (estimated locally),0.70 per call) 
pfe_hm_destroy/16 (pfe_hm_destroy) @070b7000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_hm/12 (read)pfe_hm/12 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
pfe_hm_init/15 (pfe_hm_init) @07140460
  Type: function definition analyzed
  Visibility: externally_visible public
  References: pfe_hm/12 (write)pfe_hm/12 (write)pfe_hm/12 (write)pfe_hm/12 (write)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
hm_src_strings/14 (hm_src_strings) @070af1f8
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_hm_get_src_str/21 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
hm_evt_strings/13 (hm_evt_strings) @070af120
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_hm_get_event_str/20 (read)pfe_hm_get_event_str/20 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
pfe_hm/12 (pfe_hm) @0713b6c0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: pfe_hm_destroy/16 (read)pfe_hm_destroy/16 (write)pfe_hm_report/17 (write)pfe_hm_report/17 (read)pfe_hm_get/18 (write)pfe_hm_get/18 (write)pfe_hm_report/17 (read)pfe_hm_report/17 (read)pfe_hm_report/17 (read)pfe_hm_report/17 (addr)pfe_hm_report/17 (read)pfe_hm_report/17 (write)pfe_hm_init/15 (write)pfe_hm_init/15 (write)pfe_hm_report/17 (read)pfe_hm_report/17 (write)pfe_hm_init/15 (write)pfe_hm_init/15 (write)pfe_hm_get/18 (read)pfe_hm_get/18 (read)pfe_hm_get/18 (read)pfe_hm_get/18 (addr)pfe_hm_get/18 (read)pfe_hm_get/18 (write)pfe_hm_get/18 (read)pfe_hm_register_event_cb/19 (read)pfe_hm_register_event_cb/19 (write)
  Availability: available
  Varpool flags:
pfe_hm_get_src_str (pfe_hm_src_t src)
{
  const char * ret;
  int _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => ""
  # DEBUG BEGIN_STMT
  if (src_3(D) > 15)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
  # DEBUG BEGIN_STMT
  _1 = (int) src_3(D);
  ret_5 = hm_src_strings[_1];
  # DEBUG ret => ret_5

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

}


pfe_hm_get_event_str (pfe_hm_evt_t id)
{
  const char * ret;
  uint32_t i;
  <unnamed type> _1;

  <bb 2> [local count: 69202660]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ret => ""
  # DEBUG BEGIN_STMT
  # DEBUG i => 0
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 1063004405]:
  # DEBUG BEGIN_STMT
  _1 = hm_evt_strings[i_2].id;
  if (_1 == id_6(D))
    goto <bb 4>; [5.50%]
  else
    goto <bb 5>; [94.50%]

  <bb 4> [local count: 58465242]:
  # i_4 = PHI <i_2(3)>
  # DEBUG BEGIN_STMT
  ret_8 = hm_evt_strings[i_4].str;
  # DEBUG ret => ret_8
  # DEBUG BEGIN_STMT
  goto <bb 7>; [100.00%]

  <bb 5> [local count: 1004539164]:
  # DEBUG BEGIN_STMT
  i_7 = i_2 + 1;
  # DEBUG i => i_7

  <bb 6> [local count: 1073741824]:
  # i_2 = PHI <0(2), i_7(5)>
  # DEBUG i => i_2
  # DEBUG BEGIN_STMT
  if (i_2 != 103)
    goto <bb 3>; [99.00%]
  else
    goto <bb 7>; [1.00%]

  <bb 7> [local count: 69202660]:
  # ret_3 = PHI <ret_8(4), ""(6)>
  # DEBUG ret => ret_3
  # DEBUG BEGIN_STMT
  return ret_3;

}


pfe_hm_register_event_cb (void (*pfe_hm_cb_t) (struct pfe_hm_item_t *) cb)
{
  bool_t ret;
  void (*<T5d6>) (struct pfe_hm_item_t *) _1;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 0
  # DEBUG BEGIN_STMT
  _1 = pfe_hm.event_cb;
  if (_1 == 0B)
    goto <bb 3>; [30.00%]
  else
    goto <bb 4>; [70.00%]

  <bb 3> [local count: 322122547]:
  # DEBUG BEGIN_STMT
  pfe_hm.event_cb = cb_5(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret => 1

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

}


pfe_hm_get (struct pfe_hm_item_t * item)
{
  errno_t ret;
  unsigned char _1;
  long unsigned int _2;
  long unsigned int _3;
  struct pfe_hm_item_t * _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret => 2
  # DEBUG BEGIN_STMT
  _1 = pfe_hm.initialized;
  if (_1 == 1)
    goto <bb 3>; [48.89%]
  else
    goto <bb 7>; [51.11%]

  <bb 3> [local count: 524952378]:
  # DEBUG BEGIN_STMT
  _2 = pfe_hm.len;
  if (_2 != 0)
    goto <bb 4>; [47.77%]
  else
    goto <bb 7>; [52.23%]

  <bb 4> [local count: 250769751]:
  # DEBUG BEGIN_STMT
  _3 = pfe_hm.start;
  _4 = &pfe_hm.items[_3];
  memcpy (item_12(D), _4, 3);
  # DEBUG BEGIN_STMT
  _5 = pfe_hm.len;
  _6 = _5 + 4294967295;
  pfe_hm.len = _6;
  # DEBUG BEGIN_STMT
  _7 = pfe_hm.start;
  _8 = _7 + 1;
  pfe_hm.start = _8;
  # DEBUG BEGIN_STMT
  if (_8 > 7)
    goto <bb 5>; [50.00%]
  else
    goto <bb 7>; [50.00%]

  <bb 5> [local count: 125384875]:
  # DEBUG BEGIN_STMT
  pfe_hm.start = 0;

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

}


pfe_hm_report (pfe_hm_src_t src, pfe_hm_type_t type, pfe_hm_evt_t id, const char * format)
{
  struct pfe_hm_item_t item;
  unsigned char _1;
  long unsigned int _2;
  long unsigned int _3;
  struct pfe_hm_item_t * _4;
  long unsigned int _5;
  long unsigned int _6;
  long unsigned int _7;
  long unsigned int _8;
  void (*<T5d6>) (struct pfe_hm_item_t *) _9;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  item.type = type_13(D);
  # DEBUG BEGIN_STMT
  item.src = src_15(D);
  # DEBUG BEGIN_STMT
  item.id = id_17(D);
  # DEBUG BEGIN_STMT
  _1 = pfe_hm.initialized;
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 6>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _2 = pfe_hm.len;
  if (_2 <= 7)
    goto <bb 4>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 4> [local count: 182536110]:
  # DEBUG BEGIN_STMT
  _3 = pfe_hm.end;
  _4 = &pfe_hm.items[_3];
  MEM[(char * {ref-all})_4] = MEM[(char * {ref-all})&item];
  # DEBUG BEGIN_STMT
  _5 = pfe_hm.len;
  _6 = _5 + 1;
  pfe_hm.len = _6;
  # DEBUG BEGIN_STMT
  _7 = pfe_hm.end;
  _8 = _7 + 1;
  pfe_hm.end = _8;
  # DEBUG BEGIN_STMT
  if (_8 > 7)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 91268055]:
  # DEBUG BEGIN_STMT
  pfe_hm.end = 0;

  <bb 6> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = pfe_hm.event_cb;
  if (_9 != 0B)
    goto <bb 7>; [70.00%]
  else
    goto <bb 8>; [30.00%]

  <bb 7> [local count: 751619278]:
  # DEBUG BEGIN_STMT
  _9 (&item);

  <bb 8> [local count: 1073741824]:
  item ={v} {CLOBBER};
  return;

}


pfe_hm_destroy ()
{
  unsigned char _1;

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

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  pfe_hm.initialized = 0;

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

}


pfe_hm_init ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  pfe_hm.start = 0;
  # DEBUG BEGIN_STMT
  pfe_hm.end = 0;
  # DEBUG BEGIN_STMT
  pfe_hm.len = 0;
  # DEBUG BEGIN_STMT
  pfe_hm.initialized = 1;
  return;

}


