oracle / graal

GraalVM compiles Java applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀
https://www.graalvm.org
Other
20.29k stars 1.63k forks source link

[LLVM] opt assertion failure: support for FCA unimplemented #3185

Closed koutheir closed 3 years ago

koutheir commented 3 years ago

Environment

Issue

LLVM opt reports the following assertion failure when invoked by native-image:

<...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2722:
void computeLiveInValues(BasicBlock::reverse_iterator, BasicBlock::reverse_iterator, SetVector<llvm::Value *> &, bool):
Assertion `!isUnhandledGCPointerType(V->getType(), Compressed) && "support for FCA unimplemented"' failed.

This issue is consistently reproducible.

Full invocation

The full invocation of native-image is below:

<...>/shipping/graalvm-java11-linux-amd64-gnu/bin/native-image --target=linux-aarch64 -H:+TraceNativeToolUsage -H:CompilerBackend=llvm -H:+SpawnIsolates -H:LLVMMaxFunctionsPerBatch=1 -H:-UseCompressedReferences -H:-UseCompressedReferenceShift -H:-ReturnSpecialRegs -H:TempDirectory=<...>/a/build-linux-aarch64-llvm -H:DumpLLVMStackMap=<...>/a/build-linux-aarch64-llvm/stack-map.debuginfo -Dllvm.bin.dir=<...>/llvm-10/bin -H:CustomLD=<...>/llvm-10/bin/ld.lld --native-compiler-path=<...>/llvm-10/bin/clang --native-compiler-options=--target=aarch64-linux-gnu --native-compiler-options=-fuse-ld=lld --native-compiler-options=--gcc-toolchain=<...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu --native-compiler-options=--sysroot=<...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc --native-compiler-options=-I<...>/shipping/graalvm-java11-linux-amd64-gnu/include --native-compiler-options=-I<...>/shipping/graalvm-java11-linux-amd64-gnu/include/linux --native-compiler-options=-L<...>/zlib/linux-aarch64-aapcs64/lib -cp <...>/a/build-linux-aarch64-llvm --native-image-info -H:CAPCacheDir=<...>/a/build-linux-aarch64-llvm/cap -H:Name=<...>/a/build-linux-aarch64-llvm/hello Hello

[<...>/a/build-linux-aarch64-llvm/hello:1843814]    classlist:   2,370.96 ms,  0.96 GB
>> <...>/llvm-10/bin/clang --target=aarch64-linux-gnu -fuse-ld=lld --gcc-toolchain=<...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu --sysroot=<...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc -I<...>/shipping/graalvm-java11-linux-amd64-gnu/include -I<...>/shipping/graalvm-java11-linux-amd64-gnu/include/linux -L<...>/zlib/linux-aarch64-aapcs64/lib -v 
># clang version 10.0.0 (http://vm-oracle-phabricator.microdoc.intern/diffusion/12/p111200.git/ 722494436e7a470d4d02ee5348411773e1ced4ff)
># Target: aarch64-unknown-linux-gnu
># Thread model: posix
># InstalledDir: <...>/llvm-10/bin
># Found candidate GCC installation: <...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/lib/gcc/aarch64-none-linux-gnu/10.2.1
># Selected GCC installation: <...>/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/lib/gcc/aarch64-none-linux-gnu/10.2.1
># Candidate multilib: .;@m64
># Selected multilib: .;@m64
># clang-10: warning: argument unused during compilation: '-fuse-ld=lld' [-Wunused-command-line-argument]
># clang-10: warning: argument unused during compilation: '-I <...>/shipping/graalvm-java11-linux-amd64-gnu/include' [-Wunused-command-line-argument]
># clang-10: warning: argument unused during compilation: '-I <...>/shipping/graalvm-java11-linux-amd64-gnu/include/linux' [-Wunused-command-line-argument]
># clang-10: warning: argument unused during compilation: '-L<...>/zlib/linux-aarch64-aapcs64/lib' [-Wunused-command-line-argument]
[<...>/a/build-linux-aarch64-llvm/hello:1843814]        (cap):     303.90 ms,  0.96 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]        setup:   3,988.81 ms,  0.96 GB
# Building image for target platform: org.graalvm.nativeimage.Platform$LINUX_AARCH64
# Using native toolchain:
#   Name: Clang C++ Compiler (clang)
#   Vendor: llvm
#   Version: 10.0.0
#   Target architecture: aarch64
#   Path: <...>/llvm-10/bin/clang
# Using CLibrary: com.oracle.svm.core.posix.linux.libc.GLibC
[<...>/a/build-linux-aarch64-llvm/hello:1843814]     (clinit):     258.79 ms,  1.69 GB
# Static libraries:
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/svm/clibraries/linux-aarch64/liblibchelper.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/static/linux-aarch64/glibc/libnet.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/static/linux-aarch64/glibc/libnio.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/static/linux-aarch64/glibc/libjava.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/static/linux-aarch64/glibc/libfdlibm.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/static/linux-aarch64/glibc/libzip.a
#   ../shipping/graalvm-java11-linux-amd64-gnu/lib/svm/clibraries/linux-aarch64/libjvm.a
# Other libraries: m,pthread,dl,z,rt
[<...>/a/build-linux-aarch64-llvm/hello:1843814]   (typeflow):   5,212.26 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]    (objects):   5,257.02 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]   (features):     414.17 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]     analysis:  11,477.77 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]     universe:     408.22 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]      (parse):   1,129.28 ms,  1.69 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]     (inline):   2,219.47 ms,  1.70 GB
>> <...>/llvm-10/bin/llvm-config --version 
># 10.0.0
[<...>/a/build-linux-aarch64-llvm/hello:1843814]    (compile):  18,780.90 ms,  4.60 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]    (bitcode):     103.31 ms,  4.60 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]    (prelink):       0.05 ms,  4.60 GB
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f6o.bc f6.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f5o.bc f5.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f0o.bc f0.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f4o.bc f4.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f3o.bc f3.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f7o.bc f7.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f2o.bc f2.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f1o.bc f1.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f5.o f5o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f6.o f6o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f4.o f4o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f0.o f0o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f7.o f7o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f2.o f2o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f3.o f3o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f1.o f1o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f8o.bc f8.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f9o.bc f9.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f10o.bc f10.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f11o.bc f11.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f12o.bc f12.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f13o.bc f13.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f14o.bc f14.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f10.o f10o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f15o.bc f15.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f11.o f11o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f8.o f8o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f9.o f9o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f12.o f12o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f13.o f13o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f14.o f14o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f15.o f15o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f16o.bc f16.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f17o.bc f17.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f18o.bc f18.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f19o.bc f19.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f20o.bc f20.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f16.o f16o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f21o.bc f21.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f22o.bc f22.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f17.o f17o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f20.o f20o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f21.o f21o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f19.o f19o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f18.o f18o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f23o.bc f23.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f22.o f22o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f24o.bc f24.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f23.o f23o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f25o.bc f25.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f26o.bc f26.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f27o.bc f27.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f24.o f24o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f28o.bc f28.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f29o.bc f29.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f30o.bc f30.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f26.o f26o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f31o.bc f31.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f27.o f27o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f28.o f28o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f29.o f29o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f30.o f30o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f25.o f25o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f32o.bc f32.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f33o.bc f33.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f34o.bc f34.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f31.o f31o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f35o.bc f35.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f32.o f32o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f33.o f33o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f36o.bc f36.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f34.o f34o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f37o.bc f37.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f35.o f35o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f37.o f37o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f38o.bc f38.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f39o.bc f39.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f40o.bc f40.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f36.o f36o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f38.o f38o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f41o.bc f41.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f42o.bc f42.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f40.o f40o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f43o.bc f43.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f39.o f39o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f44o.bc f44.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f45o.bc f45.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f46o.bc f46.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f44.o f44o.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f45.o f45o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f47o.bc f47.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f48o.bc f48.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f47.o f47o.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f49o.bc f49.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f50o.bc f50.bc 
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f51o.bc f51.bc 
># opt: <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2722: void computeLiveInValues(BasicBlock::reverse_iterator, BasicBlock::reverse_iterator, SetVector<llvm::Value *> &, bool): Assertion `!isUnhandledGCPointerType(V->getType(), Compressed) && "support for FCA unimplemented"' failed.
># Stack dump:
># 0.   Program arguments: <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f41o.bc f41.bc 
># 1.   Running pass 'Make relocations explicit at statepoints' on module 'f41.bc'.
>#  #0 0x0000000002688cdf llvm::sys::PrintStackTrace(llvm::raw_ostream&) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:564:13
>#  #1 0x0000000002686ec0 llvm::sys::RunSignalHandlers() <...>/llvm-10-src/llvm/lib/Support/Signals.cpp:69:18
>#  #2 0x0000000002689245 SignalHandler(int) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:0:3
>#  #3 0x00007f8c3fee5140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
>#  #4 0x00007f8c3e3e2ce1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:51:1
>#  #5 0x00007f8c3e3cc537 abort ./stdlib/abort.c:81:7
>#  #6 0x00007f8c3e3cc40f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
>#  #7 0x00007f8c3e3cc40f _nl_load_domain ./intl/loadmsgcat.c:970:34
>#  #8 0x00007f8c3e3db662 (/lib/x86_64-linux-gnu/libc.so.6+0x34662)
>#  #9 0x0000000002586c57 llvm::isa_impl_cl<llvm::Constant, llvm::Value const*>::doit(llvm::Value const*) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:105:5
># #10 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value const*, llvm::Value const*>::doit(llvm::Value const* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:132:12
># #11 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value* const, llvm::Value const*>::doit(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:122:12
># #12 0x0000000002586c57 bool llvm::isa<llvm::Constant, llvm::Value*>(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:142:10
># #13 0x0000000002586c57 computeLiveInValues(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*> >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*> > >&, bool) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2723:64
># #14 0x0000000002585114 computeLiveInValues(llvm::DominatorTree&, llvm::Function&, (anonymous namespace)::GCPtrLivenessData&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2807:37
># #15 0x000000000257cc97 findLiveReferences(llvm::Function&, llvm::DominatorTree&, llvm::ArrayRef<llvm::CallBase*>, llvm::MutableArrayRef<(anonymous namespace)::PartiallyConstructedSafepointRecord>) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:3
># #16 0x000000000257cc97 insertParsePoints(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::SmallVectorImpl<llvm::CallBase*>&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2287:3
># #17 0x000000000257b414 llvm::RewriteStatepointsForGC::runOnFunction(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::TargetLibraryInfo const&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:17
># #18 0x00000000025830f8 (anonymous namespace)::RewriteStatepointsForGCLegacyPass::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:23
># #19 0x0000000001fa82c8 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:0:27
># #20 0x0000000001fa82c8 llvm::legacy::PassManagerImpl::run(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:1694:44
># #21 0x000000000146ad38 main <...>/llvm-10-src/llvm/tools/opt/opt.cpp:0:12
># #22 0x00007f8c3e3cdd0a __libc_start_main ./csu/../csu/libc-start.c:308:16
># #23 0x0000000001454ffa _start (<...>/llvm-10/bin/opt+0x1454ffa)
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f52o.bc f52.bc 
># opt: <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2722: void computeLiveInValues(BasicBlock::reverse_iterator, BasicBlock::reverse_iterator, SetVector<llvm::Value *> &, bool): Assertion `!isUnhandledGCPointerType(V->getType(), Compressed) && "support for FCA unimplemented"' failed.
># Stack dump:
># 0.   Program arguments: <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f46o.bc f46.bc 
># 1.   Running pass 'Make relocations explicit at statepoints' on module 'f46.bc'.
>#  #0 0x0000000002688cdf llvm::sys::PrintStackTrace(llvm::raw_ostream&) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:564:13
>#  #1 0x0000000002686ec0 llvm::sys::RunSignalHandlers() <...>/llvm-10-src/llvm/lib/Support/Signals.cpp:69:18
>#  #2 0x0000000002689245 SignalHandler(int) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:0:3
>#  #3 0x00007fa51abda140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
>#  #4 0x00007fa5190d7ce1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:51:1
>#  #5 0x00007fa5190c1537 abort ./stdlib/abort.c:81:7
>#  #6 0x00007fa5190c140f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
>#  #7 0x00007fa5190c140f _nl_load_domain ./intl/loadmsgcat.c:970:34
>#  #8 0x00007fa5190d0662 (/lib/x86_64-linux-gnu/libc.so.6+0x34662)
>#  #9 0x0000000002586c57 llvm::isa_impl_cl<llvm::Constant, llvm::Value const*>::doit(llvm::Value const*) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:105:5
># #10 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value const*, llvm::Value const*>::doit(llvm::Value const* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:132:12
># #11 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value* const, llvm::Value const*>::doit(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:122:12
># #12 0x0000000002586c57 bool llvm::isa<llvm::Constant, llvm::Value*>(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:142:10
># #13 0x0000000002586c57 computeLiveInValues(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*> >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*> > >&, bool) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2723:64
># #14 0x0000000002585114 computeLiveInValues(llvm::DominatorTree&, llvm::Function&, (anonymous namespace)::GCPtrLivenessData&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2807:37
># #15 0x000000000257cc97 findLiveReferences(llvm::Function&, llvm::DominatorTree&, llvm::ArrayRef<llvm::CallBase*>, llvm::MutableArrayRef<(anonymous namespace)::PartiallyConstructedSafepointRecord>) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:3
># #16 0x000000000257cc97 insertParsePoints(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::SmallVectorImpl<llvm::CallBase*>&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2287:3
># #17 0x000000000257b414 llvm::RewriteStatepointsForGC::runOnFunction(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::TargetLibraryInfo const&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:17
># #18 0x00000000025830f8 (anonymous namespace)::RewriteStatepointsForGCLegacyPass::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:23
># #19 0x0000000001fa82c8 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:0:27
># #20 0x0000000001fa82c8 llvm::legacy::PassManagerImpl::run(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:1694:44
># #21 0x000000000146ad38 main <...>/llvm-10-src/llvm/tools/opt/opt.cpp:0:12
># #22 0x00007fa5190c2d0a __libc_start_main ./csu/../csu/libc-start.c:308:16
># #23 0x0000000001454ffa _start (<...>/llvm-10/bin/opt+0x1454ffa)
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f53o.bc f53.bc 
># opt: <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2722: void computeLiveInValues(BasicBlock::reverse_iterator, BasicBlock::reverse_iterator, SetVector<llvm::Value *> &, bool): Assertion `!isUnhandledGCPointerType(V->getType(), Compressed) && "support for FCA unimplemented"' failed.
># Stack dump:
># 0.   Program arguments: <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f43o.bc f43.bc 
># 1.   Running pass 'Make relocations explicit at statepoints' on module 'f43.bc'.
>#  #0 0x0000000002688cdf llvm::sys::PrintStackTrace(llvm::raw_ostream&) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:564:13
>#  #1 0x0000000002686ec0 llvm::sys::RunSignalHandlers() <...>/llvm-10-src/llvm/lib/Support/Signals.cpp:69:18
>#  #2 0x0000000002689245 SignalHandler(int) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:0:3
>#  #3 0x00007f9225a28140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
>#  #4 0x00007f9223f25ce1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:51:1
>#  #5 0x00007f9223f0f537 abort ./stdlib/abort.c:81:7
>#  #6 0x00007f9223f0f40f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
>#  #7 0x00007f9223f0f40f _nl_load_domain ./intl/loadmsgcat.c:970:34
>#  #8 0x00007f9223f1e662 (/lib/x86_64-linux-gnu/libc.so.6+0x34662)
>#  #9 0x0000000002586c57 llvm::isa_impl_cl<llvm::Constant, llvm::Value const*>::doit(llvm::Value const*) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:105:5
># #10 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value const*, llvm::Value const*>::doit(llvm::Value const* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:132:12
># #11 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value* const, llvm::Value const*>::doit(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:122:12
># #12 0x0000000002586c57 bool llvm::isa<llvm::Constant, llvm::Value*>(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:142:10
># #13 0x0000000002586c57 computeLiveInValues(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*> >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*> > >&, bool) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2723:64
># #14 0x0000000002585114 computeLiveInValues(llvm::DominatorTree&, llvm::Function&, (anonymous namespace)::GCPtrLivenessData&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2807:37
># #15 0x000000000257cc97 findLiveReferences(llvm::Function&, llvm::DominatorTree&, llvm::ArrayRef<llvm::CallBase*>, llvm::MutableArrayRef<(anonymous namespace)::PartiallyConstructedSafepointRecord>) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:3
># #16 0x000000000257cc97 insertParsePoints(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::SmallVectorImpl<llvm::CallBase*>&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2287:3
># #17 0x000000000257b414 llvm::RewriteStatepointsForGC::runOnFunction(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::TargetLibraryInfo const&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:17
># #18 0x00000000025830f8 (anonymous namespace)::RewriteStatepointsForGCLegacyPass::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:23
># #19 0x0000000001fa82c8 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:0:27
># #20 0x0000000001fa82c8 llvm::legacy::PassManagerImpl::run(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:1694:44
># #21 0x000000000146ad38 main <...>/llvm-10-src/llvm/tools/opt/opt.cpp:0:12
># #22 0x00007f9223f10d0a __libc_start_main ./csu/../csu/libc-start.c:308:16
># #23 0x0000000001454ffa _start (<...>/llvm-10/bin/opt+0x1454ffa)
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f54o.bc f54.bc 
># opt: <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2722: void computeLiveInValues(BasicBlock::reverse_iterator, BasicBlock::reverse_iterator, SetVector<llvm::Value *> &, bool): Assertion `!isUnhandledGCPointerType(V->getType(), Compressed) && "support for FCA unimplemented"' failed.
># Stack dump:
># 0.   Program arguments: <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f48o.bc f48.bc 
># 1.   Running pass 'Make relocations explicit at statepoints' on module 'f48.bc'.
>#  #0 0x0000000002688cdf llvm::sys::PrintStackTrace(llvm::raw_ostream&) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:564:13
>#  #1 0x0000000002686ec0 llvm::sys::RunSignalHandlers() <...>/llvm-10-src/llvm/lib/Support/Signals.cpp:69:18
>#  #2 0x0000000002689245 SignalHandler(int) <...>/llvm-10-src/llvm/lib/Support/Unix/Signals.inc:0:3
>#  #3 0x00007f555d7d2140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
>#  #4 0x00007f555bccfce1 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:51:1
>#  #5 0x00007f555bcb9537 abort ./stdlib/abort.c:81:7
>#  #6 0x00007f555bcb940f get_sysdep_segment_value ./intl/loadmsgcat.c:509:8
>#  #7 0x00007f555bcb940f _nl_load_domain ./intl/loadmsgcat.c:970:34
>#  #8 0x00007f555bcc8662 (/lib/x86_64-linux-gnu/libc.so.6+0x34662)
>#  #9 0x0000000002586c57 llvm::isa_impl_cl<llvm::Constant, llvm::Value const*>::doit(llvm::Value const*) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:105:5
># #10 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value const*, llvm::Value const*>::doit(llvm::Value const* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:132:12
># #11 0x0000000002586c57 llvm::isa_impl_wrap<llvm::Constant, llvm::Value* const, llvm::Value const*>::doit(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:122:12
># #12 0x0000000002586c57 bool llvm::isa<llvm::Constant, llvm::Value*>(llvm::Value* const&) <...>/llvm-10-src/llvm/include/llvm/Support/Casting.h:142:10
># #13 0x0000000002586c57 computeLiveInValues(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, true, false>, llvm::SetVector<llvm::Value*, std::vector<llvm::Value*, std::allocator<llvm::Value*> >, llvm::DenseSet<llvm::Value*, llvm::DenseMapInfo<llvm::Value*> > >&, bool) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2723:64
># #14 0x0000000002585114 computeLiveInValues(llvm::DominatorTree&, llvm::Function&, (anonymous namespace)::GCPtrLivenessData&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2807:37
># #15 0x000000000257cc97 findLiveReferences(llvm::Function&, llvm::DominatorTree&, llvm::ArrayRef<llvm::CallBase*>, llvm::MutableArrayRef<(anonymous namespace)::PartiallyConstructedSafepointRecord>) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:3
># #16 0x000000000257cc97 insertParsePoints(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::SmallVectorImpl<llvm::CallBase*>&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:2287:3
># #17 0x000000000257b414 llvm::RewriteStatepointsForGC::runOnFunction(llvm::Function&, llvm::DominatorTree&, llvm::TargetTransformInfo&, llvm::TargetLibraryInfo const&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:17
># #18 0x00000000025830f8 (anonymous namespace)::RewriteStatepointsForGCLegacyPass::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp:0:23
># #19 0x0000000001fa82c8 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:0:27
># #20 0x0000000001fa82c8 llvm::legacy::PassManagerImpl::run(llvm::Module&) <...>/llvm-10-src/llvm/lib/IR/LegacyPassManager.cpp:1694:44
># #21 0x000000000146ad38 main <...>/llvm-10-src/llvm/tools/opt/opt.cpp:0:12
># #22 0x00007f555bcbad0a __libc_start_main ./csu/../csu/libc-start.c:308:16
># #23 0x0000000001454ffa _start (<...>/llvm-10/bin/opt+0x1454ffa)
>> <...>/llvm-10/bin/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f55o.bc f55.bc 
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f53.o f53o.bc 
[<...>/a/build-linux-aarch64-llvm/hello:1843814]       (llvm):     803.11 ms,  4.60 GB
[<...>/a/build-linux-aarch64-llvm/hello:1843814]      compile:  23,226.05 ms,  4.60 GB
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f54.o f54o.bc 
4 fatal errors detected:
Fatal error:org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.WeakIdentityHashMap$EntrySet.contains(java.lang.Object) (<...>/a/build-linux-aarch64-llvm/SVM-1612452843014/llvm/f41.bc): 134
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f41o.bc f41.bc
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Fatal error:org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.WeakIdentityHashMap.containsKey(java.lang.Object) (<...>/a/build-linux-aarch64-llvm/SVM-1612452843014/llvm/f46.bc): 134
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f46o.bc f46.bc
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Fatal error:org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.WeakIdentityHashMap$EntrySet.size() (<...>/a/build-linux-aarch64-llvm/SVM-1612452843014/llvm/f43.bc): 134
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f43o.bc f43.bc
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Fatal error:org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.WeakIdentityHashMap.expungeStaleEntries() (<...>/a/build-linux-aarch64-llvm/SVM-1612452843014/llvm/f48.bc): 134
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f48o.bc f48.bc
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
>> <...>/llvm-10/bin/llc -relocation-model=pic --trap-unreachable -march=aarch64 --frame-pointer=all --aarch64-frame-record-on-top -O2 -filetype=obj -o f55.o f55o.bc 
Error: Image build request failed with exit status 1

