mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 18:03:59 +09:00
334 lines
10 KiB
C++
334 lines
10 KiB
C++
|
|
IPA constant propagation start:
|
|
Determining dynamic type for call: _4 (_5);
|
|
Starting walk at: _4 (_5);
|
|
instance pointer: _5 Outer instance pointer: _5 offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D));
|
|
Determining dynamic type for call: _4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
Starting walk at: _4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
instance pointer: _2 Outer instance pointer: _2 offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:_3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D));
|
|
Determining dynamic type for call: _16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
Starting walk at: _16 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
instance pointer: _2 Outer instance pointer: _2 offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:_4 = Emios_Pwm_Ip_GetPwmMode (_2, channel_39(D));
|
|
Function call may change dynamic type:_3 = Emios_Pwm_Ip_GetMasterBusChannel (instance_37(D), channel_39(D));
|
|
|
|
IPA structures before propagation:
|
|
|
|
Jump functions:
|
|
Jump functions of caller Emios_Pwm_Ip_GetMasterBusChannel/45:
|
|
Jump functions of caller Emios_Pwm_Ip_IrqHandler/42:
|
|
callsite Emios_Pwm_Ip_IrqHandler/42 -> Emios_Pwm_Ip_IrqDaocHandler/41 :
|
|
param 0: PASS THROUGH: 0, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
indirect simple callsite, calling param -1, offset 0, for stmt _4 (_5);
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xffffffff
|
|
Unknown VR
|
|
Jump functions of caller Emios_Pwm_Ip_IrqDaocHandler/41:
|
|
callsite Emios_Pwm_Ip_IrqDaocHandler/41 -> Emios_Pwm_Ip_GetPwmMode/27 :
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xffffffff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
callsite Emios_Pwm_Ip_IrqDaocHandler/41 -> Emios_Pwm_Ip_GetPwmMode/27 :
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xffffffff
|
|
Unknown VR
|
|
param 1: PASS THROUGH: 1, op nop_expr
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
Jump functions of caller Emios_Pwm_Ip_GetPwmMode/27:
|
|
|
|
Propagating constants:
|
|
|
|
Not considering Emios_Pwm_Ip_IrqHandler for cloning; -fipa-cp-clone disabled.
|
|
|
|
overall_size: 119, max_new_size: 11001
|
|
|
|
IPA lattices after all propagation:
|
|
|
|
Lattices:
|
|
Node: Emios_Pwm_Ip_IrqHandler/42:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: Emios_Pwm_Ip_IrqDaocHandler/41:
|
|
param [0]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
Node: Emios_Pwm_Ip_GetPwmMode/27:
|
|
param [0]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
param [1]: VARIABLE
|
|
ctxs: VARIABLE
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS VARIABLE
|
|
|
|
IPA decision stage:
|
|
|
|
|
|
IPA constant propagation end
|
|
|
|
Reclaiming functions:
|
|
Reclaiming variables:
|
|
Clearing address taken flags:
|
|
Symbol table:
|
|
|
|
Emios_Pwm_Ip_aDaocDuty/47 (Emios_Pwm_Ip_aDaocDuty) @06bf00d8
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)
|
|
Availability: not_available
|
|
Varpool flags:
|
|
Emios_Pwm_Ip_aPeriod/46 (Emios_Pwm_Ip_aPeriod) @06bf0090
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqDaocHandler/41 (read)
|
|
Availability: not_available
|
|
Varpool flags:
|
|
Emios_Pwm_Ip_GetMasterBusChannel/45 (Emios_Pwm_Ip_GetMasterBusChannel) @06be7540
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Emios_Pwm_Ip_aNotificationPtr/44 (Emios_Pwm_Ip_aNotificationPtr) @06be44c8
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: Emios_Pwm_Ip_IrqHandler/42 (read)
|
|
Availability: not_available
|
|
Varpool flags:
|
|
Emios_Pwm_Ip_aBasePtr/43 (Emios_Pwm_Ip_aBasePtr) @06be43f0
|
|
Type: variable
|
|
Body removed by symtab_remove_unreachable_nodes
|
|
Visibility: external public
|
|
References:
|
|
Referring: Emios_Pwm_Ip_IrqDaocHandler/41 (read)Emios_Pwm_Ip_IrqHandler/42 (read)
|
|
Availability: not_available
|
|
Varpool flags: read-only
|
|
Emios_Pwm_Ip_IrqHandler/42 (Emios_Pwm_Ip_IrqHandler) @06bddc40
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aNotificationPtr/44 (read)
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Indirect call(751619278 (estimated locally),0.70 per call)
|
|
Emios_Pwm_Ip_IrqDaocHandler/41 (Emios_Pwm_Ip_IrqDaocHandler) @06bdd2a0
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
References: Emios_Pwm_Ip_aBasePtr/43 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)Emios_Pwm_Ip_aPeriod/46 (read)Emios_Pwm_Ip_aDaocDuty/47 (read)
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqHandler/42 (1073741824 (estimated locally),1.00 per call)
|
|
Calls: Emios_Pwm_Ip_GetPwmMode/27 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_GetPwmMode/27 (1073741824 (estimated locally),1.00 per call) Emios_Pwm_Ip_GetMasterBusChannel/45 (1073741824 (estimated locally),1.00 per call)
|
|
Emios_Pwm_Ip_GetPwmMode/27 (Emios_Pwm_Ip_GetPwmMode) @06bcd380
|
|
Type: function definition analyzed
|
|
Visibility: prevailing_def_ironly
|
|
References:
|
|
Referring:
|
|
Availability: local
|
|
Function flags: count:1073741824 (estimated locally) body local optimize_size
|
|
Called by: Emios_Pwm_Ip_IrqDaocHandler/41 (524845004 (estimated locally),0.49 per call) Emios_Pwm_Ip_IrqDaocHandler/41 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
|
|
;; Function Emios_Pwm_Ip_GetPwmMode (Emios_Pwm_Ip_GetPwmMode, funcdef_no=27, decl_uid=4592, cgraph_uid=28, symbol_order=27)
|
|
|
|
Modification phase of node Emios_Pwm_Ip_GetPwmMode/27
|
|
Emios_Pwm_Ip_GetPwmMode (const struct Emios_Pwm_Ip_HwAddrType * const base, uint8 channel)
|
|
{
|
|
Emios_Pwm_Ip_PwmModeType mode;
|
|
int _1;
|
|
long unsigned int _2;
|
|
long unsigned int _3;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) channel_5(D);
|
|
_2 ={v} base_7(D)->CH.UC[_1].C;
|
|
_3 = _2 & 127;
|
|
switch (_3) <default: <L12> [7.69%], case 1: <L15> [7.69%], case 6: <L1> [7.69%], case 7: <L2> [7.69%], case 38: <L3> [7.69%], case 88: <L4> [7.69%], case 90: <L5> [7.69%], case 92: <L6> [7.69%], case 93: <L8> [7.69%], case 94: <L7> [7.69%], case 95: <L9> [7.69%], case 96: <L10> [7.69%], case 98: <L11> [7.69%]>
|
|
|
|
<bb 3> [local count: 82570746]:
|
|
<L1>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 6
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 4> [local count: 82570746]:
|
|
<L2>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 7
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 5> [local count: 82570746]:
|
|
<L3>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 38
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 6> [local count: 82570746]:
|
|
<L4>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 88
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 7> [local count: 82570746]:
|
|
<L5>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 90
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 8> [local count: 82570746]:
|
|
<L6>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 92
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 9> [local count: 82570746]:
|
|
<L7>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 94
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 10> [local count: 82570746]:
|
|
<L8>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 93
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 11> [local count: 82570746]:
|
|
<L9>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 95
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 12> [local count: 82570746]:
|
|
<L10>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 96
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 13> [local count: 82570746]:
|
|
<L11>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 98
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 15>; [100.00%]
|
|
|
|
<bb 14> [local count: 82570746]:
|
|
<L12>:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG mode => 255
|
|
# DEBUG BEGIN_STMT
|
|
|
|
<bb 15> [local count: 1073419702]:
|
|
# mode_4 = PHI <1(2), 6(3), 7(4), 38(5), 88(6), 90(7), 92(8), 94(9), 93(10), 95(11), 96(12), 98(13), 255(14)>
|
|
<L15>:
|
|
# DEBUG mode => mode_4
|
|
# DEBUG BEGIN_STMT
|
|
return mode_4;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function Emios_Pwm_Ip_IrqHandler (Emios_Pwm_Ip_IrqHandler, funcdef_no=42, decl_uid=4676, cgraph_uid=43, symbol_order=42)
|
|
|
|
Modification phase of node Emios_Pwm_Ip_IrqHandler/42
|
|
Emios_Pwm_Ip_IrqHandler (uint8 instance, uint8 channel)
|
|
{
|
|
int _1;
|
|
struct Emios_Pwm_Ip_HwAddrType * _2;
|
|
const struct Emios_Pwm_Ip_NotificationType * _3;
|
|
void (*<Te3>) (void *) _4;
|
|
void * _5;
|
|
int _12;
|
|
long unsigned int _13;
|
|
long unsigned int _14;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
_1 = (int) instance_7(D);
|
|
_2 = Emios_Pwm_Ip_aBasePtr[_1];
|
|
# DEBUG base => _2
|
|
# DEBUG channel => channel_9(D)
|
|
# DEBUG INLINE_ENTRY Emios_Pwm_Ip_ClearFlagEvent
|
|
# DEBUG BEGIN_STMT
|
|
_12 = (int) channel_9(D);
|
|
_13 ={v} _2->CH.UC[_12].S;
|
|
_14 = _13 | 1;
|
|
_2->CH.UC[_12].S ={v} _14;
|
|
# DEBUG base => NULL
|
|
# DEBUG channel => NULL
|
|
# DEBUG BEGIN_STMT
|
|
Emios_Pwm_Ip_IrqDaocHandler (instance_7(D), channel_9(D));
|
|
# DEBUG BEGIN_STMT
|
|
_3 = Emios_Pwm_Ip_aNotificationPtr[_1][_12];
|
|
if (_3 != 0B)
|
|
goto <bb 3>; [70.00%]
|
|
else
|
|
goto <bb 4>; [30.00%]
|
|
|
|
<bb 3> [local count: 751619278]:
|
|
# DEBUG BEGIN_STMT
|
|
_4 = _3->cbFunction;
|
|
_5 = _3->cbParameter;
|
|
_4 (_5);
|
|
|
|
<bb 4> [local count: 1073741824]:
|
|
return;
|
|
|
|
}
|
|
|
|
|