mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 18:03:59 +09:00
327 lines
11 KiB
C++
327 lines
11 KiB
C++
|
|
IPA constant propagation start:
|
|
Determining dynamic type for call: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D));
|
|
Starting walk at: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0 (config_14(D));
|
|
instance pointer: config_14(D) Outer instance pointer: config_14(D) offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10);
|
|
Function call may change dynamic type:ClockStartTimeout (&StartTime, &ElapsedTime, &TimeoutTicks, 10000);
|
|
Function call may change dynamic type:TimeoutOccurred_21 = ClockTimeoutExpired (&StartTime, &ElapsedTime, TimeoutTicks.0_10);
|
|
|
|
IPA structures before propagation:
|
|
|
|
Jump functions:
|
|
Jump functions of caller TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9:
|
|
Jump functions of caller ReportClockErrors/8:
|
|
Jump functions of caller ClockTimeoutExpired/7:
|
|
Jump functions of caller ClockStartTimeout/6:
|
|
Jump functions of caller TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3:
|
|
callsite TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3 -> TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xffffffff
|
|
Unknown VR
|
|
Jump functions of caller ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2:
|
|
Jump functions of caller Callback_DividerTriggerEmpty/1:
|
|
|
|
Propagating constants:
|
|
|
|
Not considering TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat for cloning; -fipa-cp-clone disabled.
|
|
Not considering ConfigureCgmXDivTrigCtrlTctlHhenUpdStat for cloning; -fipa-cp-clone disabled.
|
|
Not considering Callback_DividerTriggerEmpty for cloning; -fipa-cp-clone disabled.
|
|
|
|
overall_size: 57, max_new_size: 11001
|
|
- context independent values, size: 3, time_benefit: 1.000000
|
|
|
|
IPA lattices after all propagation:
|
|
|
|
Lattices:
|
|
Node: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat.part.0/9:
|
|
param [0]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Callback_DividerTriggerEmpty/1:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
|
|
IPA decision stage:
|
|
|
|
|
|
IPA constant propagation end
|
|
|
|
Reclaiming functions:
|
|
Reclaiming variables:
|
|
Clearing address taken flags:
|
|
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
|
|
|
|
;; Function Callback_DividerTriggerEmpty (Callback_DividerTriggerEmpty, funcdef_no=0, decl_uid=5054, cgraph_uid=1, symbol_order=1)
|
|
|
|
Modification phase of node Callback_DividerTriggerEmpty/1
|
|
Callback_DividerTriggerEmpty (const struct Clock_Ip_DividerTriggerConfigType * config)
|
|
{
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function ConfigureCgmXDivTrigCtrlTctlHhenUpdStat (ConfigureCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=1, decl_uid=5056, cgraph_uid=2, symbol_order=2)
|
|
|
|
Modification phase of node ConfigureCgmXDivTrigCtrlTctlHhenUpdStat/2
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat (TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat, funcdef_no=2, decl_uid=5058, cgraph_uid=3, symbol_order=3)
|
|
|
|
Modification phase of node TriggerUpdateCgmXDivTrigCtrlTctlHhenUpdStat/3
|
|
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;
|
|
|
|
}
|
|
|
|
|