Simple Java application

The Java application being built is the following:

public class Hello {
    public static void main(String[] args) {
        String str = "Native Image is awesome";
        String reversed = reverseString(str);
        System.out.println("The reversed string is: " + reversed);
    }

    public static String reverseString(String str) {
        if (str.isEmpty())
            return str;
        return reverseString(str.substring(1)) + str.charAt(0);
    }
}

LLVM-IR causing the assertion failure

Disassembling f41.bc using llvm-dis produces the following contents:

; ModuleID = 'build-linux-aarch64-llvm/SVM-1612452843014/llvm/f41.bc'
source_filename = "com.oracle.svm.core.WeakIdentityHashMap$EntrySet.contains"

@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#0" = external addrspace(1) global i8 addrspace(2)*
@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#1" = external addrspace(1) global i8 addrspace(1)*
@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#2" = external addrspace(1) global i8 addrspace(1)*
@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#3" = external addrspace(1) global i8 addrspace(1)*
@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#4" = external addrspace(1) global i8 addrspace(1)*
@"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#5" = external addrspace(1) global i8 addrspace(2)*

; Function Attrs: noinline noredzone
define i32 @"WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126"(i64 %0, i64 %1, i8 addrspace(1)* %2, i8 addrspace(1)* %3) #0 gc "compressed-pointer" personality i32 (i32, i32, i64, i64, i64)* @IsolateEnterStub_LLVMExceptionUnwind_personality_6715a663d94f995518d057e92a9c4ae4293ffca2_f13871289d9839292ba0106f623976b447e2efd4 {
B0:
  call void (i64, i32, ...) @llvm.experimental.stackmap(i64 21834, i32 0)
  %4 = inttoptr i64 %0 to i8*
  %5 = getelementptr i8, i8* %4, i64 8
  %6 = bitcast i8* %5 to i64*
  %7 = load i64, i64* %6, align 4
  %8 = call i64 @llvm.read_register.i64(metadata !0)
  %9 = icmp ult i64 %7, %8
  br i1 %9, label %B1, label %B187, !prof !1

