

 local analysis of Clock_Ip_CgmXPcfsSdurDivcDiveDivs
   scanning: _1 = Config_61(D)->SelectorName;
    Indirect ref read is not const
  scanning: _2 = (int) _1;
  scanning: _3 = Clock_Ip_au8ClockFeatures[_2][0];
  scanning: _4 = (int) _3;
  scanning: CgmPcfsBase_62 = Clock_Ip_apxCgmPcfs[_4];
  scanning: _5 = Config_61(D)->Name;
    Indirect ref read is not const
  scanning: _6 = (int) _5;
  scanning: _7 = Clock_Ip_au8ClockFeatures[_6][7];
  scanning: HwIndex_63 = (uint32) _7;
  scanning: _9 = (int) _7;
  scanning: _10 = Hash[_9];
  scanning: _11 = Config_61(D)->ClockSourceFrequency;
    Indirect ref read is not const
  scanning: _12 = Config_61(D)->MaxAllowableIDDchange;
    Indirect ref read is not const
  scanning: _13 = _11 ^ _12;
  scanning: _14 = (long unsigned int) _5;
  scanning: _15 = _13 ^ _14;
  scanning: _16 = (long unsigned int) _1;
  scanning: _17 = _15 ^ _16;
  scanning: _18 = Config_61(D)->StepDuration;
    Indirect ref read is not const
  scanning: _19 = _17 ^ _18;
  scanning: if (_10 != _19)
  scanning: Hash[_9] = _19;
  scanning: _20 = Config_61(D)->ClockSourceFrequency;
    Indirect ref read is not const
  scanning: Finput_65 = _20 / 1000000;
  scanning: _21 = Clock_Ip_GetConfiguredFrequencyValue (0);
  scanning: Fsafe_67 = _21 / 1000000;
  scanning: _22 = Config_61(D)->MaxAllowableIDDchange;
    Indirect ref read is not const
  scanning: _23 = Config_61(D)->StepDuration;
    Indirect ref read is not const
  scanning: _24 = _22 * _23;
  scanning: _25 = _24 * 100000;
  scanning: _26 = Finput_65 * 2360;
  scanning: AmaxBrut_68 = _25 / _26;
  scanning: if (AmaxBrut_68 > 100)
  scanning: _27 = Index_52 + 4294967295;
  scanning: _28 = AMax[_27];
  scanning: if (_28 < AmaxBrut_68)
  scanning: Rate_69 = PcfsRate[Index_52];
  scanning: Index_70 = Index_52 + 1;
  scanning: if (Index_52 != 6)
  scanning: _29 = Finput_65 * 2048000;
  scanning: _30 = Rate_51 * Fsafe_67;
  scanning: _31 = _29 / _30;
  scanning: _32 = 2048000 / Rate_51;
  scanning: _33 = _31 - _32;
  scanning: Var1_71 = _33 + 256;
  scanning: Var2_85 = Var2_55 >> 2;
  scanning: if (Var2_55 > Var1_71)
  scanning: _34 = Var2_56 + Var3_58;
  scanning: if (_34 <= Var1_54)
  scanning: Var1_81 = Var1_54 - _34;
  scanning: _35 = Var2_56 << 1;
  scanning: Var3_82 = _35 + Var3_58;
  scanning: Var3_83 = Var3_57 >> 1;
  scanning: Var2_84 = Var2_56 >> 2;
  scanning: if (Var2_56 != 0)
  scanning: _36 = Var3_8 << 2;
  scanning: _37 = _36 + 191;
  scanning: K_72 = _37 >> 7;
  scanning: Sdur_73 = _23 * Fsafe_67;
  scanning: DivcInit_74 = Rate_51 * K_72;
  scanning: _38 = K_72 + 1;
  scanning: _39 = _38 * DivcInit_74;
  scanning: _40 = _39 >> 1;
  scanning: DivStartValue_75 = _40 + 999;
  scanning: _41 = Finput_65 * 1000;
  scanning: _42 = _41 / Fsafe_67;
  scanning: DivEndValue_76 = _42 + 4294967295;
  scanning: _43 = Sdur_73 & 65535;
  scanning: CgmPcfsBase_62->PCFS_SDUR ={v} _43;
    Volatile stmt is not const/pure
    Volatile indirect ref is not const/pure
  scanning: _44 = Rate_51 & 255;
  scanning: _45 = DivcInit_74 << 16;
  scanning: _46 = _44 | _45;
  scanning: CgmPcfsBase_62->PCFS[HwIndex_63].DIVC ={v} _46;
    Volatile stmt is not const/pure
    Volatile indirect ref is not const/pure
  scanning: _47 = DivEndValue_76 & 1048575;
  scanning: CgmPcfsBase_62->PCFS[HwIndex_63].DIVE ={v} _47;
    Volatile stmt is not const/pure
    Volatile indirect ref is not const/pure
  scanning: _48 = DivStartValue_75 & 1048575;
  scanning: CgmPcfsBase_62->PCFS[HwIndex_63].DIVS ={v} _48;
    Volatile stmt is not const/pure
    Volatile indirect ref is not const/pure
  scanning: return;


 local analysis of Clock_Ip_ProgressiveFrequencyClockSwitchEmpty
   scanning: return;
