RFR: 8253757: Add LLVM-based backend for hsdis
Ludovic Henry
luhenry at openjdk.java.net
Fri Oct 15 08:22:48 UTC 2021
On Wed, 13 Oct 2021 00:00:22 GMT, Magnus Ihse Bursie <ihse at openjdk.org> wrote:
> This patch expands the newly added system for hsdis backends to include LLVM.
>
> The actual code in hsdis-llvm.cpp is based heavily on the work by @luhenry, as published in the never integrated PR https://github.com/openjdk/jdk/pull/392. (I have basically just ripped out the binutils-based part of it.)
>
> Unfortunately I have not been able to make this work properly on Windows. With some additional flags I made it compile without complaints, but it caused hotspot to segfault in `LoadLibrary` (!) in `os::dll_load` when I tried to load the library. This is somewhat ironic, since the initial implementation was created by Ludovic for the very purpose of using it on Windows.
>
> The lack of Windows support in this patch does not mean it is impossible to get it to work, just that I need to co-operate with someone who has more experience of compiling LLVM on Windows, and/or are more eager to get this combination to work.
The value add of this LLVM-based hsdis is two-fold:
- It supports platforms that aren't supported by binutils (Windows-AArch64 for example)
- The license being more permissive would allow to build it as part of the OpenJDK build more easily (and even maybe ship it?)
LLVM has a strong track record of supporting new platforms (Windows-AArch64 and macOS-AArch64 for example, mostly because of investment from Microsoft and Apple respectively), and `hsdis` is a necessary tool for porting the OpenJDK to any new platform. Since the maintenance is fairly low (small codebase, small and knowledgable user base), I would be biased towards including it with appropriate warnings.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5920
More information about the build-dev
mailing list