B1:                                               ; preds = %B0
  %10 = icmp eq i8 addrspace(1)* %3, null
  br i1 %10, label %B2, label %B3, !prof !2

B2:                                               ; preds = %B1
  br label %B184

B3:                                               ; preds = %B1
  %11 = getelementptr i8, i8 addrspace(1)* %3, i64 0
  %12 = bitcast i8 addrspace(1)* %11 to i64 addrspace(1)*
  %13 = load i64, i64 addrspace(1)* %12, align 4
  %14 = and i64 %13, -8
  %15 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %14)
  %16 = call i8 addrspace(1)* @__llvm_uncompress_nonNull_0(i8 addrspace(2)* %15, i64 %1)
  %17 = getelementptr i8, i8 addrspace(1)* %16, i64 18
  %18 = bitcast i8 addrspace(1)* %17 to i16 addrspace(1)*
  %19 = load i16, i16 addrspace(1)* %18, align 2
  %20 = zext i16 %19 to i32
  %21 = icmp eq i32 %20, 437
  br i1 %21, label %B4, label %B183, !prof !2

B4:                                               ; preds = %B3
  %22 = getelementptr i8, i8 addrspace(1)* %2, i64 16
  %23 = bitcast i8 addrspace(1)* %22 to i8 addrspace(2)* addrspace(1)*
  %24 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %23, align 8
  %25 = bitcast i8 addrspace(1)* %11 to i64 addrspace(1)*
  %26 = load i64, i64 addrspace(1)* %25, align 4
  %27 = and i64 %26, -8
  %28 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %27)
  %29 = call i8 addrspace(1)* @__llvm_uncompress_nonNull_0(i8 addrspace(2)* %28, i64 %1)
  %30 = getelementptr i8, i8 addrspace(1)* %29, i64 224
  %31 = bitcast i8 addrspace(1)* %30 to i64 addrspace(1)*
  %32 = load i64, i64 addrspace(1)* %31, align 4
  %33 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %24, i64 %1)
  %34 = inttoptr i64 %32 to i8 addrspace(1)* (i64, i64, i8 addrspace(1)*)*
  %35 = call i8 addrspace(1)* %34(i64 %0, i64 %1, i8 addrspace(1)* %3) #4
  br label %B5

B5:                                               ; preds = %B4
  %36 = icmp eq i8 addrspace(2)* %24, null
  br i1 %36, label %B6, label %B7, !prof !3

B6:                                               ; preds = %B5
  call void @ImplicitExceptions_throwNewNullPointerException_4005c48f410ebeb06be6e6d0cbe0438520f574fa(i64 %0, i64 %1) #5
  unreachable

B7:                                               ; preds = %B5
  %37 = getelementptr i8, i8 addrspace(1)* %33, i64 40
  %38 = bitcast i8 addrspace(1)* %37 to i8 addrspace(2)* addrspace(1)*
  %39 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %38, align 8
  %40 = icmp eq i8 addrspace(1)* %35, null
  br i1 %40, label %B8, label %B9, !prof !2

B8:                                               ; preds = %B7
  %41 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#0", align 8
  %42 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %41, i64 %1)
  br label %B10

B9:                                               ; preds = %B7
  br label %B10

B10:                                              ; preds = %B9, %B8
  %43 = phi i8 addrspace(1)* [ %42, %B8 ], [ %35, %B9 ]
  %44 = getelementptr i8, i8 addrspace(1)* %43, i64 8
  %45 = bitcast i8 addrspace(1)* %44 to i32 addrspace(1)*
  %46 = load i32, i32 addrspace(1)* %45, align 4
  %47 = icmp eq i32 %46, 0
  br i1 %47, label %B11, label %B12, !prof !4

B11:                                              ; preds = %B10
  %48 = call i32 @IdentityHashCodeSupport_generateIdentityHashCode_93039d910569011a3e667fd04e28ea566e47783c(i64 %0, i64 %1, i8 addrspace(1)* %43) #6
  br label %B13

B12:                                              ; preds = %B10
  br label %B13

B13:                                              ; preds = %B12, %B11
  %49 = phi i32 [ %46, %B12 ], [ %48, %B11 ]
  %50 = lshr i32 %49, 20
  %51 = lshr i32 %49, 12
  %52 = xor i32 %50, %51
  %53 = xor i32 %52, %49
  %54 = lshr i32 %53, 7
  %55 = xor i32 %53, %54
  %56 = lshr i32 %53, 4
  %57 = xor i32 %55, %56
  %58 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %39, i64 %1)
  %59 = getelementptr i8, i8 addrspace(1)* %58, i64 24
  %60 = getelementptr i8, i8 addrspace(1)* %33, i64 32
  %61 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* null, i64 %1)
  br label %B14

B14:                                              ; preds = %B161, %B160, %B13
  %62 = icmp eq i8 addrspace(2)* %39, null
  br i1 %62, label %B15, label %B16, !prof !3

B15:                                              ; preds = %B14
  call void @ImplicitExceptions_throwNewNullPointerException_4005c48f410ebeb06be6e6d0cbe0438520f574fa(i64 %0, i64 %1) #7
  unreachable

B16:                                              ; preds = %B14
  fence seq_cst
  %63 = bitcast i8 addrspace(1)* %59 to i8 addrspace(2)* addrspace(1)*
  %64 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %63, align 8
  fence seq_cst
  %65 = icmp eq i8 addrspace(2)* %64, null
  br i1 %65, label %B17, label %B18, !prof !2

B17:                                              ; preds = %B16
  br label %B66

B18:                                              ; preds = %B16
  %66 = getelementptr i8, i8 addrspace(1)* %58, i64 16
  %67 = bitcast i8 addrspace(1)* %66 to i8 addrspace(2)* addrspace(1)*
  %68 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %67, align 8
  %69 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %68, i64 %1)
  %70 = icmp eq i8 addrspace(2)* %68, null
  br i1 %70, label %B19, label %B20, !prof !3

B19:                                              ; preds = %B18
  call void @ImplicitExceptions_throwNewNullPointerException_4005c48f410ebeb06be6e6d0cbe0438520f574fa(i64 %0, i64 %1) #8
  unreachable

B20:                                              ; preds = %B18
  %71 = getelementptr i8, i8 addrspace(1)* %69, i64 16
  %72 = bitcast i8 addrspace(1)* %71 to i8 addrspace(2)* addrspace(1)*
  %73 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %72, align 8
  %74 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#1" to i8 addrspace(2)* addrspace(1)*), align 8
  %75 = inttoptr i64 %0 to i8*
  %76 = getelementptr i8, i8* %75, i64 64
  %77 = icmp eq i8 addrspace(2)* %73, null
  br i1 %77, label %B21, label %B22, !prof !5

B21:                                              ; preds = %B20
  %78 = call i8 addrspace(2)* @__llvm_load_compressed_object_from_untracked_pointer(i8* %76)
  br label %B25

