mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
412 lines
13 KiB
Plaintext
412 lines
13 KiB
Plaintext
|
|
Analyzing function: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9
|
|
;; 1 loops found
|
|
;;
|
|
;; Loop 0
|
|
;; header 0, latch 1
|
|
;; depth 0, outer -1
|
|
;; nodes: 0 1 4 2 3
|
|
;; 4 succs { 2 }
|
|
;; 2 succs { 3 }
|
|
;; 3 succs { 1 }
|
|
|
|
Analyzing function body size: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0
|
|
|
|
IPA function summary for TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 inlinable
|
|
global time: 15.000000
|
|
self size: 7
|
|
global size: 0
|
|
min size: 0
|
|
self stack: 12
|
|
global stack: 12
|
|
size:0.000000, time:0.000000
|
|
size:3.000000, time:2.000000, executed if:(not inlined)
|
|
size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
|
|
size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 0] changed)
|
|
calls:
|
|
ReportClockErrors/8 function body not available
|
|
loop depth: 0 freq:1.00 size: 3 time: 12
|
|
op0 is compile time invariant
|
|
|
|
|
|
Analyzing function: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3
|
|
;; 2 loops found
|
|
;;
|
|
;; Loop 0
|
|
;; header 0, latch 1
|
|
;; depth 0, outer -1
|
|
;; nodes: 0 1 2 3 4 5 9 6 7 8
|
|
;;
|
|
;; Loop 1
|
|
;; header 4, latch 9
|
|
;; depth 1, outer 0
|
|
;; nodes: 4 9 5
|
|
;; 2 succs { 3 8 }
|
|
;; 3 succs { 4 }
|
|
;; 4 succs { 5 6 }
|
|
;; 5 succs { 9 6 }
|
|
;; 9 succs { 4 }
|
|
;; 6 succs { 7 8 }
|
|
;; 7 succs { 8 }
|
|
;; 8 succs { 1 }
|
|
|
|
Analyzing function body size: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat
|
|
|
|
IPA function summary for TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 inlinable
|
|
global time: 79.580059
|
|
self size: 32
|
|
global size: 0
|
|
min size: 0
|
|
self stack: 12
|
|
global stack: 12
|
|
size:2.000000, time:2.000000
|
|
size:3.000000, time:2.000000, executed if:(not inlined)
|
|
size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
|
|
size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 0] changed)
|
|
size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 8] changed) && (not inlined)
|
|
size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 8] changed)
|
|
size:11.000000, time:22.574499, executed if:(op0[ref offset: 8] != 0)
|
|
array index:(op0[ref offset: 0] changed)
|
|
calls:
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 function not considered for inlining
|
|
loop depth: 0 freq:0.11 size: 2 time: 11callee size: 3 stack:12 predicate: (op0[ref offset: 8] != 0)
|
|
ClockTimeoutExpired/7 function body not available
|
|
loop depth: 1 freq:3.08 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
|
|
op0 is compile time invariant
|
|
op1 is compile time invariant
|
|
ClockStartTimeout/6 function body not available
|
|
loop depth: 0 freq:0.33 size: 5 time: 14 predicate: (op0[ref offset: 8] != 0)
|
|
op0 is compile time invariant
|
|
op1 is compile time invariant
|
|
op2 is compile time invariant
|
|
op3 is compile time invariant
|
|
|
|
|
|
Analyzing function: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2
|
|
;; 1 loops found
|
|
;;
|
|
;; Loop 0
|
|
;; header 0, latch 1
|
|
;; depth 0, outer -1
|
|
;; nodes: 0 1 2 3 4 5
|
|
;; 2 succs { 3 4 }
|
|
;; 3 succs { 5 }
|
|
;; 4 succs { 5 }
|
|
;; 5 succs { 1 }
|
|
|
|
Analyzing function body size: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat
|
|
|
|
IPA function summary for ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 inlinable
|
|
global time: 11.000000
|
|
self size: 15
|
|
global size: 0
|
|
min size: 0
|
|
self stack: 0
|
|
global stack: 0
|
|
size:2.000000, time:2.000000
|
|
size:3.000000, time:2.000000, executed if:(not inlined)
|
|
size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 0] changed) && (not inlined)
|
|
size:0.500000, time:0.500000, nonconst if:(op0[ref offset: 0] changed)
|
|
size:0.500000, time:0.500000, executed if:(not inlined), nonconst if:(op0[ref offset: 8] changed) && (not inlined)
|
|
size:2.500000, time:2.500000, nonconst if:(op0[ref offset: 8] changed)
|
|
size:4.000000, time:2.000000, executed if:(op0[ref offset: 8] == 0)
|
|
size:2.000000, time:1.000000, executed if:(op0[ref offset: 8] != 0)
|
|
array index:(op0[ref offset: 0] changed)
|
|
calls:
|
|
|
|
|
|
Analyzing function: Callback_DividerTriggerEmpty/1
|
|
;; 1 loops found
|
|
;;
|
|
;; Loop 0
|
|
;; header 0, latch 1
|
|
;; depth 0, outer -1
|
|
;; nodes: 0 1 2
|
|
;; 2 succs { 1 }
|
|
|
|
Analyzing function body size: Callback_DividerTriggerEmpty
|
|
|
|
IPA function summary for Callback_DividerTriggerEmpty/1 inlinable
|
|
global time: 2.000000
|
|
self size: 3
|
|
global size: 0
|
|
min size: 0
|
|
self stack: 0
|
|
global stack: 0
|
|
size:0.000000, time:0.000000
|
|
size:3.000000, time:2.000000, executed if:(not inlined)
|
|
calls:
|
|
|
|
Symbol table:
|
|
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0) @06c5d8c0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly artificial
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) first_run:1 body local split_part optimize_size
|
|
Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (37904965 (estimated locally),0.11 per call)
|
|
Calls: ReportClockErrors/8 (1073741824 (estimated locally),1.00 per call)
|
|
ReportClockErrors/8 (ReportClockErrors) @06c57540
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
ClockTimeoutExpired/7 (ClockTimeoutExpired) @06c57460
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (1073741824 (estimated locally),3.08 per call)
|
|
Calls:
|
|
ClockStartTimeout/6 (ClockStartTimeout) @06c57380
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (114863532 (estimated locally),0.33 per call)
|
|
Calls:
|
|
cgm/5 (cgm) @06c59168
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)
|
|
Availability: not_available
|
|
Varpool flags: read-only
|
|
clockFeatures/4 (clockFeatures) @06c59120
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (read)
|
|
Availability: not_available
|
|
Varpool flags: read-only
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat) @06c8eee0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Address is taken.
|
|
References: clockFeatures/4 (read)clockFeatures/4 (read)cgm/5 (read)
|
|
Referring: dividerTriggerCallbacks/0 (addr)
|
|
Availability: available
|
|
Function flags: count:348071309 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 (37904965 (estimated locally),0.11 per call) ClockTimeoutExpired/7 (1073741824 (estimated locally),3.08 per call) ClockStartTimeout/6 (114863532 (estimated locally),0.33 per call)
|
|
ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat) @06c8ee00
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Address is taken.
|
|
References: clockFeatures/4 (read)clockFeatures/4 (read)cgm/5 (read)cgm/5 (read)
|
|
Referring: dividerTriggerCallbacks/0 (addr)
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
Callback_DividerTriggerEmpty/1 (Callback_DividerTriggerEmpty) @06c8eb60
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
Address is taken.
|
|
References:
|
|
Referring: dividerTriggerCallbacks/0 (addr)dividerTriggerCallbacks/0 (addr)
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
dividerTriggerCallbacks/0 (dividerTriggerCallbacks) @06c88990
|
|
Type: variable definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Callback_DividerTriggerEmpty/1 (addr)Callback_DividerTriggerEmpty/1 (addr)ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2 (addr)TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 (addr)
|
|
Referring:
|
|
Availability: available
|
|
Varpool flags: initialized read-only const-value-known
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (const struct Clock_Ip_DividerTriggerConfigType * config)
|
|
{
|
|
uint32 instance;
|
|
uint32 selectorIndex;
|
|
boolean TimeoutOccurred;
|
|
uint32 StartTime;
|
|
uint32 ElapsedTime;
|
|
uint32 TimeoutTicks;
|
|
uint32 DividerStatus;
|
|
<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;
|
|
|
|
}
|
|
|
|
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config)
|
|
{
|
|
uint32 DividerStatus;
|
|
uint32 TimeoutTicks;
|
|
uint32 ElapsedTime;
|
|
uint32 StartTime;
|
|
boolean TimeoutOccurred;
|
|
uint32 selectorIndex;
|
|
uint32 instance;
|
|
<unnamed type> _1;
|
|
int _2;
|
|
unsigned char _3;
|
|
unsigned char _6;
|
|
<unnamed type> _7;
|
|
volatile struct cgmMux_Type * _8;
|
|
long unsigned int _9;
|
|
long unsigned int TimeoutTicks.0_10;
|
|
|
|
<bb 2> [local count: 348071309]:
|
|
# DEBUG BEGIN_STMT
|
|
_1 = config_14(D)->name;
|
|
_2 = (int) _1;
|
|
_3 = clockFeatures[_2][0];
|
|
instance_15 = (uint32) _3;
|
|
# DEBUG instance => instance_15
|
|
# DEBUG BEGIN_STMT
|
|
_6 = clockFeatures[_2][2];
|
|
selectorIndex_16 = (uint32) _6;
|
|
# DEBUG selectorIndex => selectorIndex_16
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG TimeoutOccurred => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_7 = config_14(D)->triggerType;
|
|
if (_7 != 0)
|
|
goto <bb 3>; [33.00%]
|
|
else
|
|
goto <bb 8>; [67.00%]
|
|
|
|
<bb 3> [local count: 114863532]:
|
|
# DEBUG BEGIN_STMT
|
|
_8 = cgm[instance_15][selectorIndex_16];
|
|
_8->MUX_DIV_TRIG ={v} 1;
|
|
# DEBUG BEGIN_STMT
|
|
ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 10000);
|
|
|
|
<bb 4> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_9 ={v} _8->MUX_DIV_UPD_STAT;
|
|
DividerStatus_19 = _9 & 1;
|
|
# DEBUG DividerStatus => DividerStatus_19
|
|
# DEBUG BEGIN_STMT
|
|
TimeoutTicks.0_10 = TimeoutTicks;
|
|
TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10);
|
|
# DEBUG TimeoutOccurred => TimeoutOccurred_21
|
|
# DEBUG BEGIN_STMT
|
|
if (DividerStatus_19 != 0)
|
|
goto <bb 5>; [94.50%]
|
|
else
|
|
goto <bb 6>; [5.50%]
|
|
|
|
<bb 5> [local count: 1014686025]:
|
|
if (TimeoutOccurred_21 != 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_4 = PHI <TimeoutOccurred_21(4), TimeoutOccurred_21(5)>
|
|
# DEBUG BEGIN_STMT
|
|
if (TimeoutOccurred_4 != 0)
|
|
goto <bb 7>; [33.00%]
|
|
else
|
|
goto <bb 8>; [67.00%]
|
|
|
|
<bb 7> [local count: 37904965]:
|
|
TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D));
|
|
|
|
<bb 8> [local count: 348071309]:
|
|
StartTime ={v} {CLOBBER};
|
|
ElapsedTime ={v} {CLOBBER};
|
|
TimeoutTicks ={v} {CLOBBER};
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (const struct Clock_Ip_DividerTriggerConfigType * config)
|
|
{
|
|
uint32 selectorIndex;
|
|
uint32 instance;
|
|
<unnamed type> _1;
|
|
int _2;
|
|
unsigned char _3;
|
|
unsigned char _4;
|
|
<unnamed type> _5;
|
|
volatile struct cgmMux_Type * _6;
|
|
volatile struct cgmMux_Type * _7;
|
|
long unsigned int _8;
|
|
long unsigned int _9;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
_1 = config_12(D)->name;
|
|
_2 = (int) _1;
|
|
_3 = clockFeatures[_2][0];
|
|
instance_13 = (uint32) _3;
|
|
# DEBUG instance => instance_13
|
|
# DEBUG BEGIN_STMT
|
|
_4 = clockFeatures[_2][2];
|
|
selectorIndex_14 = (uint32) _4;
|
|
# DEBUG selectorIndex => selectorIndex_14
|
|
# DEBUG BEGIN_STMT
|
|
_5 = config_12(D)->triggerType;
|
|
if (_5 != 0)
|
|
goto <bb 3>; [50.00%]
|
|
else
|
|
goto <bb 4>; [50.00%]
|
|
|
|
<bb 3> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
_6 = cgm[instance_13][selectorIndex_14];
|
|
_6->MUX_DIV_TRIG_CTRL ={v} 1;
|
|
goto <bb 5>; [100.00%]
|
|
|
|
<bb 4> [local count: 536870913]:
|
|
# DEBUG BEGIN_STMT
|
|
_7 = cgm[instance_13][selectorIndex_14];
|
|
_8 ={v} _7->MUX_DIV_TRIG_CTRL;
|
|
_9 = _8 & 4294967294;
|
|
_7->MUX_DIV_TRIG_CTRL ={v} _9;
|
|
|
|
<bb 5> [local count: 1073741824]:
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
Callback_DividerTriggerEmpty (const struct Clock_Ip_DividerTriggerConfigType * config)
|
|
{
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
return;
|
|
|
|
}
|
|
|
|
|