Symbol table:

CSWTCH.1/22 (CSWTCH.1) @0713cd38
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly artificial
  References: 
  Referring: find_irq_idx_from_id/11 (read)
  Availability: available
  Varpool flags: initialized read-only const-value-known
oal_irq_in_atomic/21 (oal_irq_in_atomic) @07135d20
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
oal_irq_get_id/20 (oal_irq_get_id) @07135a80
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
oal_irq_destroy/19 (oal_irq_destroy) @071357e0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:153437706 (estimated locally) body optimize_size
  Called by: 
  Calls: 
oal_irq_del_handler/18 (oal_irq_del_handler) @07135540
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 
oal_irq_add_handler/17 (oal_irq_add_handler) @071352a0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: 
  Referring: 
  Availability: available
  Function flags: count:204054434 (estimated locally) body optimize_size
  Called by: 
  Calls: 
oal_irq_create/16 (oal_irq_create) @07135000
  Type: function definition analyzed
  Visibility: externally_visible public
  References: irq_pool/14 (read)irq_pool/14 (write)irq_pool/14 (write)irq_pool/14 (write)irq_pool/14 (addr)
  Referring: 
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: find_irq_idx_from_id/11 (1073741824 (estimated locally),1.00 per call) 
oal_irq_common_handler/15 (oal_irq_common_handler) @06bedee0
  Type: function definition analyzed
  Visibility: externally_visible public
  References: irq_pool/14 (read)irq_pool/14 (read)
  Referring: 
  Availability: available
  Function flags: count:153437706 (estimated locally) body optimize_size
  Called by: 
  Calls: 
   Indirect call(644212883 (estimated locally),4.20 per call) 
irq_pool/14 (irq_pool) @06be96c0
  Type: variable definition analyzed
  Visibility: prevailing_def_ironly
  References: 
  Referring: oal_irq_common_handler/15 (read)oal_irq_common_handler/15 (read)oal_irq_create/16 (read)oal_irq_create/16 (write)oal_irq_create/16 (write)oal_irq_create/16 (write)oal_irq_create/16 (addr)
  Availability: available
  Varpool flags: initialized
find_irq_idx_from_id/11 (find_irq_idx_from_id) @06e5a0e0
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  References: CSWTCH.1/22 (read)
  Referring: 
  Availability: local
  Function flags: count:1073741824 (estimated locally) body local optimize_size
  Called by: oal_irq_create/16 (1073741824 (estimated locally),1.00 per call) 
  Calls: 
oal_irq_in_atomic ()
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return 0;

}


oal_irq_get_id (const struct oal_irq_t * irq)
{
  int32_t retval;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  retval_3 = irq_2(D)->id;
  # DEBUG retval => retval_3
  # DEBUG BEGIN_STMT
  return retval_3;

}


oal_irq_destroy (struct oal_irq_t * irq)
{
  uint32_t ctr;

  <bb 2> [local count: 153437706]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  irq_4(D)->created = 0;
  # DEBUG BEGIN_STMT
  # DEBUG ctr => 0
  goto <bb 4>; [100.00%]

  <bb 3> [local count: 920304118]:
  # DEBUG BEGIN_STMT
  irq_4(D)->handler[ctr_1] = 0B;
  # DEBUG BEGIN_STMT
  irq_4(D)->data[ctr_1] = 0B;
  # DEBUG BEGIN_STMT
  ctr_9 = ctr_1 + 1;
  # DEBUG ctr => ctr_9

  <bb 4> [local count: 1073741824]:
  # ctr_1 = PHI <0(2), ctr_9(3)>
  # DEBUG ctr => ctr_1
  # DEBUG BEGIN_STMT
  if (ctr_1 != 6)
    goto <bb 3>; [85.71%]
  else
    goto <bb 5>; [14.29%]

  <bb 5> [local count: 153437707]:
  # DEBUG BEGIN_STMT
  irq_4(D)->flags = 0;
  return;

}


oal_irq_del_handler (struct oal_irq_t * irq, oal_irq_isr_handle_t handle)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret_val => 0
  # DEBUG BEGIN_STMT
  irq_2(D)->handler[handle_3(D)] = 0B;
  # DEBUG BEGIN_STMT
  irq_2(D)->data[handle_3(D)] = 0B;
  # DEBUG BEGIN_STMT
  return 0;

}