B22:                                              ; preds = %B20
  %79 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %73, i64 %1)
  %80 = getelementptr i8, i8 addrspace(1)* %79, i64 0
  %81 = bitcast i8 addrspace(1)* %80 to i64 addrspace(1)*
  %82 = load i64, i64 addrspace(1)* %81, align 4
  %83 = and i64 %82, -8
  %84 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %83)
  %85 = icmp eq i8 addrspace(2)* %84, %74
  br i1 %85, label %B23, label %B36, !prof !5

B23:                                              ; preds = %B22
  %86 = getelementptr i8, i8 addrspace(1)* %79, i64 16
  %87 = bitcast i8 addrspace(1)* %86 to i64 addrspace(1)*
  %88 = load i64, i64 addrspace(1)* %87, align 4
  %89 = icmp eq i64 %0, %88
  br i1 %89, label %B24, label %B35, !prof !5

B24:                                              ; preds = %B23
  %90 = getelementptr i8, i8 addrspace(1)* %79, i64 32
  %91 = bitcast i8 addrspace(1)* %90 to i8 addrspace(2)* addrspace(1)*
  %92 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %91, align 8
  br label %B25

B25:                                              ; preds = %B24, %B21
  %93 = phi i8 addrspace(2)* [ %92, %B24 ], [ %78, %B21 ]
  %94 = icmp eq i8 addrspace(2)* %93, null
  br i1 %94, label %B26, label %B27, !prof !4

B26:                                              ; preds = %B25
  br label %B37

B27:                                              ; preds = %B25
  %95 = bitcast i8 addrspace(1)* %71 to i8 addrspace(2)* addrspace(1)*
  %96 = cmpxchg i8 addrspace(2)* addrspace(1)* %95, i8 addrspace(2)* %73, i8 addrspace(2)* %93 monotonic monotonic
  %97 = extractvalue { i8 addrspace(2)*, i1 } %96, 1
  %98 = select i1 %97, i32 1, i32 0
  %99 = getelementptr i8, i8 addrspace(1)* %69, i64 0
  %100 = bitcast i8 addrspace(1)* %99 to i64 addrspace(1)*
  %101 = load i64, i64 addrspace(1)* %100, align 4
  %102 = and i64 %101, 2
  %103 = icmp eq i64 %102, 0
  br i1 %103, label %B28, label %B29, !prof !6

B28:                                              ; preds = %B27
  br label %B32

B29:                                              ; preds = %B27
  %104 = ptrtoint i8 addrspace(1)* %69 to i64
  %105 = and i64 %101, 1
  %106 = icmp eq i64 %105, 0
  br i1 %106, label %B30, label %B31, !prof !5

B30:                                              ; preds = %B29
  %107 = and i64 %104, -1048576
  %108 = add i64 %107, 4136
  %109 = sub i64 %104, %108
  %110 = lshr i64 %109, 9
  %111 = add i64 %110, 40
  %112 = inttoptr i64 %107 to i8*
  %113 = getelementptr i8, i8* %112, i64 %111
  store i8 0, i8* %113, align 1
  br label %B32

B31:                                              ; preds = %B29
  %114 = inttoptr i64 %104 to i8*
  %115 = getelementptr i8, i8* %114, i64 -8
  store i8 0, i8* %115, align 1
  br label %B32

B32:                                              ; preds = %B31, %B30, %B28
  %116 = icmp eq i32 %98, 0
  br i1 %116, label %B33, label %B34, !prof !4

B33:                                              ; preds = %B32
  br label %B37

B34:                                              ; preds = %B32
  br label %B38

B35:                                              ; preds = %B23
  br label %B37

B36:                                              ; preds = %B22
  br label %B37

B37:                                              ; preds = %B36, %B35, %B33, %B26
  call void @MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5(i64 %0, i64 %1, i8 addrspace(1)* %69) #9
  br label %B38

B38:                                              ; preds = %B37, %B34
  fence seq_cst
  %117 = bitcast i8 addrspace(1)* %59 to i8 addrspace(2)* addrspace(1)*
  %118 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %117, align 8
  fence seq_cst
  %119 = icmp eq i8 addrspace(2)* %118, null
  br i1 %119, label %B39, label %B40, !prof !2

B39:                                              ; preds = %B38
  br label %B51

B40:                                              ; preds = %B38
  fence seq_cst
  %120 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %118, i64 %1)
  %121 = getelementptr i8, i8 addrspace(1)* %120, i64 32
  %122 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#2" to i8 addrspace(2)* addrspace(1)*), align 8
  %123 = bitcast i8 addrspace(1)* %121 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* %122, i8 addrspace(2)* addrspace(1)* %123, align 8
  fence seq_cst
  %124 = getelementptr i8, i8 addrspace(1)* %120, i64 0
  %125 = bitcast i8 addrspace(1)* %124 to i64 addrspace(1)*
  %126 = load i64, i64 addrspace(1)* %125, align 4
  %127 = and i64 %126, 2
  %128 = icmp eq i64 %127, 0
  br i1 %128, label %B41, label %B42, !prof !6

B41:                                              ; preds = %B40
  br label %B45

B42:                                              ; preds = %B40
  %129 = ptrtoint i8 addrspace(1)* %120 to i64
  %130 = and i64 %126, 1
  %131 = icmp eq i64 %130, 0
  br i1 %131, label %B43, label %B44, !prof !5

B43:                                              ; preds = %B42
  %132 = and i64 %129, -1048576
  %133 = add i64 %132, 4136
  %134 = sub i64 %129, %133
  %135 = lshr i64 %134, 9
  %136 = add i64 %135, 40
  %137 = inttoptr i64 %132 to i8*
  %138 = getelementptr i8, i8* %137, i64 %136
  store i8 0, i8* %138, align 1
  br label %B45

B44:                                              ; preds = %B42
  %139 = inttoptr i64 %129 to i8*
  %140 = getelementptr i8, i8* %139, i64 -8
  store i8 0, i8* %140, align 1
  br label %B45

B45:                                              ; preds = %B44, %B43, %B41
  fence seq_cst
  %141 = getelementptr i8, i8 addrspace(1)* %120, i64 40
  %142 = bitcast i8 addrspace(1)* %141 to i8 addrspace(2)* addrspace(1)*
  %143 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %142, align 8
  fence seq_cst
  fence seq_cst
  %144 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %143, i64 %1)
  %145 = icmp eq i8 addrspace(2)* %118, %143
  %146 = select i1 %145, i8 addrspace(1)* %61, i8 addrspace(1)* %144
  %147 = call i8 addrspace(2)* @__llvm_compress_0(i8 addrspace(1)* %146, i64 %1)
  %148 = bitcast i8 addrspace(1)* %59 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* %147, i8 addrspace(2)* addrspace(1)* %148, align 8
  fence seq_cst
  %149 = getelementptr i8, i8 addrspace(1)* %58, i64 0
  %150 = bitcast i8 addrspace(1)* %149 to i64 addrspace(1)*
  %151 = load i64, i64 addrspace(1)* %150, align 4
  %152 = and i64 %151, 2
  %153 = icmp eq i64 %152, 0
  br i1 %153, label %B46, label %B47, !prof !6

B46:                                              ; preds = %B45
  br label %B50

B47:                                              ; preds = %B45
  %154 = ptrtoint i8 addrspace(1)* %58 to i64
  %155 = and i64 %151, 1
  %156 = icmp eq i64 %155, 0
  br i1 %156, label %B48, label %B49, !prof !5

B48:                                              ; preds = %B47
  %157 = and i64 %154, -1048576
  %158 = add i64 %157, 4136
  %159 = sub i64 %154, %158
  %160 = lshr i64 %159, 9
  %161 = add i64 %160, 40
  %162 = inttoptr i64 %157 to i8*
  %163 = getelementptr i8, i8* %162, i64 %161
  store i8 0, i8* %163, align 1
  br label %B50

B49:                                              ; preds = %B47
  %164 = inttoptr i64 %154 to i8*
  %165 = getelementptr i8, i8* %164, i64 -8
  store i8 0, i8* %165, align 1
  br label %B50

B50:                                              ; preds = %B49, %B48, %B46
  fence seq_cst
  %166 = bitcast i8 addrspace(1)* %141 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* %118, i8 addrspace(2)* addrspace(1)* %166, align 8
  fence seq_cst
  %167 = getelementptr i8, i8 addrspace(1)* %58, i64 32
  %168 = bitcast i8 addrspace(1)* %167 to i64 addrspace(1)*
  %169 = load i64, i64 addrspace(1)* %168, align 4
  %170 = add i64 %169, -1
  %171 = bitcast i8 addrspace(1)* %167 to i64 addrspace(1)*
  store i64 %170, i64 addrspace(1)* %171, align 4
  br label %B51

B51:                                              ; preds = %B50, %B39
  %172 = phi i8 addrspace(1)* [ %61, %B39 ], [ %120, %B50 ]
  %173 = bitcast i8 addrspace(1)* %71 to i8 addrspace(2)* addrspace(1)*
  %174 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %173, align 8
  %175 = icmp eq i8 addrspace(2)* %174, null
  br i1 %175, label %B52, label %B53, !prof !2

B52:                                              ; preds = %B51
  br label %B63

B53:                                              ; preds = %B51
  %176 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %174, i64 %1)
  %177 = getelementptr i8, i8 addrspace(1)* %176, i64 0
  %178 = bitcast i8 addrspace(1)* %177 to i64 addrspace(1)*
  %179 = load i64, i64 addrspace(1)* %178, align 4
  %180 = and i64 %179, -8
  %181 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %180)
  %182 = icmp eq i8 addrspace(2)* %181, %74
  br i1 %182, label %B54, label %B62, !prof !5

B54:                                              ; preds = %B53
  %183 = getelementptr i8, i8 addrspace(1)* %176, i64 24
  %184 = bitcast i8 addrspace(1)* %183 to i8 addrspace(2)* addrspace(1)*
  %185 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %184, align 8
  %186 = bitcast i8 addrspace(1)* %71 to i8 addrspace(2)* addrspace(1)*
  %187 = cmpxchg i8 addrspace(2)* addrspace(1)* %186, i8 addrspace(2)* %174, i8 addrspace(2)* %185 monotonic monotonic
  %188 = extractvalue { i8 addrspace(2)*, i1 } %187, 1
  %189 = select i1 %188, i32 1, i32 0
  %190 = getelementptr i8, i8 addrspace(1)* %69, i64 0
  %191 = bitcast i8 addrspace(1)* %190 to i64 addrspace(1)*
  %192 = load i64, i64 addrspace(1)* %191, align 4
  %193 = and i64 %192, 2
  %194 = icmp eq i64 %193, 0
  br i1 %194, label %B55, label %B56, !prof !6

B55:                                              ; preds = %B54
  br label %B59

