-
Notifications
You must be signed in to change notification settings - Fork 25
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
WIP: Gc addressspace 0 #1193
base: develop
Are you sure you want to change the base?
WIP: Gc addressspace 0 #1193
Conversation
- Data layout and target triple configured. - Temporarily comment out the addrspacecast command (cannot cast to same AS).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't fully reviewed this yet, but I have a couple comments. For the purposes of clarity, can you share the .ll file of IMP that this PR generates?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's possible the segfault is due to doing an addrspace cast from an address space to itself, which the LLVM documentation tells you not to do. I'll see if I can spot any other possible causes when you share the llvm bitcode I asked you for.
Here is the ll for IMP. |
It would help if you could do the following:
|
Something feels weird about the code, but I don't immediately know what it is and I could be seeing something that is actually normal. There's a third thing you should try:
|
|
…C policy enabled.
This PR adds
addrspacecast
instructions for the various address spaces (a separate file, linked after the regular passes, and the always inline pass executed afterwards).Current status: The tests work as expected when the conditional compilation flag
use_gcstrategy
that enables the use of the LLVM backend strategy is disabled.Enabling the flag, e.g. by adding the tests
in defn/imp.kore, results in the test failing (that interpreter fails with segfault).
This is WIP, and is merged in order to keep the code up to date until we revisit this, to