Paweł Bylica
Paweł Bylica
EPYC 7601 2.2 GHz, GCC10 LTO ``` fizzy/parse/blake2b_mean +0.0300 +0.0300 54 55 54 55 fizzy/instantiate/blake2b_mean -0.0325 -0.0318 65 63 65 63 fizzy/execute/blake2b/512_bytes_rounds_1_mean +0.0478 +0.0478 210 220 210 220 fizzy/execute/blake2b/512_bytes_rounds_16_mean +0.0517...
> Test suggestion: function containing all skipped opcodes, check that it's parsed to single `end`. Added.
> Do we need this? Yes. We need the `is_even()` implementation: https://github.com/wasmx/fizzy/pull/503/files#diff-0a1ee17a5a632aafe4ae0b789cb7d1b7R9
> @chfast maybe this with #602 would be measurable saving? It removes the passing of `func_type`. Yes. This was main goal.
Clang 11 ``` fizzy/execute/blake2b/512_bytes_rounds_1_mean -0.0471 -0.0471 86 82 86 82 fizzy/execute/blake2b/512_bytes_rounds_16_mean -0.0561 -0.0561 1306 1232 1306 1232 fizzy/execute/ecpairing/onepoint_mean +0.0807 +0.0807 401835 434259 401839 434263 fizzy/execute/keccak256/512_bytes_rounds_1_mean -0.0354 -0.0354 101 98 101...
> I'd merge #554 first / instead of this. This is the only effective change in #554. Rest is done by the compiler optimization.
> The reason I like #554 because that makes it apparent those are two different code paths and we should optimise separately. We can wait for the `std::function` work first...
``` fizzy/execute/blake2b/512_bytes_rounds_1_mean -0.0009 -0.0009 221 221 221 221 fizzy/execute/blake2b/512_bytes_rounds_16_mean +0.0059 +0.0058 3357 3377 3356 3376 fizzy/execute/ecpairing/onepoint_mean +0.0274 +0.0276 1172130 1204208 1171467 1203788 fizzy/execute/keccak256/512_bytes_rounds_1_mean +0.0330 +0.0327 265 273 265 273 fizzy/execute/keccak256/512_bytes_rounds_16_mean...
This is no good. GCC 12 ``` fizzy/execute/blake2b/512_bytes_rounds_1_mean +0.2228 +0.2228 67 82 67 82 fizzy/execute/blake2b/512_bytes_rounds_16_mean +0.2179 +0.2179 1011 1231 1011 1231 fizzy/execute/ecpairing/onepoint_mean +0.1895 +0.1895 327477 389546 327477 389545 fizzy/execute/keccak256/512_bytes_rounds_1_mean +0.2082...
Some parts are not implemented.