B56:                                              ; preds = %B54
  %195 = ptrtoint i8 addrspace(1)* %69 to i64
  %196 = and i64 %192, 1
  %197 = icmp eq i64 %196, 0
  br i1 %197, label %B57, label %B58, !prof !5

B57:                                              ; preds = %B56
  %198 = and i64 %195, -1048576
  %199 = add i64 %198, 4136
  %200 = sub i64 %195, %199
  %201 = lshr i64 %200, 9
  %202 = add i64 %201, 40
  %203 = inttoptr i64 %198 to i8*
  %204 = getelementptr i8, i8* %203, i64 %202
  store i8 0, i8* %204, align 1
  br label %B59

B58:                                              ; preds = %B56
  %205 = inttoptr i64 %195 to i8*
  %206 = getelementptr i8, i8* %205, i64 -8
  store i8 0, i8* %206, align 1
  br label %B59

B59:                                              ; preds = %B58, %B57, %B55
  %207 = icmp eq i32 %189, 0
  br i1 %207, label %B60, label %B61, !prof !4

B60:                                              ; preds = %B59
  br label %B63

B61:                                              ; preds = %B59
  br label %B64

B62:                                              ; preds = %B53
  br label %B63

B63:                                              ; preds = %B62, %B60, %B52
  call void @MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3(i64 %0, i64 %1, i8 addrspace(1)* %69) #10
  br label %B64

B64:                                              ; preds = %B63, %B61
  %208 = icmp eq i8 addrspace(1)* %172, null
  br i1 %208, label %B65, label %B104, !prof !2

B65:                                              ; preds = %B64
  br label %B66

B66:                                              ; preds = %B65, %B17
  br label %B67

B67:                                              ; preds = %B66
  %209 = bitcast i8 addrspace(1)* %60 to i8 addrspace(2)* addrspace(1)*
  %210 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %209, align 8
  %211 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %210, i64 %1)
  %212 = icmp eq i8 addrspace(2)* %210, null
  br i1 %212, label %B68, label %B69, !prof !3

B68:                                              ; preds = %B67
  call void @ImplicitExceptions_throwNewNullPointerException_4005c48f410ebeb06be6e6d0cbe0438520f574fa(i64 %0, i64 %1) #11
  unreachable

B69:                                              ; preds = %B67
  %213 = getelementptr i8, i8 addrspace(1)* %211, i64 12
  %214 = bitcast i8 addrspace(1)* %213 to i32 addrspace(1)*
  %215 = load i32, i32 addrspace(1)* %214, align 4
  %216 = add i32 %215, -1
  %217 = and i32 %57, %216
  %218 = icmp ult i32 %217, %215
  br i1 %218, label %B70, label %B103, !prof !1

B70:                                              ; preds = %B69
  %219 = zext i32 %217 to i64
  %220 = shl i64 %219, 3
  %221 = add i64 %220, 16
  %222 = getelementptr i8, i8 addrspace(1)* %211, i64 %221
  %223 = bitcast i8 addrspace(1)* %222 to i8 addrspace(2)* addrspace(1)*
  %224 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %223, align 8
  %225 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %224, i64 %1)
  br label %B71

B71:                                              ; preds = %B102, %B101, %B99, %B98, %B70
  %226 = phi i8 addrspace(1)* [ %225, %B70 ], [ %298, %B98 ], [ %298, %B99 ], [ %308, %B101 ], [ %308, %B102 ]
  %227 = getelementptr i8, i8 addrspace(1)* %226, i64 16
  %228 = icmp eq i8 addrspace(1)* %226, null
  br i1 %228, label %B72, label %B73, !prof !2

B72:                                              ; preds = %B71
  br label %B76

B73:                                              ; preds = %B71
  %229 = getelementptr i8, i8 addrspace(1)* %226, i64 64
  %230 = bitcast i8 addrspace(1)* %229 to i32 addrspace(1)*
  %231 = load i32, i32 addrspace(1)* %230, align 4
  %232 = getelementptr i8, i8 addrspace(1)* %226, i64 56
  %233 = icmp eq i32 %57, %231
  br i1 %233, label %B74, label %B100, !prof !2

B74:                                              ; preds = %B73
  %234 = bitcast i8 addrspace(1)* %227 to i8 addrspace(2)* addrspace(1)*
  %235 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %234, align 8
  fence seq_cst
  %236 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %235, i64 %1)
  %237 = icmp eq i8 addrspace(1)* %43, %236
  br i1 %237, label %B75, label %B97, !prof !2

B75:                                              ; preds = %B74
  br label %B76

B76:                                              ; preds = %B75, %B72
  %238 = icmp eq i8 addrspace(1)* %226, null
  br i1 %238, label %B77, label %B80, !prof !2

B77:                                              ; preds = %B76
  %239 = inttoptr i64 %0 to i8*
  %240 = getelementptr i8, i8* %239, i32 16
  %241 = bitcast i8* %240 to i32*
  %242 = load i32, i32* %241, align 4
  %243 = sub i32 %242, 1
  %244 = bitcast i8* %240 to i32*
  store i32 %243, i32* %244, align 4
  %245 = icmp sle i32 %243, 0
  br i1 %245, label %B78, label %B79, !prof !7

B78:                                              ; preds = %B77
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #12
  ret i32 0

B79:                                              ; preds = %B77
  ret i32 0

B80:                                              ; preds = %B76
  %246 = bitcast i8 addrspace(1)* %227 to i8 addrspace(2)* addrspace(1)*
  %247 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %246, align 8
  fence seq_cst
  %248 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#3" to i8 addrspace(2)* addrspace(1)*), align 8
  %249 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %247, i64 %1)
  %250 = icmp eq i8 addrspace(2)* %247, %248
  %251 = select i1 %250, i8 addrspace(1)* %61, i8 addrspace(1)* %249
  %252 = inttoptr i64 %32 to i8 addrspace(1)* (i64, i64, i8 addrspace(1)*)*
  %253 = call i8 addrspace(1)* %252(i64 %0, i64 %1, i8 addrspace(1)* %3) #13
  br label %B81

B81:                                              ; preds = %B80
  %254 = icmp eq i8 addrspace(1)* %253, %251
  br i1 %254, label %B82, label %B94, !prof !2

B82:                                              ; preds = %B81
  %255 = getelementptr i8, i8 addrspace(1)* %226, i64 48
  %256 = bitcast i8 addrspace(1)* %255 to i8 addrspace(2)* addrspace(1)*
  %257 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %256, align 8
  %258 = getelementptr i8, i8 addrspace(1)* %29, i64 232
  %259 = bitcast i8 addrspace(1)* %258 to i64 addrspace(1)*
  %260 = load i64, i64 addrspace(1)* %259, align 4
  %261 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %257, i64 %1)
  %262 = inttoptr i64 %260 to i8 addrspace(1)* (i64, i64, i8 addrspace(1)*)*
  %263 = call i8 addrspace(1)* %262(i64 %0, i64 %1, i8 addrspace(1)* %3) #14
  br label %B83

B83:                                              ; preds = %B82
  %264 = icmp eq i8 addrspace(1)* %263, %261
  br i1 %264, label %B84, label %B87, !prof !2

B84:                                              ; preds = %B83
  %265 = inttoptr i64 %0 to i8*
  %266 = getelementptr i8, i8* %265, i32 16
  %267 = bitcast i8* %266 to i32*
  %268 = load i32, i32* %267, align 4
  %269 = sub i32 %268, 1
  %270 = bitcast i8* %266 to i32*
  store i32 %269, i32* %270, align 4
  %271 = icmp sle i32 %269, 0
  br i1 %271, label %B85, label %B86, !prof !7

B85:                                              ; preds = %B84
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #15
  ret i32 1

B86:                                              ; preds = %B84
  ret i32 1

B87:                                              ; preds = %B83
  %272 = icmp eq i8 addrspace(2)* %257, null
  br i1 %272, label %B88, label %B91, !prof !2

B88:                                              ; preds = %B87
  %273 = inttoptr i64 %0 to i8*
  %274 = getelementptr i8, i8* %273, i32 16
  %275 = bitcast i8* %274 to i32*
  %276 = load i32, i32* %275, align 4
  %277 = sub i32 %276, 1
  %278 = bitcast i8* %274 to i32*
  store i32 %277, i32* %278, align 4
  %279 = icmp sle i32 %277, 0
  br i1 %279, label %B89, label %B90, !prof !7

B89:                                              ; preds = %B88
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #16
  ret i32 0

B90:                                              ; preds = %B88
  ret i32 0

B91:                                              ; preds = %B87
  %280 = icmp eq i8 addrspace(1)* %263, %261
  %281 = select i1 %280, i32 1, i32 0
  %282 = inttoptr i64 %0 to i8*
  %283 = getelementptr i8, i8* %282, i32 16
  %284 = bitcast i8* %283 to i32*
  %285 = load i32, i32* %284, align 4
  %286 = sub i32 %285, 1
  %287 = bitcast i8* %283 to i32*
  store i32 %286, i32* %287, align 4
  %288 = icmp sle i32 %286, 0
  br i1 %288, label %B92, label %B93, !prof !7

B92:                                              ; preds = %B91
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #17
  ret i32 %281

B93:                                              ; preds = %B91
  ret i32 %281

B94:                                              ; preds = %B81
  %289 = inttoptr i64 %0 to i8*
  %290 = getelementptr i8, i8* %289, i32 16
  %291 = bitcast i8* %290 to i32*
  %292 = load i32, i32* %291, align 4
  %293 = sub i32 %292, 1
  %294 = bitcast i8* %290 to i32*
  store i32 %293, i32* %294, align 4
  %295 = icmp sle i32 %293, 0
  br i1 %295, label %B95, label %B96, !prof !7

B95:                                              ; preds = %B94
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #18
  ret i32 0

B96:                                              ; preds = %B94
  ret i32 0

B97:                                              ; preds = %B74
  %296 = bitcast i8 addrspace(1)* %232 to i8 addrspace(2)* addrspace(1)*
  %297 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %296, align 8
  %298 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %297, i64 %1)
  %299 = inttoptr i64 %0 to i8*
  %300 = getelementptr i8, i8* %299, i32 16
  %301 = bitcast i8* %300 to i32*
  %302 = load i32, i32* %301, align 4
  %303 = sub i32 %302, 1
  %304 = bitcast i8* %300 to i32*
  store i32 %303, i32* %304, align 4
  %305 = icmp sle i32 %303, 0
  br i1 %305, label %B98, label %B99, !prof !7

B98:                                              ; preds = %B97
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #19
  br label %B71

B99:                                              ; preds = %B97
  br label %B71

