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==