Leopold Toetsch wrote:

I have now implemented a C<rot> opcode and the one used signature for MD5 as a JIT opcode for x86. But the speedup is much smaller: around 5%.

Thanks!

The problem with md5 code and Parrot JIT seems to be related to the register allocator. md5 code is one big basic block of integer code. As we don't do any register renaming, the CPU-register usage especially on x86 is suboptimal.

I must admit that I thought that one basic block of integer code would run pretty well (that's why I inlined it all). It touches lots of registers because its job is to do lots of mashing of bits!


Comparing the performance with the OS md5sum was more just a curiosity; it's not really a fair comparison.

Cheers Leo,

Nick



Reply via email to