You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first attempt to enable large call stacks by catching StackOverflowErrors and throwing process switches does not work in some cases. Maybe we could use https://openjdk.java.net/jeps/270 to ensure a bytecode can be executed until the end (vs. being interrupted in the middle of execution by a StackOverflowError). Otherwise, we probably want to something similar to RSqueak and count stack frames in the interpreter. We can then trigger a process switch after a certain threshold is reached.
AWFY's CD benchmark is highly recursive and currently fails because of StackOverflowErrors, but we will be able to use it to measure the performance of our implementation.
The text was updated successfully, but these errors were encountered:
With c6bbb2dfactorial works up to ~45000. From there on up it crashes with: Uncaught exception at ..\..\src\share\vm\jvmci\jvmciRuntime.cpp:1488 java.lang.StackOverflowError
With fd65b19, factorial works for even higher numbers than 45000 and even the CD benchmark runs (still pretty slow though). It looks like maintaining the stack depth counter in compiled code is not too expensive, but avoids StackOverflowErrors which can apparently happen in compiled code as well.
Turns out there was a bug in the Smalltalk port of the CD benchmark that caused excessive stack depths (see smarr/are-we-fast-yet#69). The fixed CD benchmark runs fine on TruffleSqueak, so this can be closed for now.
The first attempt to enable large call stacks by catching
StackOverflowError
s and throwing process switches does not work in some cases. Maybe we could use https://openjdk.java.net/jeps/270 to ensure a bytecode can be executed until the end (vs. being interrupted in the middle of execution by aStackOverflowError
). Otherwise, we probably want to something similar to RSqueak and count stack frames in the interpreter. We can then trigger a process switch after a certain threshold is reached.AWFY's CD benchmark is highly recursive and currently fails because of
StackOverflowError
s, but we will be able to use it to measure the performance of our implementation.The text was updated successfully, but these errors were encountered: