Commit 85bfc79c authored by malenovsky's avatar malenovsky
Browse files

Merge branch '892-memory-consumption-in-bytes-instead-of-words' into 'main'

Resolve "Memory consumption in Bytes instead of Words"

See merge request !1208
parents 2fc6b845 33a402e5
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -218,7 +218,7 @@ int main(
#endif
#ifdef WMOPS
    reset_wmops();
    reset_mem( USE_32BITS );
    reset_mem( USE_BYTES );
#endif

    /*------------------------------------------------------------------------------------------*
+1 −1
Original line number Diff line number Diff line
@@ -202,7 +202,7 @@ int main(
#endif
#ifdef WMOPS
    reset_wmops();
    reset_mem( USE_32BITS );
    reset_mem( USE_BYTES );
#endif

    initArgStruct( &arg );
+1 −1
Original line number Diff line number Diff line
@@ -801,7 +801,7 @@ int main(

#ifdef WMOPS
    reset_wmops();
    reset_mem( USE_32BITS );
    reset_mem( USE_BYTES );
#endif

    for ( i = 0; i < RENDERER_MAX_MASA_INPUTS; ++i )
+21 −21
Original line number Diff line number Diff line
@@ -201,25 +201,25 @@
  <div class="graph-container" style="clear: both;">
    <ul class="legend">
      <li style="border-color: #FF0000;"><em>Max. total RAM Codec:</em>
            32 bit words, Encoder + Decoder</li>
            Encoder + Decoder</li>
      <li style="border-color: #FF8000;"><em>Max. total RAM Encoder:</em>
            32 bit words, Encoder only</li>
            Encoder only</li>
      <li style="border-color: #FFFF00;"><em>Max. total RAM Decoder:</em>
            32 bit words, Decoder only</li>
            Decoder only</li>
      
      <li style="border-color: #800080;"><em>Max. HEAP Codec:</em>
            32 bit words, Encoder + Decoder</li>
            Encoder + Decoder</li>
      <li style="border-color: #0000FF;"><em>Max. HEAP Encoder</em>
            32 bit words, Encoder only</li>
            Encoder only</li>
      <li style="border-color: #0080C0;"><em>Max. HEAP Decoder</em> 
            32 bit words, Decoder only</li>
            Decoder only</li>
      
      <li style="border-color: #004000;"><em>Max. STACK Codec:</em>
            32 bit words, max(Encoder, Decoder)</li>
            max(Encoder, Decoder)</li>
      <li style="border-color: #008000;"><em>Max. STACK Encoder:</em>
            32 bit words, Encoder only</li>
            Encoder only</li>
      <li style="border-color: #00FF00;"><em>Max. STACK Decoder:</em>
            32 bit words, Decoder only</li>
            Decoder only</li>
    </ul>
  </div>

@@ -261,10 +261,10 @@
    <ul class="legend">
      <li style="border-color: #FF0000;"><em>Max. total ROM Codec:</em> Encoder + Decoder</li>

      <li style="border-color: #FF8000;"><em>Max. max PROM Encoder Library:</em> lib_enc only</li>
      <li style="border-color: #FFFF00;"><em>Max. max PROM Decoder Library:</em> lib_dec only</li>
      <li style="border-color: #800080;"><em>Max. max PROM Common Library:</em> lib_com only/li>
      <li style="border-color: #0000FF;"><em>Max. max PROM Ext Renderer Library:</em> lib_ren only</li>
      <li style="border-color: #FF8000;"><em>Max. Program ROM Encoder Library:</em> lib_enc only</li>
      <li style="border-color: #FFFF00;"><em>Max. Program ROM Decoder Library:</em> lib_dec only</li>
      <li style="border-color: #800080;"><em>Max. Program ROM Common Library:</em> lib_com only</li>
      <li style="border-color: #0000FF;"><em>Max. Program ROM Ext Renderer Library:</em> lib_rend only</li>

      <li style="border-color: #0080C0;"><em>Max. Table ROM Encoder Library:</em> lib_enc only</li>
      <li style="border-color: #004000;"><em>Max. Table ROM Decoder Library:</em> lib_dec only</li>
@@ -707,7 +707,7 @@ function RAM() {
                max: max_val,
                tickFormatter: function (v, axis) {
                    if (graph.direction == -1)
                        return v + " Word";
                        return v + " bytes";
                    return v;
                },
                invert: graph.direction == 1
@@ -755,7 +755,7 @@ function RAM() {
              var text = 'Score: ' + y;

              if (graph.direction == -1)
                text += " Word";
                text += " bytes";
              text += "<br>";
            
              if (x > 0) {
@@ -774,7 +774,7 @@ function RAM() {
                if (diff === diff) {
                    text += String.fromCharCode(916) + ": " + diff;
                    if (graph.direction == -1)
                        text += " Word";
                        text += " bytes";
                    text += " (" + pdiff + "% " + better + ")<br>";
                }
              }
@@ -816,7 +816,7 @@ function RAM() {

              text += "<a href=\"logs/" + graph.runs[x].logFile + "\">Logfile</a><br>";
            } else {
              text = "RAM requirement: 100000 Word";
              text = "RAM requirement: 400000 bytes";
            }

	    showToolTip(item.pageX, item.pageY, text);
@@ -868,7 +868,7 @@ function ROM() {
                max: max_val,
                tickFormatter: function (v, axis) {
                    if (graph.direction == -1)
                        return v + " Word";
                        return v + " bytes";
                    return v;
                },
                invert: graph.direction == 1
@@ -916,7 +916,7 @@ function ROM() {
              var text = 'Score: ' + y;

              if (graph.direction == -1)
                text += " Word";
                text += " bytes";
              text += "<br>";
            
              if (x > 0) {
@@ -935,7 +935,7 @@ function ROM() {
                if (diff === diff) {
                    text += String.fromCharCode(916) + ": " + diff;
                    if (graph.direction == -1)
                        text += " Word";
                        text += " bytes";
                    text += " (" + pdiff + "% " + better + ")<br>";
                }
              }
@@ -991,7 +991,7 @@ function ROM() {
			  */

            } else {
              text = "ROM requirement: 200 kWord";
              text = "ROM requirement: 800000 bytes";
            }

	    showToolTip(item.pageX, item.pageY, text);
