mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
596 lines
15 KiB
C++
596 lines
15 KiB
C++
|
|
IPA constant propagation start:
|
|
Determining dynamic type for call: OutStr (&str);
|
|
Starting walk at: OutStr (&str);
|
|
instance pointer: &str Outer instance pointer: str offset: 0 (bits) vtbl reference:
|
|
Function call may change dynamic type:vsprintf (&str, msg_3(D), argptr);
|
|
Function call may change dynamic type:__builtin_va_start (&argptr, 0);
|
|
|
|
IPA structures before propagation:
|
|
|
|
Jump functions:
|
|
Jump functions of caller __builtin_va_end/40:
|
|
Jump functions of caller vsprintf/39:
|
|
Jump functions of caller __builtin_va_start/38:
|
|
Jump functions of caller Lpuart_Uart_Ip_SyncSend/37:
|
|
Jump functions of caller programDword_data_flash/36:
|
|
Jump functions of caller string_to_int/35:
|
|
Jump functions of caller put_charp/34:
|
|
callsite put_charp/34 -> OutDev0/30 :
|
|
param 0: CONST: 44
|
|
value: 0x2c, mask: 0x0
|
|
Unknown VR
|
|
callsite put_charp/34 -> OutDev0/30 :
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
callsite put_charp/34 -> D2C/29 :
|
|
param 0: PASS THROUGH: 0, op bit_and_expr 15
|
|
value: 0x0, mask: 0xf
|
|
VR [0, 15]
|
|
callsite put_charp/34 -> OutDev0/30 :
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
callsite put_charp/34 -> D2C/29 :
|
|
param 0: PASS THROUGH: 0, op rshift_expr 4
|
|
value: 0x0, mask: 0xf
|
|
VR [0, 15]
|
|
Jump functions of caller put_cr/33:
|
|
callsite put_cr/33 -> OutDev0/30 :
|
|
param 0: CONST: 10
|
|
value: 0xa, mask: 0x0
|
|
Unknown VR
|
|
callsite put_cr/33 -> OutDev0/30 :
|
|
param 0: CONST: 13
|
|
value: 0xd, mask: 0x0
|
|
Unknown VR
|
|
Jump functions of caller monprintf/32:
|
|
callsite monprintf/32 -> OutStr/31 :
|
|
param 0: UNKNOWN
|
|
Aggregate passed by reference:
|
|
offset: 2024, cst: 0
|
|
offset: 2032, cst: 0
|
|
value: 0x0, mask: 0xfffffffc
|
|
VR ~[0, 0]
|
|
Jump functions of caller OutStr/31:
|
|
callsite OutStr/31 -> OutDev0/30 :
|
|
param 0: UNKNOWN
|
|
value: 0x0, mask: 0xff
|
|
Unknown VR
|
|
Jump functions of caller OutDev0/30:
|
|
Jump functions of caller D2C/29:
|
|
Jump functions of caller delayN/28:
|
|
|
|
Propagating constants:
|
|
|
|
Not considering programDword_data_flash for cloning; -fipa-cp-clone disabled.
|
|
Not considering string_to_int for cloning; -fipa-cp-clone disabled.
|
|
Not considering put_charp for cloning; -fipa-cp-clone disabled.
|
|
Not considering put_cr for cloning; -fipa-cp-clone disabled.
|
|
Not considering monprintf for cloning; -fipa-cp-clone disabled.
|
|
Not considering OutStr for cloning; -fipa-cp-clone disabled.
|
|
Not considering OutDev0 for cloning; -fipa-cp-clone disabled.
|
|
Not considering D2C for cloning; -fipa-cp-clone disabled.
|
|
Not considering delayN for cloning; -fipa-cp-clone disabled.
|
|
|
|
overall_size: 94, max_new_size: 11001
|
|
- context independent values, size: 3, time_benefit: 2.000000
|
|
- context independent values, size: 3, time_benefit: 1.000000
|
|
|
|
IPA lattices after all propagation:
|
|
|
|
Lattices:
|
|
Node: programDword_data_flash/36:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
param [1]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: string_to_int/35:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: put_charp/34:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: put_cr/33:
|
|
Node: monprintf/32:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: OutStr/31:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: OutDev0/30:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: D2C/29:
|
|
param [0]: BOTTOM
|
|
ctxs: BOTTOM
|
|
Bits unusable (BOTTOM)
|
|
VARYING
|
|
AGGS BOTTOM
|
|
Node: delayN/28:
|
|
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:
|
|
|
|
__builtin_va_end/40 (__builtin_va_end) @06d591c0
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
vsprintf/39 (vsprintf) @06d590e0
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
__builtin_va_start/38 (__builtin_va_start) @06d59000
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
Lpuart_Uart_Ip_SyncSend/37 (Lpuart_Uart_Ip_SyncSend) @06bd5d20
|
|
Type: function
|
|
Visibility: external public
|
|
References:
|
|
Referring:
|
|
Availability: not_available
|
|
Function flags: optimize_size
|
|
Called by: OutDev0/30 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
programDword_data_flash/36 (programDword_data_flash) @06bd5700
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
string_to_int/35 (string_to_int) @06bd5460
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:118207164 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
put_charp/34 (put_charp) @06bd51c0
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call) D2C/29 (1073741824 (estimated locally),1.00 per call)
|
|
put_cr/33 (put_cr) @06bd1ee0
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: OutDev0/30 (1073741824 (estimated locally),1.00 per call) OutDev0/30 (1073741824 (estimated locally),1.00 per call)
|
|
monprintf/32 (monprintf) @06bd1700
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls: OutStr/31 (1073741824 (estimated locally),1.00 per call) __builtin_va_end/40 (1073741824 (estimated locally),1.00 per call) vsprintf/39 (1073741824 (estimated locally),1.00 per call) __builtin_va_start/38 (1073741824 (estimated locally),1.00 per call)
|
|
OutStr/31 (OutStr) @06bd1e00
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:118111600 (estimated locally) body optimize_size
|
|
Called by: monprintf/32 (1073741824 (estimated locally),1.00 per call)
|
|
Calls: OutDev0/30 (955630223 (estimated locally),8.09 per call)
|
|
OutDev0/30 (OutDev0) @06bd1b60
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) put_cr/33 (1073741824 (estimated locally),1.00 per call) OutStr/31 (955630223 (estimated locally),8.09 per call)
|
|
Calls: Lpuart_Uart_Ip_SyncSend/37 (1073741824 (estimated locally),1.00 per call)
|
|
D2C/29 (D2C) @06bd18c0
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by: put_charp/34 (1073741824 (estimated locally),1.00 per call) put_charp/34 (1073741824 (estimated locally),1.00 per call)
|
|
Calls:
|
|
delayN/28 (delayN) @06bd1620
|
|
Type: function definition analyzed
|
|
Visibility: externally_visible public
|
|
References:
|
|
Referring:
|
|
Availability: available
|
|
Function flags: count:1073741824 (estimated locally) body optimize_size
|
|
Called by:
|
|
Calls:
|
|
|
|
;; Function delayN (delayN, funcdef_no=28, decl_uid=5896, cgraph_uid=29, symbol_order=28)
|
|
|
|
Modification phase of node delayN/28
|
|
delayN (uint32_t n)
|
|
{
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG n => NULL
|
|
# DEBUG BEGIN_STMT
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function D2C (D2C, funcdef_no=29, decl_uid=5898, cgraph_uid=30, symbol_order=29)
|
|
|
|
Modification phase of node D2C/29
|
|
D2C (uint8_t c)
|
|
{
|
|
uint8_t _1;
|
|
uint8_t _3;
|
|
uint8_t _4;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
if (c_2(D) <= 9)
|
|
goto <bb 3>; [34.00%]
|
|
else
|
|
goto <bb 4>; [66.00%]
|
|
|
|
<bb 3> [local count: 365072220]:
|
|
# DEBUG BEGIN_STMT
|
|
_4 = c_2(D) + 48;
|
|
goto <bb 5>; [100.00%]
|
|
|
|
<bb 4> [local count: 708669605]:
|
|
# DEBUG BEGIN_STMT
|
|
_3 = c_2(D) + 55;
|
|
|
|
<bb 5> [local count: 1073741824]:
|
|
# _1 = PHI <_4(3), _3(4)>
|
|
return _1;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function OutDev0 (OutDev0, funcdef_no=30, decl_uid=5900, cgraph_uid=31, symbol_order=30)
|
|
|
|
Modification phase of node OutDev0/30
|
|
OutDev0 (char c)
|
|
{
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
Lpuart_Uart_Ip_SyncSend (0, &c, 1);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function OutStr (OutStr, funcdef_no=31, decl_uid=5902, cgraph_uid=32, symbol_order=31)
|
|
|
|
Modification phase of node OutStr/31
|
|
OutStr (const char * text)
|
|
{
|
|
char _1;
|
|
|
|
<bb 2> [local count: 118111600]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 4>; [100.00%]
|
|
|
|
<bb 3> [local count: 955630223]:
|
|
# DEBUG BEGIN_STMT
|
|
text_6 = text_2 + 1;
|
|
# DEBUG text => text_6
|
|
OutDev0 (_1);
|
|
|
|
<bb 4> [local count: 1073741824]:
|
|
# text_2 = PHI <text_4(D)(2), text_6(3)>
|
|
# DEBUG text => text_2
|
|
# DEBUG BEGIN_STMT
|
|
_1 = *text_2;
|
|
if (_1 != 0)
|
|
goto <bb 3>; [89.00%]
|
|
else
|
|
goto <bb 5>; [11.00%]
|
|
|
|
<bb 5> [local count: 118111601]:
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function monprintf (monprintf, funcdef_no=32, decl_uid=5904, cgraph_uid=33, symbol_order=32)
|
|
|
|
Modification phase of node monprintf/32
|
|
monprintf (char * msg)
|
|
{
|
|
struct va_list argptr;
|
|
char str[256];
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
__builtin_va_start (&argptr, 0);
|
|
# DEBUG BEGIN_STMT
|
|
vsprintf (&str, msg_3(D), argptr);
|
|
# DEBUG BEGIN_STMT
|
|
__builtin_va_end (&argptr);
|
|
# DEBUG BEGIN_STMT
|
|
str[253] = 0;
|
|
# DEBUG BEGIN_STMT
|
|
str[254] = 0;
|
|
# DEBUG BEGIN_STMT
|
|
OutStr (&str);
|
|
str ={v} {CLOBBER};
|
|
argptr ={v} {CLOBBER};
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function put_cr (put_cr, funcdef_no=33, decl_uid=6619, cgraph_uid=34, symbol_order=33)
|
|
|
|
Modification phase of node put_cr/33
|
|
put_cr ()
|
|
{
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
OutDev0 (13);
|
|
# DEBUG BEGIN_STMT
|
|
OutDev0 (10);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function put_charp (put_charp, funcdef_no=34, decl_uid=6622, cgraph_uid=35, symbol_order=34)
|
|
|
|
Modification phase of node put_charp/34
|
|
put_charp (unsigned char a)
|
|
{
|
|
unsigned char i;
|
|
unsigned char _1;
|
|
unsigned char _2;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
i_4 = a_3(D) >> 4;
|
|
# DEBUG i => i_4
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG i => i_4
|
|
# DEBUG BEGIN_STMT
|
|
_1 = D2C (i_4);
|
|
OutDev0 (_1);
|
|
# DEBUG BEGIN_STMT
|
|
i_7 = a_3(D) & 15;
|
|
# DEBUG i => i_7
|
|
# DEBUG BEGIN_STMT
|
|
_2 = D2C (i_7);
|
|
OutDev0 (_2);
|
|
# DEBUG BEGIN_STMT
|
|
OutDev0 (44);
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function string_to_int (string_to_int, funcdef_no=35, decl_uid=6626, cgraph_uid=36, symbol_order=35)
|
|
|
|
Modification phase of node string_to_int/35
|
|
string_to_int (uint8_t * buf)
|
|
{
|
|
uint32_t n;
|
|
uint32_t p;
|
|
uint32_t k;
|
|
uint32_t j;
|
|
uint32_t i;
|
|
uint8_t * _1;
|
|
unsigned char _2;
|
|
int _3;
|
|
int _5;
|
|
long unsigned int _6;
|
|
unsigned char _15;
|
|
|
|
<bb 2> [local count: 118207164]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG j => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG p => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG n => 0
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG i => 0
|
|
goto <bb 12>; [100.00%]
|
|
|
|
<bb 3> [local count: 955630225]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG k => 0
|
|
# DEBUG BEGIN_STMT
|
|
_1 = buf_17(D) + n_14;
|
|
_2 = *_1;
|
|
_3 = (int) _2;
|
|
switch (_2) <default: <L17> [33.33%], case 48 ... 57: <L1> [33.33%], case 65 ... 70: <L11> [33.33%]>
|
|
|
|
<bb 4> [local count: 318511554]:
|
|
<L1>:
|
|
# DEBUG BEGIN_STMT
|
|
_15 = _2 & 15;
|
|
k_20 = (uint32_t) _15;
|
|
# DEBUG k => k_20
|
|
# DEBUG BEGIN_STMT
|
|
p_21 = p_13 + 1;
|
|
# DEBUG p => p_21
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 9>; [100.00%]
|
|
|
|
<bb 5> [local count: 318511554]:
|
|
<L11>:
|
|
# DEBUG BEGIN_STMT
|
|
_5 = _3 + -55;
|
|
k_18 = (uint32_t) _5;
|
|
# DEBUG k => k_18
|
|
# DEBUG BEGIN_STMT
|
|
p_19 = p_13 + 1;
|
|
# DEBUG p => p_19
|
|
# DEBUG BEGIN_STMT
|
|
goto <bb 9>; [100.00%]
|
|
|
|
<bb 6> [local count: 318511554]:
|
|
<L17>:
|
|
# DEBUG BEGIN_STMT
|
|
if (j_10 != 0)
|
|
goto <bb 8>; [50.00%]
|
|
else
|
|
goto <bb 7>; [50.00%]
|
|
|
|
<bb 7> [local count: 159255777]:
|
|
if (p_13 != 0)
|
|
goto <bb 8>; [50.00%]
|
|
else
|
|
goto <bb 9>; [50.00%]
|
|
|
|
<bb 8> [local count: 238883666]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG i => 8
|
|
|
|
<bb 9> [local count: 955534663]:
|
|
# i_7 = PHI <i_8(4), i_8(5), 8(8), i_8(7)>
|
|
# k_11 = PHI <k_20(4), k_18(5), 0(8), 0(7)>
|
|
# p_12 = PHI <p_21(4), p_19(5), p_13(8), p_13(7)>
|
|
# DEBUG p => p_12
|
|
# DEBUG k => k_11
|
|
# DEBUG i => i_7
|
|
# DEBUG BEGIN_STMT
|
|
if (i_7 != 8)
|
|
goto <bb 10>; [66.00%]
|
|
else
|
|
goto <bb 11>; [34.00%]
|
|
|
|
<bb 10> [local count: 630652877]:
|
|
# DEBUG BEGIN_STMT
|
|
_6 = j_10 << 4;
|
|
j_22 = _6 + k_11;
|
|
# DEBUG j => j_22
|
|
|
|
<bb 11> [local count: 955534663]:
|
|
# j_9 = PHI <j_10(9), j_22(10)>
|
|
# DEBUG j => j_9
|
|
# DEBUG BEGIN_STMT
|
|
n_23 = n_14 + 1;
|
|
# DEBUG n => n_23
|
|
# DEBUG BEGIN_STMT
|
|
i_24 = i_7 + 1;
|
|
# DEBUG i => i_24
|
|
|
|
<bb 12> [local count: 1073741824]:
|
|
# i_8 = PHI <0(2), i_24(11)>
|
|
# j_10 = PHI <0(2), j_9(11)>
|
|
# p_13 = PHI <0(2), p_12(11)>
|
|
# n_14 = PHI <0(2), n_23(11)>
|
|
# DEBUG n => n_14
|
|
# DEBUG p => p_13
|
|
# DEBUG j => j_10
|
|
# DEBUG i => i_8
|
|
# DEBUG BEGIN_STMT
|
|
if (i_8 <= 7)
|
|
goto <bb 3>; [89.00%]
|
|
else
|
|
goto <bb 13>; [11.00%]
|
|
|
|
<bb 13> [local count: 118111601]:
|
|
# j_4 = PHI <j_10(12)>
|
|
# DEBUG BEGIN_STMT
|
|
return j_4;
|
|
|
|
}
|
|
|
|
|
|
|
|
;; Function programDword_data_flash (programDword_data_flash, funcdef_no=36, decl_uid=6656, cgraph_uid=37, symbol_order=36)
|
|
|
|
Modification phase of node programDword_data_flash/36
|
|
programDword_data_flash (uint32_t address, uint32_t * data)
|
|
{
|
|
uint16_t ret;
|
|
|
|
<bb 2> [local count: 1073741824]:
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG BEGIN_STMT
|
|
# DEBUG size => 8
|
|
# DEBUG BEGIN_STMT
|
|
return ret_1(D);
|
|
|
|
}
|
|
|
|
|