Function is locally const.
callgraph:

Clock_Ip_GetConfiguredFrequencyValue/6 (Clock_Ip_GetConfiguredFrequencyValue) @070e90e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (118111599 (estimated locally),0.49 per call) 
  Calls: 
Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (Clock_Ip_CgmXPcfsSdurDivcDiveDivs) @070b7c40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657c9e8
  References: Clock_Ip_au8ClockFeatures/3 (read)Clock_Ip_apxCgmPcfs/4 (read)Clock_Ip_au8ClockFeatures/3 (read)Hash.6785/5 (read)Hash.6785/5 (write)AMax.6783/7 (read)PcfsRate.6784/8 (read)
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:241635841 (estimated locally) body optimize_size
  Called by: 
  Calls: Clock_Ip_GetConfiguredFrequencyValue/6 (118111599 (estimated locally),0.49 per call) 
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty/0 (Clock_Ip_ProgressiveFrequencyClockSwitchEmpty) @070b7540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657ca28
  References: 
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 


 ordered call graph: reduced for nothrow
Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (Clock_Ip_CgmXPcfsSdurDivcDiveDivs) @070b7c40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657c9e8
  References: Clock_Ip_au8ClockFeatures/3 (read)Clock_Ip_apxCgmPcfs/4 (read)Clock_Ip_au8ClockFeatures/3 (read)Hash.6785/5 (read)Hash.6785/5 (write)AMax.6783/7 (read)PcfsRate.6784/8 (read)
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:241635841 (estimated locally) body optimize_size
  Called by: 
  Calls: Clock_Ip_GetConfiguredFrequencyValue/6 (118111599 (estimated locally),0.49 per call) 
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty/0 (Clock_Ip_ProgressiveFrequencyClockSwitchEmpty) @070b7540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657ca28
  References: 
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 



MALLOC LATTICE Initial:
Clock_Ip_CgmXPcfsSdurDivcDiveDivs: malloc_bottom
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty: malloc_bottom


MALLOC LATTICE after propagation:
Clock_Ip_CgmXPcfsSdurDivcDiveDivs: malloc_bottom
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty: malloc_bottom
callgraph:

Clock_Ip_GetConfiguredFrequencyValue/6 (Clock_Ip_GetConfiguredFrequencyValue) @070e90e0
  Type: function
  Visibility: external public
  References: 
  Referring: 
  Availability: not_available
  Function flags: optimize_size
  Called by: Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (118111599 (estimated locally),0.49 per call) 
  Calls: 
Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (Clock_Ip_CgmXPcfsSdurDivcDiveDivs) @070b7c40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657c9e8
  References: Clock_Ip_au8ClockFeatures/3 (read)Clock_Ip_apxCgmPcfs/4 (read)Clock_Ip_au8ClockFeatures/3 (read)Hash.6785/5 (read)Hash.6785/5 (write)AMax.6783/7 (read)PcfsRate.6784/8 (read)
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:241635841 (estimated locally) body optimize_size
  Called by: 
  Calls: Clock_Ip_GetConfiguredFrequencyValue/6 (118111599 (estimated locally),0.49 per call) 
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty/0 (Clock_Ip_ProgressiveFrequencyClockSwitchEmpty) @070b7540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657ca28
  References: 
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 


 ordered call graph: reduced
