463 lines
13 KiB
Plaintext
463 lines
13 KiB
Plaintext
TI ARM C/C++ Optimizer v5.1.6
|
|
Build Number 1OE9R-KDADEMDK-RTARQ-WAR-ZAZE_V_R_W
|
|
|
|
======File-level Analysis Summary======
|
|
|
|
|
|
extern void bench_aes() is called from 2 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (2 times)
|
|
AesCbcEncrypt() (1 times)
|
|
current_time() (2 times)
|
|
AesSetKey() (1 times)
|
|
|
|
extern void bench_arc4() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (1 times)
|
|
Arc4Process() (1 times)
|
|
current_time() (2 times)
|
|
Arc4SetKey() (1 times)
|
|
|
|
extern void bench_camellia() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (2 times)
|
|
CamelliaCbcEncrypt() (1 times)
|
|
current_time() (2 times)
|
|
CamelliaSetKey() (1 times)
|
|
|
|
extern void bench_chacha() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (1 times)
|
|
Chacha_Process() (1 times)
|
|
Chacha_SetIV() (1 times)
|
|
current_time() (2 times)
|
|
Chacha_SetKey() (1 times)
|
|
|
|
extern void bench_des() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (2 times)
|
|
Des3_CbcEncrypt() (1 times)
|
|
current_time() (2 times)
|
|
Des3_SetKey() (1 times)
|
|
|
|
extern void bench_dh() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
FreeDhKey() (1 times)
|
|
DhAgree() (1 times)
|
|
printf() (3 times)
|
|
DhGenerateKeyPair() (2 times)
|
|
current_time() (4 times)
|
|
DhKeyDecode() (1 times)
|
|
InitDhKey() (1 times)
|
|
memcpy() (1 times)
|
|
|
|
extern void bench_eccKeyAgree() is called from 1 sites in this file.
|
|
It has 4 non-trivial scope blocks nested 4 deep.
|
|
It calls these functions:
|
|
ecc_free() (2 times)
|
|
ecc_verify_hash() (1 times)
|
|
ecc_sign_hash() (1 times)
|
|
printf() (9 times)
|
|
ecc_shared_secret() (1 times)
|
|
current_time() (6 times)
|
|
ecc_make_key() (2 times)
|
|
InitRng() (1 times)
|
|
ecc_init() (2 times)
|
|
|
|
extern void bench_eccKeyGen() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (3 times)
|
|
ecc_free() (1 times)
|
|
ecc_make_key() (1 times)
|
|
current_time() (2 times)
|
|
InitRng() (1 times)
|
|
|
|
extern void bench_md5() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (1 times)
|
|
Md5Final() (1 times)
|
|
Md5Update() (1 times)
|
|
current_time() (2 times)
|
|
InitMd5() (1 times)
|
|
|
|
extern void bench_poly1305() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (2 times)
|
|
Poly1305Final() (1 times)
|
|
Poly1305Update() (1 times)
|
|
current_time() (2 times)
|
|
Poly1305SetKey() (1 times)
|
|
|
|
extern void bench_rabbit() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (1 times)
|
|
RabbitProcess() (1 times)
|
|
current_time() (2 times)
|
|
RabbitSetKey() (1 times)
|
|
|
|
extern void bench_rsa() is called from 1 sites in this file.
|
|
It has 4 non-trivial scope blocks nested 4 deep.
|
|
It calls these functions:
|
|
FreeRsaKey() (1 times)
|
|
RsaPrivateDecrypt() (1 times)
|
|
printf() (5 times)
|
|
RsaPublicEncrypt() (1 times)
|
|
current_time() (4 times)
|
|
RsaPrivateKeyDecode() (1 times)
|
|
InitRsaKey() (1 times)
|
|
InitRng() (1 times)
|
|
memcpy() (1 times)
|
|
strlen() (1 times)
|
|
|
|
extern void bench_sha() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (2 times)
|
|
ShaFinal() (1 times)
|
|
ShaUpdate() (1 times)
|
|
current_time() (2 times)
|
|
InitSha() (1 times)
|
|
|
|
extern void bench_sha256() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (4 times)
|
|
Sha256Final() (1 times)
|
|
Sha256Update() (1 times)
|
|
current_time() (2 times)
|
|
InitSha256() (1 times)
|
|
|
|
extern void bench_sha512() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
printf() (4 times)
|
|
Sha512Final() (1 times)
|
|
Sha512Update() (1 times)
|
|
current_time() (2 times)
|
|
InitSha512() (1 times)
|
|
|
|
extern int benchmark_test() is called from 0 sites in this file.
|
|
It appears to be inlineable (size = 24 units)
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
bench_eccKeyAgree() (1 times)
|
|
bench_eccKeyGen() (1 times)
|
|
bench_dh() (1 times)
|
|
bench_rsa() (1 times)
|
|
bench_sha512() (1 times)
|
|
bench_sha256() (1 times)
|
|
bench_sha() (1 times)
|
|
bench_poly1305() (1 times)
|
|
bench_md5() (1 times)
|
|
printf() (2 times)
|
|
bench_des() (1 times)
|
|
bench_chacha() (1 times)
|
|
bench_rabbit() (1 times)
|
|
bench_arc4() (1 times)
|
|
bench_camellia() (1 times)
|
|
bench_aes() (2 times)
|
|
|
|
static unsigned strlen() is called from 1 sites in this file.
|
|
It appears to be inlineable (size = 15 units)
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
Global variable is not referenced in this file:
|
|
extern const int sizeof_server_cert_der_2048
|
|
extern const int sizeof_server_key_der_2048
|
|
extern const int sizeof_ca_cert_der_2048
|
|
extern const int sizeof_rsa_key_der_2048
|
|
extern const int sizeof_dsa_key_der_2048
|
|
extern const int sizeof_dh_key_der_2048
|
|
extern const int sizeof_client_cert_der_2048
|
|
extern const int sizeof_client_key_der_2048
|
|
|
|
|
|
These functions may be recursive:
|
|
benchmark_test()
|
|
bench_eccKeyAgree()
|
|
bench_eccKeyGen()
|
|
bench_dh()
|
|
bench_rsa()
|
|
bench_sha512()
|
|
bench_sha256()
|
|
bench_sha()
|
|
bench_poly1305()
|
|
bench_md5()
|
|
bench_des()
|
|
bench_chacha()
|
|
bench_rabbit()
|
|
bench_arc4()
|
|
bench_camellia()
|
|
bench_aes()
|
|
Inlineable function will be suppressed: strlen()
|
|
|
|
These external functions are called but not defined here:
|
|
memcpy()
|
|
printf()
|
|
InitSha512()
|
|
Sha512Update()
|
|
Sha512Final()
|
|
InitSha256()
|
|
Sha256Update()
|
|
Sha256Final()
|
|
InitSha()
|
|
ShaUpdate()
|
|
ShaFinal()
|
|
InitRsaKey()
|
|
RsaPrivateKeyDecode()
|
|
RsaPublicEncrypt()
|
|
RsaPrivateDecrypt()
|
|
FreeRsaKey()
|
|
RabbitSetKey()
|
|
RabbitProcess()
|
|
Poly1305SetKey()
|
|
Poly1305Update()
|
|
Poly1305Final()
|
|
InitMd5()
|
|
Md5Update()
|
|
Md5Final()
|
|
ecc_init()
|
|
InitRng()
|
|
ecc_make_key()
|
|
ecc_shared_secret()
|
|
ecc_sign_hash()
|
|
ecc_verify_hash()
|
|
ecc_free()
|
|
InitDhKey()
|
|
DhKeyDecode()
|
|
DhGenerateKeyPair()
|
|
DhAgree()
|
|
FreeDhKey()
|
|
Des3_SetKey()
|
|
Des3_CbcEncrypt()
|
|
Chacha_SetKey()
|
|
Chacha_SetIV()
|
|
Chacha_Process()
|
|
CamelliaSetKey()
|
|
CamelliaCbcEncrypt()
|
|
Arc4SetKey()
|
|
Arc4Process()
|
|
AesSetKey()
|
|
current_time()
|
|
AesCbcEncrypt()
|
|
|
|
|
|
The following variables will be grouped together to share a common
|
|
base address. References in the source interlisting will look like
|
|
"1$$.key", "K$1->key", "C$1->key", "&1$$+3", and "C$1+3".
|
|
|
|
--offset-- --size-- --variable--
|
|
|
|
0 3 static const unsigned char blockType[3]
|
|
3 24 static const unsigned char key[24]
|
|
27 24 static const unsigned char iv[24]
|
|
51 26 static const unsigned char $P$T0$1[26]
|
|
77 268 extern const unsigned char dh_key_der_2048[268]
|
|
345 1191 extern const unsigned char rsa_key_der_2048[1191]
|
|
|
|
|
|
The following variables will be grouped together to share a common
|
|
base address. References in the source interlisting will look like
|
|
"2$$.plain", "K$1->plain", "C$1->plain", "&2$$+264", and "C$1+264".
|
|
|
|
--offset-- --size-- --variable--
|
|
|
|
0 264 static struct RNG rng
|
|
264 1024 static unsigned char plain[1024]
|
|
1288 1024 static unsigned char cipher[1024]
|
|
|
|
|
|
======= End file-level Analysis =======
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_aes() is called from 2 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_camellia() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_arc4() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_rabbit() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_chacha() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_des() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_md5() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_poly1305() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_sha() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_sha256() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_sha512() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_rsa() is called from 1 sites in this file.
|
|
It has 4 non-trivial scope blocks nested 4 deep.
|
|
It calls these functions:
|
|
strlen() (1 times)
|
|
|
|
There are 4 memory accesses with 1 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_dh() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 5 memory accesses with 2 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_eccKeyGen() is called from 1 sites in this file.
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern void bench_eccKeyAgree() is called from 1 sites in this file.
|
|
It has 4 non-trivial scope blocks nested 4 deep.
|
|
It calls these functions:
|
|
<NONE>
|
|
Unrolling 'for' loop on 'i' at lines C:/wolfssl/wolfcrypt/benchmark/benchmark.c:1396-1397 completely by factor 32.
|
|
Estimated speedup: 6.79x, code size increase: 8.00x (4:->32)
|
|
|
|
There are 37 memory accesses with 6 dependences.
|
|
|
|
|
|
==============================================================================
|
|
|
|
extern int benchmark_test() is called from 0 sites in this file.
|
|
It appears to be inlineable (size = 24 units)
|
|
It has 3 non-trivial scope blocks nested 3 deep.
|
|
It calls these functions:
|
|
bench_aes() (2 times)
|
|
bench_camellia() (1 times)
|
|
bench_arc4() (1 times)
|
|
bench_rabbit() (1 times)
|
|
bench_chacha() (1 times)
|
|
bench_des() (1 times)
|
|
bench_md5() (1 times)
|
|
bench_poly1305() (1 times)
|
|
bench_sha() (1 times)
|
|
bench_sha256() (1 times)
|
|
bench_sha512() (1 times)
|
|
bench_rsa() (1 times)
|
|
bench_dh() (1 times)
|
|
bench_eccKeyGen() (1 times)
|
|
bench_eccKeyAgree() (1 times)
|
|
|
|
There are 0 memory accesses with 0 dependences.
|
|
|
|
|
|
== END OF INFO OUTPUT==
|