Closed zherczeg closed 5 months ago
Could you check interpreter performance difference?
Before change:
| test |/home/hzoli/Escargot/wabt/walrus/out/walrus|
|--------------------|-------------------------------------------|
| change | 3.633 |
| factorial | 3.719 |
| fannkuch | 3.143 |
| fibonacci | 5.296 |
| gregory | 4.005 |
| hanoi | 4.704 |
| heapsort | 5.237 |
| huffman | 4.759 |
| kNucleotide | 3.942 |
| mandelbrotDouble | 3.772 |
| mandelbrotFloat | 3.581 |
| matrixMultiply | 5.927 |
| miniWalrus | 6.082 |
| nbody | 4.592 |
| nqueens | 4.229 |
| prime | 4.662 |
| quickSort | 4.515 |
| redBlack | 5.340 |
| rsa | 3.953 |
| salesman | 4.305 |
|simdMandelbrotDouble| 5.789 |
| simdMandelbrotFloat| 4.237 |
| simdMatrixMultiply | 11.720 |
| simdNbody | 2.784 |
| ticTacToe | 5.029 |
After change:
| test |/home/hzoli/Escargot/wabt/walrus/out/walrus|
|--------------------|-------------------------------------------|
| change | 3.686 |
| factorial | 3.649 |
| fannkuch | 3.245 |
| fibonacci | 5.363 |
| gregory | 3.816 |
| hanoi | 4.720 |
| heapsort | 5.298 |
| huffman | 4.946 |
| kNucleotide | 3.950 |
| mandelbrotDouble | 3.762 |
| mandelbrotFloat | 3.647 |
| matrixMultiply | 5.933 |
| miniWalrus | 5.383 |
| nbody | 4.659 |
| nqueens | 4.236 |
| prime | 4.635 |
| quickSort | 4.465 |
| redBlack | 5.368 |
| rsa | 4.270 |
| salesman | 4.417 |
|simdMandelbrotDouble| 5.653 |
| simdMandelbrotFloat| 4.346 |
| simdMatrixMultiply | 11.360 |
| simdNbody | 2.993 |
| ticTacToe | 5.118 |
Looks like noise
@clover2123 what do you think about this patch? It does not affect perf, especially because move is rarely used. It is not a real webassembly instruction, more of a helper in some edge cases.
It seems that the parsing/compilation overhead is not significant for the overall performance, as you mentioned, so It looks ok.
This patch splits move32/64 to movei32/64 and movef32/64. The advantages of selecting
move
operation for this:const32, move32, move32, add.f32
is difficult to track. There are still cases, such asmove32, store32
, which cannot be analyzed, but these should have minimal impact.What do you think?