Author: sewardj Date: 2008-03-09 21:09:05 +0000 (Sun, 09 Mar 2008) New Revision: 7625
Log: A bit of unrollery in the SVal cache writeback code. Hey, it's a no-brainer and is worth about 1.5% on one test. Modified: branches/HGDEV/helgrind/hg_main.c Modified: branches/HGDEV/helgrind/hg_main.c =================================================================== --- branches/HGDEV/helgrind/hg_main.c 2008-03-09 20:44:20 UTC (rev 7624) +++ branches/HGDEV/helgrind/hg_main.c 2008-03-09 21:09:05 UTC (rev 7625) @@ -4231,10 +4231,37 @@ if (lineZ->dict[3] == 0) { lineZ->dict[3] = sv; j = 3; goto dict_ok; } break; /* we'll have to use the f rep */ dict_ok: - for (m = csvals[k].count; m > 0; m--) { - write_twobit_array( lineZ->ix2s, i, j ); - i++; + m = csvals[k].count; + if (m == 8) { + write_twobit_array( lineZ->ix2s, i+0, j ); + write_twobit_array( lineZ->ix2s, i+1, j ); + write_twobit_array( lineZ->ix2s, i+2, j ); + write_twobit_array( lineZ->ix2s, i+3, j ); + write_twobit_array( lineZ->ix2s, i+4, j ); + write_twobit_array( lineZ->ix2s, i+5, j ); + write_twobit_array( lineZ->ix2s, i+6, j ); + write_twobit_array( lineZ->ix2s, i+7, j ); + i += 8; } + else if (m == 4) { + write_twobit_array( lineZ->ix2s, i+0, j ); + write_twobit_array( lineZ->ix2s, i+1, j ); + write_twobit_array( lineZ->ix2s, i+2, j ); + write_twobit_array( lineZ->ix2s, i+3, j ); + i += 4; + } + else if (m == 1) { + write_twobit_array( lineZ->ix2s, i+0, j ); + i += 1; + } + else if (m == 2) { + write_twobit_array( lineZ->ix2s, i+0, j ); + write_twobit_array( lineZ->ix2s, i+1, j ); + i += 2; + } + else { + tl_assert(0); /* 8 4 2 or 1 are the only legitimate values for m */ + } } ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Valgrind-developers mailing list Valgrind-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/valgrind-developers