Parsed function:CompleteSOSC.part.0
Parsed function:EnableSOSC_TrustedCall.isra.0
Parsed function:DisableSOSC_TrustedCall.isra.0
Parsed function:ResetSOSC_TrustedCall.isra.0
Parsed function:EnableSOSC
Parsed function:DisableSOSC
Parsed function:CompleteSOSC
Parsed function:SetSOSC
Parsed function:SetSOSC_TrustedCall
Parsed function:ResetSOSC
Parsed function:DisableExternalOscillatorEmpty
Parsed function:ExternalOscillatorEmpty
Dump after hash based groups
Congruence classes: 11 (unique hash values: 11), with total: 13 items
Class size histogram [num of members]: number of classe number of classess
[1]: 9 classes
[2]: 2 classes


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


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


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


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



Item count: 13
Congruent classes before: 13, after: 13
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%

CompleteSOSC.part.0 (const struct Clock_Ip_XoscConfigType * config)
{
  boolean TimeoutOccurred;
  uint32 StartTime;
  uint32 ElapsedTime;
  uint32 TimeoutTicks;
  uint32 SoscStatus;
  <unnamed type> _2;

  <bb 4> [local count: 1073741824]:

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = config_1(D)->name;
  ReportClockErrors (1, _2);

  <bb 3> [local count: 1073741824]:
  StartTime ={v} {CLOBBER};
  ElapsedTime ={v} {CLOBBER};
  TimeoutTicks ={v} {CLOBBER};
  return;

}


EnableSOSC_TrustedCall.isra.0 (const uint16 ISRA.10)
{
  short unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;

  <bb 5> [local count: 1073741824]:
  # DEBUG config s=> config

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _2 = ISRA.10_8(D);
  if (_2 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 4>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _4 = _3 | 1;
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} _4;

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

}


DisableSOSC_TrustedCall.isra.0 ()
{
  long unsigned int _1;
  long unsigned int _2;

  <bb 3> [local count: 1073741824]:
  # DEBUG xoscName s=> xoscName

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _2 = _1 & 4294967294;
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} _2;
  return;

}


ResetSOSC_TrustedCall.isra.0 ()
{
  long unsigned int _1;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;

  <bb 3> [local count: 1073741824]:
  # DEBUG config s=> config

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _1 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _2 = _1 & 4286578687;
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} _2;
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _4 = _3 & 4294967294;
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} _4;
  return;

}


EnableSOSC (const struct Clock_Ip_XoscConfigType * config)
{
  short unsigned int _4;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _4 = MEM[(short unsigned int *)config_2(D) + 8B];
  # DEBUG D#3 => config_2(D)
  EnableSOSC_TrustedCall.isra.0 (_4);
  return;

}


DisableSOSC (Clock_Ip_NameType xoscName)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#2 => xoscName_2(D)
  DisableSOSC_TrustedCall.isra.0 ();
  return;

}


CompleteSOSC (const struct Clock_Ip_XoscConfigType * config)
{
  uint32 SoscStatus;
  uint32 TimeoutTicks;
  uint32 ElapsedTime;
  uint32 StartTime;
  boolean TimeoutOccurred;
  long unsigned int _2;
  long unsigned int _3;
  long unsigned int _4;
  long unsigned int _5;
  long unsigned int TimeoutTicks.0_6;

  <bb 2> [local count: 348071309]:
  # DEBUG BEGIN_STMT
  # DEBUG TimeoutOccurred => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _2 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _3 = _2 & 1;
  if (_3 != 0)
    goto <bb 3>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 3> [local count: 114863532]:
  # DEBUG BEGIN_STMT
  ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 50000);

  <bb 4> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _4 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _5 = _4 >> 24;
  SoscStatus_12 = _5 & 1;
  # DEBUG SoscStatus => SoscStatus_12
  # DEBUG BEGIN_STMT
  TimeoutTicks.0_6 = TimeoutTicks;
  TimeoutOccurred_14 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_6);
  # DEBUG TimeoutOccurred => TimeoutOccurred_14
  # DEBUG BEGIN_STMT
  if (SoscStatus_12 == 0)
    goto <bb 5>; [94.50%]
  else
    goto <bb 6>; [5.50%]

  <bb 5> [local count: 1014686025]:
  if (TimeoutOccurred_14 != 0)
    goto <bb 6>; [5.50%]
  else
    goto <bb 9>; [94.50%]

  <bb 9> [local count: 958878294]:
  goto <bb 4>; [100.00%]

  <bb 6> [local count: 114863532]:
  # TimeoutOccurred_9 = PHI <TimeoutOccurred_14(4), TimeoutOccurred_14(5)>
  # DEBUG BEGIN_STMT
  if (TimeoutOccurred_9 != 0)
    goto <bb 7>; [33.00%]
  else
    goto <bb 8>; [67.00%]

  <bb 7> [local count: 37904965]:
  CompleteSOSC.part.0 (config_15(D));

  <bb 8> [local count: 348071309]:
  StartTime ={v} {CLOBBER};
  ElapsedTime ={v} {CLOBBER};
  TimeoutTicks ={v} {CLOBBER};
  return;

}