+15 −5
Original line number Diff line number Diff line
@@ -683,7 +683,7 @@ allocator_record *allocation_list = NULL;

static int Num_Records, Max_Num_Records;
static size_t Stat_Cnt_Size = USE_BYTES;
static const char *Count_Unit[] = { "bytes", "words", "words" };
static const char *Count_Unit[] = { "bytes", "words", "words", "words" };

static int32_t wc_ram_size, wc_ram_frame;
static int32_t current_heap_size;
@@ -1896,7 +1896,16 @@ void print_mem( ROM_Size_Lookup_Table Const_Data_PROM_Table[] )

        for ( i = 0; i < nElem; i++ )
        {
            fprintf( stdout, "Program ROM size (%s): %d instruction words\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size );
            if ( Stat_Cnt_Size > 0 )
            {
                /* words */
                fprintf( stdout, "Program ROM size (%s): %d words\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size );
            }
            else
            {
                /* bytes */
                fprintf( stdout, "Program ROM size (%s): %d bytes\n", Const_Data_PROM_Table[i].file_spec, Const_Data_PROM_Table[i].PROM_size << Stat_Cnt_Size );
            }
        }

        for ( i = 0; i < nElem; i++ )
@@ -1985,11 +1994,12 @@ void print_mem( ROM_Size_Lookup_Table Const_Data_PROM_Table[] )
    mem_count_summary();
#endif

    if ( Stat_Cnt_Size > 0 )
    if ( Stat_Cnt_Size == 0 )
    {
        fprintf( stdout, "\nNote: 1 word = %d bits\n", 8 << Stat_Cnt_Size );
        fprintf( stdout, "This is an optimistic estimate of memory consumption assuming that each variable type is stored with sizeof(type) bits\n" );
        /* bytes */
        fprintf( stdout, "\nNote: The Program ROM size is calculated under the assumption that 1 instruction word is stored with %d bytes (%d bits)\n", 1 << Stat_Cnt_Size, 8 << Stat_Cnt_Size );
    }
    fprintf( stdout, "Note: The Data ROM size is calculated using the sizeof(type) built-in function\n" );

    if ( n_items_wc_intra_frame_heap > 0 )
    {
Loading