From e9560dbece41136ffedd786723717efaa2a3a9fd Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Tue, 20 Oct 2020 16:30:44 -0400 Subject: Fix the 4 TACLeBench members that would not loop before - anagram, audiobeam: Reset heap in _init() function - g723_enc: Don't use static local variables - huff_dec: Reset all global state in _init() function --- all_pairs/source/anagram/anagram.c | 10 +++---- all_pairs/source/anagram/anagram_stdlib.c | 5 ++++ all_pairs/source/anagram/anagram_stdlib.h | 2 ++ all_pairs/source/audiobeam/audiobeam.c | 12 ++++---- all_pairs/source/audiobeam/audiobeamlibmalloc.c | 7 ++++- all_pairs/source/audiobeam/audiobeamlibmalloc.h | 2 ++ all_pairs/source/g723_enc/g723_enc.c | 39 ++++++++++++------------- all_pairs/source/huff_dec/huff_dec.c | 12 ++++---- baseline/source/anagram/anagram.c | 10 +++---- baseline/source/anagram/anagram_stdlib.c | 5 ++++ baseline/source/anagram/anagram_stdlib.h | 2 ++ baseline/source/audiobeam/audiobeam.c | 12 ++++---- baseline/source/audiobeam/audiobeamlibmalloc.c | 7 ++++- baseline/source/audiobeam/audiobeamlibmalloc.h | 2 ++ baseline/source/g723_enc/g723_enc.c | 39 ++++++++++++------------- baseline/source/huff_dec/huff_dec.c | 12 ++++---- 16 files changed, 96 insertions(+), 82 deletions(-) diff --git a/all_pairs/source/anagram/anagram.c b/all_pairs/source/anagram/anagram.c index 5c1f29a..1061470 100644 --- a/all_pairs/source/anagram/anagram.c +++ b/all_pairs/source/anagram/anagram.c @@ -337,6 +337,8 @@ void anagram_ReadDict( void ) void anagram_init( void ) { + // Reset heap + anagram_free_all(); anagram_ReadDict(); } @@ -657,14 +659,10 @@ void _Pragma( "entrypoint" ) anagram_main( void ) int main(int argc, char **argv) { SET_UP - //int jobsComplete; - //int maxJobs=100; - //for(jobsComplete=0; jobsComplete= 8 ) { - out_byte = out_buffer & 0xff; - out_bits -= 8; - out_buffer >>= 8; + + g723_enc_out_buffer |= ( code << g723_enc_out_bits ); + g723_enc_out_bits += bits; + if ( g723_enc_out_bits >= 8 ) { + out_byte = g723_enc_out_buffer & 0xff; + g723_enc_out_bits -= 8; + g723_enc_out_buffer >>= 8; //fwrite(&out_byte, sizeof (char), 1, fp_out); //fwrite(&out_byte, 1, 1, fp_out); - g723_enc_OUTPUT[i] = out_byte; - i = i + 1; + g723_enc_OUTPUT[g723_enc_i] = out_byte; + g723_enc_i = g723_enc_i + 1; } - return ( out_bits > 0 ); + return ( g723_enc_out_bits > 0 ); } /* @@ -815,6 +815,9 @@ void g723_enc_init() { int i; volatile int x = 0; + g723_enc_out_buffer = 0; + g723_enc_out_bits = 0; + g723_enc_i = 0; g723_enc_init_state( &g723_enc_state ); _Pragma( "loopbound min 256 max 256" ) @@ -872,16 +875,12 @@ void _Pragma( "entrypoint" ) g723_enc_main() int main( int argc, char **argv ) { - //SET_UP - int jobsComplete; - int maxJobs=9; - for (jobsComplete=0; jobsComplete= 8 ) { - out_byte = out_buffer & 0xff; - out_bits -= 8; - out_buffer >>= 8; + + g723_enc_out_buffer |= ( code << g723_enc_out_bits ); + g723_enc_out_bits += bits; + if ( g723_enc_out_bits >= 8 ) { + out_byte = g723_enc_out_buffer & 0xff; + g723_enc_out_bits -= 8; + g723_enc_out_buffer >>= 8; //fwrite(&out_byte, sizeof (char), 1, fp_out); //fwrite(&out_byte, 1, 1, fp_out); - g723_enc_OUTPUT[i] = out_byte; - i = i + 1; + g723_enc_OUTPUT[g723_enc_i] = out_byte; + g723_enc_i = g723_enc_i + 1; } - return ( out_bits > 0 ); + return ( g723_enc_out_bits > 0 ); } /* @@ -815,6 +815,9 @@ void g723_enc_init() { int i; volatile int x = 0; + g723_enc_out_buffer = 0; + g723_enc_out_bits = 0; + g723_enc_i = 0; g723_enc_init_state( &g723_enc_state ); _Pragma( "loopbound min 256 max 256" ) @@ -872,16 +875,12 @@ void _Pragma( "entrypoint" ) g723_enc_main() int main( int argc, char **argv ) { - //SET_UP - int jobsComplete; - int maxJobs=9; - for (jobsComplete=0; jobsComplete