-
-
Notifications
You must be signed in to change notification settings - Fork 418
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
LLVM 15 #4327
LLVM 15 #4327
Conversation
I can't figure out why the "full program" @kulibali - Can you take a look and see if you have any ideas? |
When I debug into it on Windows, it calls |
This program demonstrates the problem (and another one):
For me it produces:
So the string concat is not working right either. |
Thanks for narrowing down to a minimal program! |
This reverts commit 08acee3.
This optimization pass is not safe, and so it had to be removed. This pass tries to remove calls to `pony_realloc` by making the original pointer bigger to match the later realloc size, but it doesn't do any analysis to prove that the reallocation didn't have some semantic importance. For example, when using `Array.chop` or `String.chop` followed by a `push` onto the left side of the chop point, the left side must be reallocated in order to avoid mutating the right side. But this pass doesn't do any analysis to check if the pointer may possibly be accessible from some SSA, so it doesn't know that removing the reallocation will break the semantics.
There's one more error left in CI that I think could be resolved by disabling @kulibali - do you know what the right variable is to disable that? |
@jemc I believe it's |
This is ready for review, but I don't want to merge it until addressing the open question I posed above. |
Co-authored-by: Sean T Allen <[email protected]>
@kulibali can you give this another review so we can merge it in? |
Ok, I'm busy this weekend but I'll try to take a look on Monday. |
LLVM 15 has some significant breaking changes, including: