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:/cyassl/ctaocrypt/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==
