-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a test for shadow stack allocation before an external call. #1499
Conversation
hold off on this for this and the companion for a moment actually. |
6fbb445
to
83c6d9f
Compare
Force pushed test fixes that I didn't anticipate. Go ahead. |
Oh this will need a ykllvm sync once the compiler PR is merged. |
Please force push when that's ready. |
An external call can "call-back" to interpreter code, so we still need to allocate shadow space. Co-authored-by: Lukas Diekmann <[email protected]>
83c6d9f
to
db0391a
Compare
synced and ready. (I note that the ykllvm sync also pulled in some SWT-related stuff) |
Yes the SWT parts are expected. |
Ready when you are then. |
Do we think that's a non-deterministic failure, or perhaps evidence of a problem caused the ykllvm change? |
Hrm, hard to say. I have a try_repeat going to see if I can repro it locally. Maybe retry it? |
Let's give it a minute: if you can get to 100 without crashes (or if you believe any crashes you do see are unrelated), we can retry. |
My run of 100 serialised debug runs just finished without hitting this seg 🤔 |
OK, well let's retry, and see what happens. |
OK, it's crashed in the same place, so I think we can assume we've hit an actual problem. |
OK, i'll try harder to repro. |
I've pushed an assertion that may save us some debugging effort in the future. With ykjit/ykllvm#219 I think this should merge (if the benchmarks turn out to be ok). |
This will need an llvm sync after ykjit/ykllvm#219 is in. |
A bug in ykllvm's spillmap implementation meant that we were deopting the same location with different values. This change adds a debug assertion that checks that this doesn't happen. Co-authored-by: Lukas Diekmann <[email protected]>
f7982a1
to
74e9c0a
Compare
synced llvm. |
An external call can "call-back" to interpreter code, so we still need to allocate shadow space.
Requires ykjit/ykllvm#217