From: Andrew H. <ap...@re...> - 2021-01-07 11:51:10
|
On 1/6/21 4:28 PM, Jeff Allen wrote: >> And to see if intrinsic methods are being utilized or not and where in >> compiled code, you can add: >> -XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions >> -XX:+PrintInlining >> > Unlock has to come first, it seems. I've experimented with those options > and found what they produced was pretty incomprehensible. I never made > the disassembly option work. If you're interested in persisting a bit more, I can help with this. git clone https://github.com/openjdk/jdk cd jdk/src/utils/hsdis/ mkdir build git clone git://sourceware.org/git/binutils-gdb.git build/binutils make ARCH=amd64 ls build/linux-amd64/ bfd/ config.log config.status* hsdis-amd64.so* intl/ libiberty/ Makefile opcodes/ serdep.tmp zlib/ That hsdis-amd64.so should be installed in your library path somewhere: on every machine I have access to it's in /usr/lib64. Then all of the PrintAssembly stuff should work. > Going back and trying a little harder, thanks to your suggestion, I got > further this morning. The output remains too complex for me to follow > (so many jumps!), but a superficial inspection supports the conjectures > I made based only on timing. WRT intrinsics: if there's something important, we can do it. -- Andrew Haley (he/him) Java Platform Lead Engineer Red Hat UK Ltd. <https://www.redhat.com> https://keybase.io/andrewhaley EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671 |