B100:                                             ; preds = %B73
  %306 = bitcast i8 addrspace(1)* %232 to i8 addrspace(2)* addrspace(1)*
  %307 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %306, align 8
  %308 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %307, i64 %1)
  %309 = inttoptr i64 %0 to i8*
  %310 = getelementptr i8, i8* %309, i32 16
  %311 = bitcast i8* %310 to i32*
  %312 = load i32, i32* %311, align 4
  %313 = sub i32 %312, 1
  %314 = bitcast i8* %310 to i32*
  store i32 %313, i32* %314, align 4
  %315 = icmp sle i32 %313, 0
  br i1 %315, label %B101, label %B102, !prof !7

B101:                                             ; preds = %B100
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #20
  br label %B71

B102:                                             ; preds = %B100
  br label %B71

B103:                                             ; preds = %B69
  call void @ImplicitExceptions_throwNewOutOfBoundsExceptionWithArgs_f062b0eae5d66f6e77fb3d149ae2260d4a15d17c(i64 %0, i64 %1, i32 %217, i32 %215) #21
  unreachable

B104:                                             ; preds = %B64
  %316 = getelementptr i8, i8 addrspace(1)* %58, i64 40
  %317 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %318 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %317, align 8
  %319 = icmp eq i8 addrspace(2)* %318, null
  br i1 %319, label %B105, label %B106, !prof !5

B105:                                             ; preds = %B104
  %320 = call i8 addrspace(2)* @__llvm_load_compressed_object_from_untracked_pointer(i8* %76)
  br label %B109

B106:                                             ; preds = %B104
  %321 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %318, i64 %1)
  %322 = getelementptr i8, i8 addrspace(1)* %321, i64 0
  %323 = bitcast i8 addrspace(1)* %322 to i64 addrspace(1)*
  %324 = load i64, i64 addrspace(1)* %323, align 4
  %325 = and i64 %324, -8
  %326 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %325)
  %327 = icmp eq i8 addrspace(2)* %326, %74
  br i1 %327, label %B107, label %B120, !prof !5

B107:                                             ; preds = %B106
  %328 = getelementptr i8, i8 addrspace(1)* %321, i64 16
  %329 = bitcast i8 addrspace(1)* %328 to i64 addrspace(1)*
  %330 = load i64, i64 addrspace(1)* %329, align 4
  %331 = icmp eq i64 %0, %330
  br i1 %331, label %B108, label %B119, !prof !5

B108:                                             ; preds = %B107
  %332 = getelementptr i8, i8 addrspace(1)* %321, i64 32
  %333 = bitcast i8 addrspace(1)* %332 to i8 addrspace(2)* addrspace(1)*
  %334 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %333, align 8
  br label %B109

B109:                                             ; preds = %B108, %B105
  %335 = phi i8 addrspace(2)* [ %334, %B108 ], [ %320, %B105 ]
  %336 = icmp eq i8 addrspace(2)* %335, null
  br i1 %336, label %B110, label %B111, !prof !4

B110:                                             ; preds = %B109
  br label %B121

B111:                                             ; preds = %B109
  %337 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %338 = cmpxchg i8 addrspace(2)* addrspace(1)* %337, i8 addrspace(2)* %318, i8 addrspace(2)* %335 monotonic monotonic
  %339 = extractvalue { i8 addrspace(2)*, i1 } %338, 1
  %340 = select i1 %339, i32 1, i32 0
  %341 = getelementptr i8, i8 addrspace(1)* %58, i64 0
  %342 = bitcast i8 addrspace(1)* %341 to i64 addrspace(1)*
  %343 = load i64, i64 addrspace(1)* %342, align 4
  %344 = and i64 %343, 2
  %345 = icmp eq i64 %344, 0
  br i1 %345, label %B112, label %B113, !prof !6

B112:                                             ; preds = %B111
  br label %B116

B113:                                             ; preds = %B111
  %346 = ptrtoint i8 addrspace(1)* %58 to i64
  %347 = and i64 %343, 1
  %348 = icmp eq i64 %347, 0
  br i1 %348, label %B114, label %B115, !prof !5

B114:                                             ; preds = %B113
  %349 = and i64 %346, -1048576
  %350 = add i64 %349, 4136
  %351 = sub i64 %346, %350
  %352 = lshr i64 %351, 9
  %353 = add i64 %352, 40
  %354 = inttoptr i64 %349 to i8*
  %355 = getelementptr i8, i8* %354, i64 %353
  store i8 0, i8* %355, align 1
  br label %B116

B115:                                             ; preds = %B113
  %356 = inttoptr i64 %346 to i8*
  %357 = getelementptr i8, i8* %356, i64 -8
  store i8 0, i8* %357, align 1
  br label %B116

B116:                                             ; preds = %B115, %B114, %B112
  %358 = icmp eq i32 %340, 0
  br i1 %358, label %B117, label %B118, !prof !4

B117:                                             ; preds = %B116
  br label %B121

B118:                                             ; preds = %B116
  br label %B122

B119:                                             ; preds = %B107
  br label %B121

B120:                                             ; preds = %B106
  br label %B121

B121:                                             ; preds = %B120, %B119, %B117, %B110
  call void @MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5(i64 %0, i64 %1, i8 addrspace(1)* %58) #22
  br label %B122

B122:                                             ; preds = %B121, %B118
  %359 = getelementptr i8, i8 addrspace(1)* %172, i64 0
  %360 = bitcast i8 addrspace(1)* %359 to i64 addrspace(1)*
  %361 = load i64, i64 addrspace(1)* %360, align 4
  %362 = and i64 %361, -8
  %363 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %362)
  %364 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* bitcast (i8 addrspace(1)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#4" to i8 addrspace(2)* addrspace(1)*), align 8
  %365 = icmp eq i8 addrspace(2)* %363, %364
  br i1 %365, label %B123, label %B167, !prof !8

B123:                                             ; preds = %B122
  %366 = bitcast i8 addrspace(1)* %60 to i8 addrspace(2)* addrspace(1)*
  %367 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %366, align 8
  %368 = icmp eq i8 addrspace(2)* %367, null
  br i1 %368, label %B124, label %B126, !prof !9

B124:                                             ; preds = %B123
  %369 = call i8 addrspace(1)* @ImplicitExceptions_createNullPointerException_73d3fd94610b144dbff38af3343b54950172c1fb(i64 %0, i64 %1) #23
  br label %B125

B125:                                             ; preds = %B124
  br label %B169

B126:                                             ; preds = %B123
  %370 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %367, i64 %1)
  %371 = getelementptr i8, i8 addrspace(1)* %370, i64 12
  %372 = bitcast i8 addrspace(1)* %371 to i32 addrspace(1)*
  %373 = load i32, i32 addrspace(1)* %372, align 4
  %374 = getelementptr i8, i8 addrspace(1)* %172, i64 64
  %375 = bitcast i8 addrspace(1)* %374 to i32 addrspace(1)*
  %376 = load i32, i32 addrspace(1)* %375, align 4
  %377 = add i32 %373, -1
  %378 = and i32 %377, %376
  %379 = icmp ult i32 %378, %373
  br i1 %379, label %B127, label %B165, !prof !8

B127:                                             ; preds = %B126
  %380 = zext i32 %378 to i64
  %381 = shl i64 %380, 3
  %382 = add i64 %381, 16
  %383 = getelementptr i8, i8 addrspace(1)* %370, i64 %382
  %384 = bitcast i8 addrspace(1)* %383 to i8 addrspace(2)* addrspace(1)*
  %385 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %384, align 8
  %386 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %385, i64 %1)
  br label %B128

B128:                                             ; preds = %B164, %B163, %B127
  %387 = phi i8 addrspace(1)* [ %386, %B127 ], [ %388, %B163 ], [ %388, %B164 ]
  %388 = phi i8 addrspace(1)* [ %386, %B127 ], [ %483, %B163 ], [ %483, %B164 ]
  %389 = icmp eq i8 addrspace(1)* %388, null
  br i1 %389, label %B129, label %B130, !prof !2

B129:                                             ; preds = %B128
  br label %B146

B130:                                             ; preds = %B128
  %390 = getelementptr i8, i8 addrspace(1)* %388, i64 56
  %391 = bitcast i8 addrspace(1)* %390 to i8 addrspace(2)* addrspace(1)*
  %392 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %391, align 8
  %393 = icmp eq i8 addrspace(1)* %388, %172
  br i1 %393, label %B131, label %B162, !prof !2

B131:                                             ; preds = %B130
  %394 = icmp eq i8 addrspace(1)* %387, %172
  br i1 %394, label %B132, label %B137, !prof !2

B132:                                             ; preds = %B131
  %395 = bitcast i8 addrspace(1)* %383 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* %392, i8 addrspace(2)* addrspace(1)* %395, align 8
  %396 = getelementptr i8, i8 addrspace(1)* %370, i64 0
  %397 = bitcast i8 addrspace(1)* %396 to i64 addrspace(1)*
  %398 = load i64, i64 addrspace(1)* %397, align 4
  %399 = and i64 %398, 2
  %400 = icmp eq i64 %399, 0
  br i1 %400, label %B133, label %B134, !prof !6

B133:                                             ; preds = %B132
  br label %B145

B134:                                             ; preds = %B132
  %401 = ptrtoint i8 addrspace(1)* %370 to i64
  %402 = and i64 %398, 1
  %403 = icmp eq i64 %402, 0
  br i1 %403, label %B135, label %B136, !prof !5

B135:                                             ; preds = %B134
  %404 = and i64 %401, -1048576
  %405 = add i64 %404, 4136
  %406 = sub i64 %401, %405
  %407 = lshr i64 %406, 9
  %408 = add i64 %407, 40
  %409 = inttoptr i64 %404 to i8*
  %410 = getelementptr i8, i8* %409, i64 %408
  store i8 0, i8* %410, align 1
  br label %B145

B136:                                             ; preds = %B134
  %411 = inttoptr i64 %401 to i8*
  %412 = getelementptr i8, i8* %411, i64 -8
  store i8 0, i8* %412, align 1
  br label %B145

B137:                                             ; preds = %B131
  %413 = icmp eq i8 addrspace(1)* %387, null
  br i1 %413, label %B138, label %B140, !prof !9

B138:                                             ; preds = %B137
  %414 = call i8 addrspace(1)* @ImplicitExceptions_createNullPointerException_73d3fd94610b144dbff38af3343b54950172c1fb(i64 %0, i64 %1) #24
  br label %B139

B139:                                             ; preds = %B138
  br label %B169