oal_irq_add_handler (struct oal_irq_t * irq, bool_t (*oal_irq_handler_t) (void *) handler, void * data, oal_irq_isr_handle_t * handle)
{
  uint32_t ctr;
  errno_t ret_val;
  bool_t (*<T574>) (void *) _1;

  <bb 2> [local count: 204054434]:
  # DEBUG BEGIN_STMT
  # DEBUG ret_val => 11
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ctr => 0
  goto <bb 8>; [100.00%]

  <bb 3> [local count: 920304117]:
  # DEBUG BEGIN_STMT
  _1 = irq_7(D)->handler[ctr_3];
  if (_1 == 0B)
    goto <bb 4>; [5.50%]
  else
    goto <bb 7>; [94.50%]

  <bb 4> [local count: 50616726]:
  # ctr_15 = PHI <ctr_3(3)>
  # DEBUG BEGIN_STMT
  if (handle_9(D) != 0B)
    goto <bb 5>; [70.00%]
  else
    goto <bb 6>; [30.00%]

  <bb 5> [local count: 35431708]:
  # DEBUG BEGIN_STMT
  *handle_9(D) = ctr_15;

  <bb 6> [local count: 50616726]:
  # DEBUG BEGIN_STMT
  irq_7(D)->handler[ctr_15] = handler_11(D);
  # DEBUG BEGIN_STMT
  irq_7(D)->data[ctr_15] = data_13(D);
  # DEBUG BEGIN_STMT
  # DEBUG ret_val => 0
  # DEBUG BEGIN_STMT
  goto <bb 9>; [100.00%]

  <bb 7> [local count: 869687391]:
  # DEBUG BEGIN_STMT
  ctr_8 = ctr_3 + 1;
  # DEBUG ctr => ctr_8

  <bb 8> [local count: 1073741824]:
  # ctr_3 = PHI <0(2), ctr_8(7)>
  # DEBUG ctr => ctr_3
  # DEBUG BEGIN_STMT
  if (ctr_3 != 6)
    goto <bb 3>; [85.71%]
  else
    goto <bb 9>; [14.29%]

  <bb 9> [local count: 204054433]:
  # ret_val_2 = PHI <0(6), 11(8)>
  # DEBUG ret_val => ret_val_2
  # DEBUG BEGIN_STMT
  return ret_val_2;

}


oal_irq_create (int32_t id, oal_irq_flags_t flags, const char_t * name)
{
  uint32_t idx;
  struct oal_irq_t * ret_val;
  <unnamed type> _1;
  unsigned char _2;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG ret_val => 0B
  # DEBUG BEGIN_STMT
  _1 = find_irq_idx_from_id (id_6(D));
  idx_7 = (uint32_t) _1;
  # DEBUG idx => idx_7
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (idx_7 <= 5)
    goto <bb 3>; [71.00%]
  else
    goto <bb 5>; [29.00%]

  <bb 3> [local count: 762356696]:
  _2 = irq_pool[idx_7].created;
  if (_2 == 0)
    goto <bb 4>; [71.00%]
  else
    goto <bb 5>; [29.00%]

  <bb 4> [local count: 541273254]:
  # DEBUG BEGIN_STMT
  irq_pool[idx_7].created = 1;
  # DEBUG BEGIN_STMT
  irq_pool[idx_7].id = id_6(D);
  # DEBUG BEGIN_STMT
  irq_pool[idx_7].flags = flags_10(D);
  # DEBUG BEGIN_STMT
  ret_val_12 = &irq_pool[idx_7];
  # DEBUG ret_val => ret_val_12

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

}


oal_irq_common_handler (oal_irq_idx_t idx)
{
  uint32_t ctr;
  int _1;
  bool_t (*<T574>) (void *) _2;
  void * _3;

  <bb 2> [local count: 153437706]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG ctr => 0
  goto <bb 6>; [100.00%]

  <bb 3> [local count: 920304118]:
  # DEBUG BEGIN_STMT
  _1 = (int) idx_8(D);
  _2 = irq_pool[_1].handler[ctr_4];
  if (_2 != 0B)
    goto <bb 4>; [70.00%]
  else
    goto <bb 5>; [30.00%]

  <bb 4> [local count: 644212883]:
  # DEBUG BEGIN_STMT
  _3 = irq_pool[_1].data[ctr_4];
  _2 (_3);

  <bb 5> [local count: 920304118]:
  # DEBUG BEGIN_STMT
  ctr_10 = ctr_4 + 1;
  # DEBUG ctr => ctr_10

  <bb 6> [local count: 1073741824]:
  # ctr_4 = PHI <0(2), ctr_10(5)>
  # DEBUG ctr => ctr_4
  # DEBUG BEGIN_STMT
  if (ctr_4 != 6)
    goto <bb 3>; [85.71%]
  else
    goto <bb 7>; [14.29%]

  <bb 7> [local count: 153437707]:
  return;

}


find_irq_idx_from_id (int32_t id)
{
  oal_irq_idx_t ret_val;
  unsigned int _3;
  <unnamed type> _5;
  unsigned int _7;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _3 = (unsigned int) id_2(D);
  _7 = _3 + 4294967106;
  if (_7 <= 5)
    goto <bb 4>; [50.00%]
  else
    goto <bb 3>; [50.00%]

  <bb 3> [local count: 536870913]:
<L10>:
  ret_val_6 = 6;
  goto <bb 5>; [100.00%]

  <bb 4> [local count: 536870913]:
<L11>:
  _5 = CSWTCH.1[_7];
  ret_val_4 = _5;

  <bb 5> [local count: 1073741824]:
  # ret_val_1 = PHI <ret_val_6(3), ret_val_4(4)>
<L12>:
<L9>:
  # DEBUG ret_val => ret_val_1
  # DEBUG BEGIN_STMT
  return ret_val_1;

}