Clock_Ip_CgmXPcfsSdurDivcDiveDivs/1 (Clock_Ip_CgmXPcfsSdurDivcDiveDivs) @070b7c40
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657c9e8
  References: Clock_Ip_au8ClockFeatures/3 (read)Clock_Ip_apxCgmPcfs/4 (read)Clock_Ip_au8ClockFeatures/3 (read)Hash.6785/5 (read)Hash.6785/5 (write)AMax.6783/7 (read)PcfsRate.6784/8 (read)
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:241635841 (estimated locally) body optimize_size
  Called by: 
  Calls: Clock_Ip_GetConfiguredFrequencyValue/6 (118111599 (estimated locally),0.49 per call) 
Clock_Ip_ProgressiveFrequencyClockSwitchEmpty/0 (Clock_Ip_ProgressiveFrequencyClockSwitchEmpty) @070b7540
  Type: function definition analyzed
  Visibility: prevailing_def_ironly
  Address is taken.
  Aux: @0657ca28
  References: 
  Referring: Clock_Ip_axPcfsCallbacks/2 (addr)
  Availability: available
  Function flags: count:1073741824 (estimated locally) body optimize_size
  Called by: 
  Calls: 

Function found not to call free: Clock_Ip_ProgressiveFrequencyClockSwitchEmpty
Clock_Ip_CgmXPcfsSdurDivcDiveDivs (const struct Clock_Ip_PcfsConfigType * Config)
{
  uint32 DivEndValue;
  uint32 DivStartValue;
  uint32 DivcInit;
  uint32 Sdur;
  uint32 K;
  uint32 Var3;
  uint32 Var2;
  uint32 Var1;
  uint32 Index;
  uint32 Rate;
  uint32 AmaxBrut;
  uint32 Fsafe;
  uint32 Finput;
  static uint32 Hash[52];
  static const uint32 PcfsRate[6] = {0, 12, 48, 112, 184, 1000};
  static const uint32 AMax[6] = {0, 5, 10, 15, 20, 100};
  uint32 HwIndex;
  volatile struct Clock_Ip_CgmPcfsType * CgmPcfsBase;
  <unnamed type> _1;
  int _2;
  unsigned char _3;
  int _4;
  <unnamed type> _5;
  int _6;
  unsigned char _7;
  int _9;
  long unsigned int _10;
  long unsigned int _11;
  long unsigned int _12;
  long unsigned int _13;
  long unsigned int _14;
  long unsigned int _15;
  long unsigned int _16;
  long unsigned int _17;
  long unsigned int _18;
  long unsigned int _19;
  long unsigned int _20;
  long unsigned int _21;
  long unsigned int _22;
  long unsigned int _23;
  long unsigned int _24;
  long unsigned int _25;
  long unsigned int _26;
  long unsigned int _27;
  long unsigned int _28;
  long unsigned int _29;
  long unsigned int _30;
  long unsigned int _31;
  long unsigned int _32;
  long unsigned int _33;
  long unsigned int _34;
  long unsigned int _35;
  long unsigned int _36;
  long unsigned int _37;
  long unsigned int _38;
  long unsigned int _39;
  long unsigned int _40;
  long unsigned int _41;
  long unsigned int _42;
  long unsigned int _43;
  long unsigned int _44;
  long unsigned int _45;
  long unsigned int _46;
  long unsigned int _47;
  long unsigned int _48;

  <bb 2> [local count: 241635841]:
  # DEBUG BEGIN_STMT
  _1 = Config_61(D)->SelectorName;
  _2 = (int) _1;
  _3 = Clock_Ip_au8ClockFeatures[_2][0];
  _4 = (int) _3;
  CgmPcfsBase_62 = Clock_Ip_apxCgmPcfs[_4];
  # DEBUG CgmPcfsBase => CgmPcfsBase_62
  # DEBUG BEGIN_STMT
  _5 = Config_61(D)->Name;
  _6 = (int) _5;
  _7 = Clock_Ip_au8ClockFeatures[_6][7];
  HwIndex_63 = (uint32) _7;
  # DEBUG HwIndex => HwIndex_63
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG Finput => 0
  # DEBUG BEGIN_STMT
  # DEBUG Fsafe => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG Rate => 0
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  _9 = (int) _7;
  _10 = Hash[_9];
  _11 = Config_61(D)->ClockSourceFrequency;
  _12 = Config_61(D)->MaxAllowableIDDchange;
  _13 = _11 ^ _12;
  _14 = (long unsigned int) _5;
  _15 = _13 ^ _14;
  _16 = (long unsigned int) _1;
  _17 = _15 ^ _16;
  _18 = Config_61(D)->StepDuration;
  _19 = _17 ^ _18;
  if (_10 != _19)
    goto <bb 3>; [48.88%]
  else
    goto <bb 17>; [51.12%]

  <bb 3> [local count: 118111599]:
  # DEBUG BEGIN_STMT
  Hash[_9] = _19;
  # DEBUG BEGIN_STMT
  _20 = Config_61(D)->ClockSourceFrequency;
  Finput_65 = _20 / 1000000;
  # DEBUG Finput => Finput_65
  # DEBUG BEGIN_STMT
  _21 = Clock_Ip_GetConfiguredFrequencyValue (0);
  Fsafe_67 = _21 / 1000000;
  # DEBUG Fsafe => Fsafe_67
  # DEBUG BEGIN_STMT
  _22 = Config_61(D)->MaxAllowableIDDchange;
  _23 = Config_61(D)->StepDuration;
  _24 = _22 * _23;
  _25 = _24 * 100000;
  _26 = Finput_65 * 2360;
  AmaxBrut_68 = _25 / _26;
  # DEBUG AmaxBrut => AmaxBrut_68
  # DEBUG BEGIN_STMT
  # DEBUG Rate => AmaxBrut_68
  # DEBUG BEGIN_STMT
  # DEBUG BEGIN_STMT
  if (AmaxBrut_68 > 100)
    goto <bb 8>; [50.00%]
  else
    goto <bb 19>; [50.00%]

  <bb 19> [local count: 59055800]:
  goto <bb 7>; [100.00%]

  <bb 4> [local count: 295208146]:
  # DEBUG BEGIN_STMT
  _27 = Index_52 + 4294967295;
  _28 = AMax[_27];
  if (_28 < AmaxBrut_68)
    goto <bb 5>; [50.00%]
  else
    goto <bb 6>; [50.00%]

  <bb 5> [local count: 147604073]:
  # DEBUG BEGIN_STMT
  Rate_69 = PcfsRate[Index_52];
  # DEBUG Rate => Rate_69

  <bb 6> [local count: 295208146]:
  # Rate_49 = PHI <Rate_50(4), Rate_69(5)>
  # DEBUG Rate => Rate_49
  # DEBUG BEGIN_STMT
  Index_70 = Index_52 + 1;
  # DEBUG Index => Index_70

  <bb 7> [local count: 354263945]:
  # Rate_50 = PHI <Rate_49(6), AmaxBrut_68(19)>
  # Index_52 = PHI <Index_70(6), 1(19)>
  # DEBUG Index => Index_52
  # DEBUG Rate => Rate_50
  # DEBUG BEGIN_STMT
  if (Index_52 != 6)
    goto <bb 4>; [83.33%]
  else
    goto <bb 8>; [16.67%]

  <bb 8> [local count: 118111599]:
  # Rate_51 = PHI <Rate_50(7), 1000(3)>
  # DEBUG Rate => Rate_51
  # DEBUG BEGIN_STMT
  _29 = Finput_65 * 2048000;
  _30 = Rate_51 * Fsafe_67;
  _31 = _29 / _30;
  _32 = 2048000 / Rate_51;
  _33 = _31 - _32;
  Var1_71 = _33 + 256;
  # DEBUG Var1 => Var1_71
  # DEBUG BEGIN_STMT
  # DEBUG Var2 => 1073741824
  # DEBUG BEGIN_STMT
  # DEBUG Var3 => 0
  # DEBUG BEGIN_STMT
  goto <bb 10>; [100.00%]

  <bb 9> [local count: 955630218]:
  # DEBUG BEGIN_STMT
  Var2_85 = Var2_55 >> 2;
  # DEBUG Var2 => Var2_85

  <bb 10> [local count: 1073741820]:
  # Var2_55 = PHI <1073741824(8), Var2_85(9)>
  # DEBUG Var2 => Var2_55
  # DEBUG BEGIN_STMT
  if (Var2_55 > Var1_71)
    goto <bb 9>; [89.00%]
  else
    goto <bb 18>; [11.00%]

  <bb 18> [local count: 118111600]:
  goto <bb 15>; [100.00%]

  <bb 12> [local count: 955630225]:
  # DEBUG BEGIN_STMT
  _34 = Var2_56 + Var3_58;
  if (_34 <= Var1_54)
    goto <bb 13>; [50.00%]
  else
    goto <bb 14>; [50.00%]

  <bb 13> [local count: 477815112]:
  # DEBUG BEGIN_STMT
  Var1_81 = Var1_54 - _34;
  # DEBUG Var1 => Var1_81
  # DEBUG BEGIN_STMT
  _35 = Var2_56 << 1;
  Var3_82 = _35 + Var3_58;
  # DEBUG Var3 => Var3_82

  <bb 14> [local count: 955630225]:
  # Var1_53 = PHI <Var1_54(12), Var1_81(13)>
  # Var3_57 = PHI <Var3_58(12), Var3_82(13)>
  # DEBUG Var3 => Var3_57
  # DEBUG Var1 => Var1_53
  # DEBUG BEGIN_STMT
  Var3_83 = Var3_57 >> 1;
  # DEBUG Var3 => Var3_83
  # DEBUG BEGIN_STMT
  Var2_84 = Var2_56 >> 2;
  # DEBUG Var2 => Var2_84

  <bb 15> [local count: 1073741824]:
  # Var1_54 = PHI <Var1_53(14), Var1_71(18)>
  # Var2_56 = PHI <Var2_84(14), Var2_55(18)>
  # Var3_58 = PHI <Var3_83(14), 0(18)>
  # DEBUG Var3 => Var3_58
  # DEBUG Var2 => Var2_56
  # DEBUG Var1 => Var1_54
  # DEBUG BEGIN_STMT
  if (Var2_56 != 0)
    goto <bb 12>; [89.00%]
  else
    goto <bb 16>; [11.00%]

  <bb 16> [local count: 118111601]:
  # Var3_8 = PHI <Var3_58(15)>
  # DEBUG BEGIN_STMT
  _36 = Var3_8 << 2;
  _37 = _36 + 191;
  K_72 = _37 >> 7;
  # DEBUG K => K_72
  # DEBUG BEGIN_STMT
  Sdur_73 = _23 * Fsafe_67;
  # DEBUG Sdur => Sdur_73
  # DEBUG BEGIN_STMT
  DivcInit_74 = Rate_51 * K_72;
  # DEBUG DivcInit => DivcInit_74
  # DEBUG BEGIN_STMT
  # DEBUG DivcRate => Rate_51
  # DEBUG BEGIN_STMT
  _38 = K_72 + 1;
  _39 = _38 * DivcInit_74;
  _40 = _39 >> 1;
  DivStartValue_75 = _40 + 999;
  # DEBUG DivStartValue => DivStartValue_75
  # DEBUG BEGIN_STMT
  _41 = Finput_65 * 1000;
  _42 = _41 / Fsafe_67;
  DivEndValue_76 = _42 + 4294967295;
  # DEBUG DivEndValue => DivEndValue_76
  # DEBUG BEGIN_STMT
  _43 = Sdur_73 & 65535;
  CgmPcfsBase_62->PCFS_SDUR ={v} _43;
  # DEBUG BEGIN_STMT
  _44 = Rate_51 & 255;
  _45 = DivcInit_74 << 16;
  _46 = _44 | _45;
  CgmPcfsBase_62->PCFS[HwIndex_63].DIVC ={v} _46;
  # DEBUG BEGIN_STMT
  _47 = DivEndValue_76 & 1048575;
  CgmPcfsBase_62->PCFS[HwIndex_63].DIVE ={v} _47;
  # DEBUG BEGIN_STMT
  _48 = DivStartValue_75 & 1048575;
  CgmPcfsBase_62->PCFS[HwIndex_63].DIVS ={v} _48;

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

}


Clock_Ip_ProgressiveFrequencyClockSwitchEmpty (const struct Clock_Ip_PcfsConfigType * Config)
{
  <bb 2> [local count: 1073741824]:
  # DEBUG BEGIN_STMT
  return;

}