B140:                                             ; preds = %B137
  %415 = getelementptr i8, i8 addrspace(1)* %387, i64 56
  %416 = bitcast i8 addrspace(1)* %415 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* %392, i8 addrspace(2)* addrspace(1)* %416, align 8
  %417 = getelementptr i8, i8 addrspace(1)* %387, i64 0
  %418 = bitcast i8 addrspace(1)* %417 to i64 addrspace(1)*
  %419 = load i64, i64 addrspace(1)* %418, align 4
  %420 = and i64 %419, 2
  %421 = icmp eq i64 %420, 0
  br i1 %421, label %B141, label %B142, !prof !6

B141:                                             ; preds = %B140
  br label %B145

B142:                                             ; preds = %B140
  %422 = ptrtoint i8 addrspace(1)* %387 to i64
  %423 = and i64 %419, 1
  %424 = icmp eq i64 %423, 0
  br i1 %424, label %B143, label %B144, !prof !5

B143:                                             ; preds = %B142
  %425 = and i64 %422, -1048576
  %426 = add i64 %425, 4136
  %427 = sub i64 %422, %426
  %428 = lshr i64 %427, 9
  %429 = add i64 %428, 40
  %430 = inttoptr i64 %425 to i8*
  %431 = getelementptr i8, i8* %430, i64 %429
  store i8 0, i8* %431, align 1
  br label %B145

B144:                                             ; preds = %B142
  %432 = inttoptr i64 %422 to i8*
  %433 = getelementptr i8, i8* %432, i64 -8
  store i8 0, i8* %433, align 1
  br label %B145

B145:                                             ; preds = %B144, %B143, %B141, %B136, %B135, %B133
  %434 = getelementptr i8, i8 addrspace(1)* %172, i64 48
  %435 = bitcast i8 addrspace(1)* %434 to i8 addrspace(2)* addrspace(1)*
  store i8 addrspace(2)* null, i8 addrspace(2)* addrspace(1)* %435, align 8
  %436 = getelementptr i8, i8 addrspace(1)* %33, i64 60
  %437 = bitcast i8 addrspace(1)* %436 to i32 addrspace(1)*
  %438 = load i32, i32 addrspace(1)* %437, align 4
  %439 = add i32 %438, -1
  %440 = bitcast i8 addrspace(1)* %436 to i32 addrspace(1)*
  store i32 %439, i32 addrspace(1)* %440, align 4
  br label %B146

B146:                                             ; preds = %B145, %B129
  %441 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %442 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %441, align 8
  %443 = icmp eq i8 addrspace(2)* %442, null
  br i1 %443, label %B147, label %B148, !prof !2

B147:                                             ; preds = %B146
  br label %B158

B148:                                             ; preds = %B146
  %444 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %442, i64 %1)
  %445 = getelementptr i8, i8 addrspace(1)* %444, i64 0
  %446 = bitcast i8 addrspace(1)* %445 to i64 addrspace(1)*
  %447 = load i64, i64 addrspace(1)* %446, align 4
  %448 = and i64 %447, -8
  %449 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %448)
  %450 = icmp eq i8 addrspace(2)* %449, %74
  br i1 %450, label %B149, label %B157, !prof !5

B149:                                             ; preds = %B148
  %451 = getelementptr i8, i8 addrspace(1)* %444, i64 24
  %452 = bitcast i8 addrspace(1)* %451 to i8 addrspace(2)* addrspace(1)*
  %453 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %452, align 8
  %454 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %455 = cmpxchg i8 addrspace(2)* addrspace(1)* %454, i8 addrspace(2)* %442, i8 addrspace(2)* %453 monotonic monotonic
  %456 = extractvalue { i8 addrspace(2)*, i1 } %455, 1
  %457 = select i1 %456, i32 1, i32 0
  %458 = getelementptr i8, i8 addrspace(1)* %58, i64 0
  %459 = bitcast i8 addrspace(1)* %458 to i64 addrspace(1)*
  %460 = load i64, i64 addrspace(1)* %459, align 4
  %461 = and i64 %460, 2
  %462 = icmp eq i64 %461, 0
  br i1 %462, label %B150, label %B151, !prof !6

B150:                                             ; preds = %B149
  br label %B154

B151:                                             ; preds = %B149
  %463 = ptrtoint i8 addrspace(1)* %58 to i64
  %464 = and i64 %460, 1
  %465 = icmp eq i64 %464, 0
  br i1 %465, label %B152, label %B153, !prof !5

B152:                                             ; preds = %B151
  %466 = and i64 %463, -1048576
  %467 = add i64 %466, 4136
  %468 = sub i64 %463, %467
  %469 = lshr i64 %468, 9
  %470 = add i64 %469, 40
  %471 = inttoptr i64 %466 to i8*
  %472 = getelementptr i8, i8* %471, i64 %470
  store i8 0, i8* %472, align 1
  br label %B154

B153:                                             ; preds = %B151
  %473 = inttoptr i64 %463 to i8*
  %474 = getelementptr i8, i8* %473, i64 -8
  store i8 0, i8* %474, align 1
  br label %B154

B154:                                             ; preds = %B153, %B152, %B150
  %475 = icmp eq i32 %457, 0
  br i1 %475, label %B155, label %B156, !prof !4

B155:                                             ; preds = %B154
  br label %B158

B156:                                             ; preds = %B154
  br label %B159

B157:                                             ; preds = %B148
  br label %B158

B158:                                             ; preds = %B157, %B155, %B147
  call void @MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3(i64 %0, i64 %1, i8 addrspace(1)* %58) #25
  br label %B159

B159:                                             ; preds = %B158, %B156
  %476 = inttoptr i64 %0 to i8*
  %477 = getelementptr i8, i8* %476, i32 16
  %478 = bitcast i8* %477 to i32*
  %479 = load i32, i32* %478, align 4
  %480 = sub i32 %479, 1
  %481 = bitcast i8* %477 to i32*
  store i32 %480, i32* %481, align 4
  %482 = icmp sle i32 %480, 0
  br i1 %482, label %B160, label %B161, !prof !7

B160:                                             ; preds = %B159
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #26
  br label %B14

B161:                                             ; preds = %B159
  br label %B14

B162:                                             ; preds = %B130
  %483 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %392, i64 %1)
  %484 = inttoptr i64 %0 to i8*
  %485 = getelementptr i8, i8* %484, i32 16
  %486 = bitcast i8* %485 to i32*
  %487 = load i32, i32* %486, align 4
  %488 = sub i32 %487, 1
  %489 = bitcast i8* %485 to i32*
  store i32 %488, i32* %489, align 4
  %490 = icmp sle i32 %488, 0
  br i1 %490, label %B163, label %B164, !prof !7

B163:                                             ; preds = %B162
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #27
  br label %B128

B164:                                             ; preds = %B162
  br label %B128

B165:                                             ; preds = %B126
  %491 = call i8 addrspace(1)* @ImplicitExceptions_createOutOfBoundsException_3590a3102f37930ffe20d1b739b90400e33e2add(i64 %0, i64 %1, i32 %378, i32 %373) #28
  br label %B166

B166:                                             ; preds = %B165
  br label %B169

B167:                                             ; preds = %B122
  %492 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* @"constant_WeakIdentityHashMap$EntrySet_contains_ea599c9b613ab41b5d96456497923a74d7717126#5", align 8
  %493 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %492, i64 %1)
  %494 = call i8 addrspace(1)* @ImplicitExceptions_createClassCastException_244875759f2e2dd91834d379b6d45aff33b5c373(i64 %0, i64 %1, i8 addrspace(1)* %172, i8 addrspace(1)* %493) #29
  br label %B168

B168:                                             ; preds = %B167
  br label %B169

B169:                                             ; preds = %B168, %B166, %B139, %B125
  %495 = phi i8 addrspace(1)* [ %494, %B168 ], [ %369, %B125 ], [ %414, %B139 ], [ %491, %B166 ]
  %496 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %497 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %496, align 8
  %498 = icmp eq i8 addrspace(2)* %497, null
  br i1 %498, label %B170, label %B171, !prof !2

B170:                                             ; preds = %B169
  br label %B181

B171:                                             ; preds = %B169
  %499 = call i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %497, i64 %1)
  %500 = getelementptr i8, i8 addrspace(1)* %499, i64 0
  %501 = bitcast i8 addrspace(1)* %500 to i64 addrspace(1)*
  %502 = load i64, i64 addrspace(1)* %501, align 4
  %503 = and i64 %502, -8
  %504 = call i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %503)
  %505 = icmp eq i8 addrspace(2)* %504, %74
  br i1 %505, label %B172, label %B180, !prof !5

B172:                                             ; preds = %B171
  %506 = getelementptr i8, i8 addrspace(1)* %499, i64 24
  %507 = bitcast i8 addrspace(1)* %506 to i8 addrspace(2)* addrspace(1)*
  %508 = load i8 addrspace(2)*, i8 addrspace(2)* addrspace(1)* %507, align 8
  %509 = bitcast i8 addrspace(1)* %316 to i8 addrspace(2)* addrspace(1)*
  %510 = cmpxchg i8 addrspace(2)* addrspace(1)* %509, i8 addrspace(2)* %497, i8 addrspace(2)* %508 monotonic monotonic
  %511 = extractvalue { i8 addrspace(2)*, i1 } %510, 1
  %512 = select i1 %511, i32 1, i32 0
  %513 = getelementptr i8, i8 addrspace(1)* %58, i64 0
  %514 = bitcast i8 addrspace(1)* %513 to i64 addrspace(1)*
  %515 = load i64, i64 addrspace(1)* %514, align 4
  %516 = and i64 %515, 2
  %517 = icmp eq i64 %516, 0
  br i1 %517, label %B173, label %B174, !prof !6

B173:                                             ; preds = %B172
  br label %B177

B174:                                             ; preds = %B172
  %518 = ptrtoint i8 addrspace(1)* %58 to i64
  %519 = and i64 %515, 1
  %520 = icmp eq i64 %519, 0
  br i1 %520, label %B175, label %B176, !prof !5

B175:                                             ; preds = %B174
  %521 = and i64 %518, -1048576
  %522 = add i64 %521, 4136
  %523 = sub i64 %518, %522
  %524 = lshr i64 %523, 9
  %525 = add i64 %524, 40
  %526 = inttoptr i64 %521 to i8*
  %527 = getelementptr i8, i8* %526, i64 %525
  store i8 0, i8* %527, align 1
  br label %B177

B176:                                             ; preds = %B174
  %528 = inttoptr i64 %518 to i8*
  %529 = getelementptr i8, i8* %528, i64 -8
  store i8 0, i8* %529, align 1
  br label %B177

B177:                                             ; preds = %B176, %B175, %B173
  %530 = icmp eq i32 %512, 0
  br i1 %530, label %B178, label %B179, !prof !4

B178:                                             ; preds = %B177
  br label %B181

B179:                                             ; preds = %B177
  br label %B182

