How to validate the successfulness of the c2 compiler in generating vectorized assembly

Robbe Pincket robbepincket at live.be
Mon Nov 22 17:03:01 UTC 2021


Hi

Recently, A coworker converted part of our codebase to use the new incubating vector api. And although a noticable increase in performance was measured, the allocation rate under even mild stress of the system has skyrocketed to 1.3 gb/s, due to the need of creating temporary arrays. After a partial rewrite, to avoid most of those allocations or replace a few double arrays to short or byte arrays, I was expecting this rate to significantly drop. This did not seem to happen. Instead there are many more array allocations happening in the creation of the vectors and vector masks themselves. On top of that, the code seems to now be noticable slower than the original code. It seems that the c2 compiler is failing to generate any vectorized code.

So here is my question: What is the best way to validate whether the c2 compiler is actually using vectorized opcodes, and if not, get feedback from the compiler on why it fails to do so.

Thanks in advance
Robbe Pincket


More information about the panama-dev mailing list