SetSOSC (const struct Clock_Ip_XoscConfigType * config)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  SetSOSC_TrustedCall (config_2(D));
  return;

}


SetSOSC_TrustedCall (const struct Clock_Ip_XoscConfigType * config)
{
  short unsigned int _1;
  unsigned char _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;
  long unsigned int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;
  long unsigned int _14;
  unsigned char _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  unsigned char _20;
  long unsigned int _21;
  long unsigned int _22;

  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  _1 = config_28(D)->enable;
  if (_1 == 1)
    goto <bb 3>; [34.00%]
  else
    goto <bb 17>; [66.00%]

  <bb 3> [local count: 365072220]:
  # DEBUG BEGIN_STMT
  _2 = config_28(D)->gain;
  switch (_2) <default: <L17> [33.33%], case 0: <L1> [33.33%], case 1: <L2> [33.33%]>

  <bb 4> [local count: 121678571]:
<L1>:
  # DEBUG BEGIN_STMT
  _3 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _4 = _3 & 4294967287;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _4;
  # DEBUG BEGIN_STMT
  goto <bb 6>; [100.00%]

  <bb 5> [local count: 121678571]:
<L2>:
  # DEBUG BEGIN_STMT
  _5 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _6 = _5 | 8;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _6;
  # DEBUG BEGIN_STMT

  <bb 6> [local count: 365035713]:
<L17>:
  # DEBUG BEGIN_STMT
  _7 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _8 = _7 & 4294967247;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _8;
  # DEBUG BEGIN_STMT
  _9 = config_28(D)->freq;
  _10 = _9 + 4290967296;
  if (_10 <= 3999999)
    goto <bb 7>; [50.00%]
  else
    goto <bb 8>; [50.00%]

  <bb 7> [local count: 182517857]:
  # DEBUG BEGIN_STMT
  _11 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _12 = _11 | 32;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _12;
  goto <bb 9>; [100.00%]

  <bb 8> [local count: 182517857]:
  # DEBUG BEGIN_STMT
  _13 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _14 = _13 | 48;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _14;

  <bb 9> [local count: 365035713]:
  # DEBUG BEGIN_STMT
  _15 = config_28(D)->bypassOption;
  if (_15 == 0)
    goto <bb 10>; [50.00%]
  else
    goto <bb 11>; [50.00%]

  <bb 10> [local count: 182517857]:
  # DEBUG BEGIN_STMT
  _16 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _17 = _16 | 4;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _17;
  goto <bb 12>; [100.00%]

  <bb 11> [local count: 182517857]:
  # DEBUG BEGIN_STMT
  _18 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCFG;
  _19 = _18 & 4294967291;
  MEM[(struct SCG_Type *)1074151424B].SOSCCFG ={v} _19;

  <bb 12> [local count: 365035713]:
  # DEBUG BEGIN_STMT
  _20 = config_28(D)->monitor;
  switch (_20) <default: <L14> [25.00%], case 0: <L11> [25.00%], case 1: <L12> [25.00%], case 2: <L13> [25.00%]>

  <bb 13> [local count: 91258928]:
<L11>:
  # DEBUG BEGIN_STMT
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} 1;
  # DEBUG BEGIN_STMT
  goto <bb 17>; [100.00%]

  <bb 14> [local count: 91258928]:
<L12>:
  # DEBUG BEGIN_STMT
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} 65537;
  # DEBUG BEGIN_STMT
  goto <bb 17>; [100.00%]

  <bb 15> [local count: 91258928]:
<L13>:
  # DEBUG BEGIN_STMT
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} 196609;
  # DEBUG BEGIN_STMT
  goto <bb 17>; [100.00%]

  <bb 16> [local count: 91258928]:
<L14>:
  # DEBUG BEGIN_STMT
  _21 ={v} MEM[(struct SCG_Type *)1074151424B].SOSCCSR;
  _22 = _21 | 1;
  MEM[(struct SCG_Type *)1074151424B].SOSCCSR ={v} _22;
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT

  <bb 17> [local count: 1073705317]:
  return;

}


ResetSOSC (const struct Clock_Ip_XoscConfigType * config)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  # DEBUG D#1 => config_2(D)
  ResetSOSC_TrustedCall.isra.0 ();
  return;

}


DisableExternalOscillatorEmpty (Clock_Ip_NameType xoscName)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}


ExternalOscillatorEmpty (const struct Clock_Ip_XoscConfigType * config)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}