B180:                                             ; preds = %B171
  br label %B181

B181:                                             ; preds = %B180, %B178, %B170
  call void @MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3(i64 %0, i64 %1, i8 addrspace(1)* %58) #30
  br label %B182

B182:                                             ; preds = %B181, %B179
  %531 = call i8* @llvm.frameaddress.p0i8(i32 0)
  %532 = ptrtoint i8* %531 to i64
  %533 = add i64 %532, 16
  call void @ExceptionUnwind_unwindExceptionWithoutCalleeSavedRegisters_a72be9b3a6eed0ebbe367f78f1788cfbc52c6377(i64 %0, i64 %1, i8 addrspace(1)* %495, i64 %533) #31
  unreachable

B183:                                             ; preds = %B3
  br label %B184

B184:                                             ; preds = %B183, %B2
  %534 = inttoptr i64 %0 to i8*
  %535 = getelementptr i8, i8* %534, i32 16
  %536 = bitcast i8* %535 to i32*
  %537 = load i32, i32* %536, align 4
  %538 = sub i32 %537, 1
  %539 = bitcast i8* %535 to i32*
  store i32 %538, i32* %539, align 4
  %540 = icmp sle i32 %538, 0
  br i1 %540, label %B185, label %B186, !prof !7

B185:                                             ; preds = %B184
  call void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64 %0, i64 %1) #32
  ret i32 0

B186:                                             ; preds = %B184
  ret i32 0

B187:                                             ; preds = %B0
  call void @StackOverflowCheckSnippets_throwNewStackOverflowError_d3212575561bd35f8d5679c68d3664f797596772(i64 %0, i64 %1) #33
  unreachable
}

declare i32 @IsolateEnterStub_LLVMExceptionUnwind_personality_6715a663d94f995518d057e92a9c4ae4293ffca2_f13871289d9839292ba0106f623976b447e2efd4(i32, i32, i64, i64, i64)

declare void @llvm.experimental.stackmap(i64, i32, ...)

; Function Attrs: nounwind readonly
declare i64 @llvm.read_register.i64(metadata) #1

; Function Attrs: alwaysinline
define linkonce i8 addrspace(2)* @__llvm_int_to_compressed_object(i64 %0) #2 {
main:
  %1 = inttoptr i64 %0 to i8 addrspace(2)*
  ret i8 addrspace(2)* %1
}

; Function Attrs: alwaysinline
define linkonce i8 addrspace(1)* @__llvm_uncompress_nonNull_0(i8 addrspace(2)* %0, i64 %1) #2 {
main:
  %2 = ptrtoint i8 addrspace(2)* %0 to i64
  %3 = add i64 %2, %1
  %4 = inttoptr i64 %3 to i8 addrspace(1)*
  ret i8 addrspace(1)* %4
}

; Function Attrs: alwaysinline
define linkonce i8 addrspace(1)* @__llvm_uncompress_0(i8 addrspace(2)* %0, i64 %1) #2 {
main:
  %2 = ptrtoint i8 addrspace(2)* %0 to i64
  %3 = add i64 %2, %1
  %4 = icmp eq i64 %2, 0
  %5 = select i1 %4, i64 %2, i64 %3
  %6 = inttoptr i64 %5 to i8 addrspace(1)*
  ret i8 addrspace(1)* %6
}

declare void @ImplicitExceptions_throwNewNullPointerException_4005c48f410ebeb06be6e6d0cbe0438520f574fa(i64, i64)

declare i32 @IdentityHashCodeSupport_generateIdentityHashCode_93039d910569011a3e667fd04e28ea566e47783c(i64, i64, i8 addrspace(1)*)

; Function Attrs: alwaysinline
define linkonce i8 addrspace(2)* @__llvm_load_compressed_object_from_untracked_pointer(i8* %0) #2 {
main:
  %1 = bitcast i8* %0 to i8 addrspace(2)**
  %2 = load i8 addrspace(2)*, i8 addrspace(2)** %1, align 8
  ret i8 addrspace(2)* %2
}

declare void @MultiThreadedMonitorSupport_slowPathMonitorEnter_5c2ec80c70301e1f54c9deef94b70b719d5a10f5(i64, i64, i8 addrspace(1)*)

; Function Attrs: alwaysinline
define linkonce i8 addrspace(2)* @__llvm_compress_0(i8 addrspace(1)* %0, i64 %1) #2 {
main:
  %2 = ptrtoint i8 addrspace(1)* %0 to i64
  %3 = sub i64 %2, %1
  %4 = icmp eq i64 %2, 0
  %5 = select i1 %4, i64 %2, i64 %3
  %6 = inttoptr i64 %5 to i8 addrspace(2)*
  ret i8 addrspace(2)* %6
}

declare void @MultiThreadedMonitorSupport_slowPathMonitorExit_183871de385508d0f6b4f0881e8e0c44628018b3(i64, i64, i8 addrspace(1)*)

declare void @Safepoint_enterSlowPathSafepointCheck_6065687f19bea4c522a5ace56dcc1231d113e373(i64, i64)

declare void @ImplicitExceptions_throwNewOutOfBoundsExceptionWithArgs_f062b0eae5d66f6e77fb3d149ae2260d4a15d17c(i64, i64, i32, i32)

declare i8 addrspace(1)* @ImplicitExceptions_createNullPointerException_73d3fd94610b144dbff38af3343b54950172c1fb(i64, i64)

declare i8 addrspace(1)* @ImplicitExceptions_createOutOfBoundsException_3590a3102f37930ffe20d1b739b90400e33e2add(i64, i64, i32, i32)

declare i8 addrspace(1)* @ImplicitExceptions_createClassCastException_244875759f2e2dd91834d379b6d45aff33b5c373(i64, i64, i8 addrspace(1)*, i8 addrspace(1)*)

declare void @ExceptionUnwind_unwindExceptionWithoutCalleeSavedRegisters_a72be9b3a6eed0ebbe367f78f1788cfbc52c6377(i64, i64, i8 addrspace(1)*, i64)

declare void @StackOverflowCheckSnippets_throwNewStackOverflowError_d3212575561bd35f8d5679c68d3664f797596772(i64, i64)

; Function Attrs: nounwind readnone
declare i8* @llvm.frameaddress.p0i8(i32 immarg) #3

attributes #0 = { noinline noredzone "no-realign-stack"="true" }
attributes #1 = { nounwind readonly }
attributes #2 = { alwaysinline "gc-leaf-function"="true" }
attributes #3 = { nounwind readnone }
attributes #4 = { "statepoint-id"="21835" }
attributes #5 = { "statepoint-id"="21836" }
attributes #6 = { "statepoint-id"="21839" }
attributes #7 = { "statepoint-id"="21842" }
attributes #8 = { "statepoint-id"="21844" }
attributes #9 = { "statepoint-id"="21854" }
attributes #10 = { "statepoint-id"="21862" }
attributes #11 = { "statepoint-id"="21865" }
attributes #12 = { "statepoint-id"="21869" }
attributes #13 = { "statepoint-id"="21872" }
attributes #14 = { "statepoint-id"="21873" }
attributes #15 = { "statepoint-id"="21875" }
attributes #16 = { "statepoint-id"="21876" }
attributes #17 = { "statepoint-id"="21877" }
attributes #18 = { "statepoint-id"="21878" }
attributes #19 = { "statepoint-id"="21879" }
attributes #20 = { "statepoint-id"="21880" }
attributes #21 = { "statepoint-id"="21881" }
attributes #22 = { "statepoint-id"="21882" }
attributes #23 = { "statepoint-id"="21883" }
attributes #24 = { "statepoint-id"="21885" }
attributes #25 = { "statepoint-id"="21930" }
attributes #26 = { "statepoint-id"="21932" }
attributes #27 = { "statepoint-id"="21935" }
attributes #28 = { "statepoint-id"="21937" }
attributes #29 = { "statepoint-id"="21940" }
attributes #30 = { "statepoint-id"="21946" }
attributes #31 = { "statepoint-id"="21952" }
attributes #32 = { "statepoint-id"="21957" }
attributes #33 = { "statepoint-id"="21959" }

!0 = !{!"sp\00"}
!1 = !{!"branch_weights", i32 2147462172, i32 21474}
!2 = !{!"branch_weights", i32 1073741823, i32 1073741823}
!3 = !{!"branch_weights", i32 21474, i32 2147462172}
!4 = !{!"branch_weights", i32 21474836, i32 2126008810}
!5 = !{!"branch_weights", i32 1288490188, i32 858993458}
!6 = !{!"branch_weights", i32 1932735282, i32 214748364}
!7 = !{!"branch_weights", i32 2147483, i32 2145336163}
!8 = !{!"branch_weights", i32 2147481499, i32 2147}
!9 = !{!"branch_weights", i32 2147, i32 2147481499}

Preliminary investigation

Preliminary investigation of the issue shows that the assertion fails while processing the following instruction in the basic block B27:

%97 = extractvalue { i8 addrspace(2)*, i1 } %96, 1

And in particular, the type of the instruction operand { i8 addrspace(2)*, i1 } %96 causes the assertion to fail:

%96 = cmpxchg i8 addrspace(2)* addrspace(1)* %95, i8 addrspace(2)* %73, i8 addrspace(2)* %93 monotonic monotonic
koutheir commented 3 years ago

Curiously, adding the flag -H:IncludeLLVMDebugInfo=3 to native-image parameters produces the following errors:

...
>> <...>/opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f25o.bc f25.bc
...
<...>/opt: f25.bc: error: input module is broken!
...
org.graalvm.compiler.debug.GraalError: LLVM optimization failed for com.oracle.svm.core.SubstrateUtil.dumpStacktrace(com.oracle.svm.core.log.Log, org.graalvm.word.Pointer, org.graalvm.nativeimage.c.function.CodePointer) (<...>/SVM-1613069241298/llvm/f25.bc): 1
Command: opt -mem2reg -rewrite-statepoints-for-gc -always-inline -o f25o.bc f25.bc
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.llvmOptimize(LLVMNativeImageCodeCache.java:242)
        at com.oracle.svm.core.graal.llvm.LLVMNativeImageCodeCache.lambda$compileBitcodeBatches$5(LLVMNativeImageCodeCache.java:180)
        at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:173)
        at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
        at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
        at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
        at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
        at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
        at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

I'm not sure if this error is related, though. The file f25.ll.txt is attached.

loicottet commented 3 years ago

@koutheir This is an issue with IncludeLLVMDebugInfo and not linked to the original issue, which I have found and for which have a fix on the way.

loicottet commented 3 years ago

Fixed by https://github.com/oracle/graal/commit/43a4c1b16e2baaa16ed0598fa6fb59408ee71ef2