Conversation
src/aotcompile.cpp
Outdated
| if (*src_out && jl_is_method(def)) { | ||
| PTR_PIN(def); | ||
| PTR_PIN(codeinst); | ||
| *src_out = jl_uncompress_ir(def, codeinst, (jl_array_t*)*src_out); |
There was a problem hiding this comment.
Why we don't need to pin *src_out, as it seems it's been cast to jl_array_t*?
There was a problem hiding this comment.
I am looking at this. It looks like a bug. The arg jl_value_t **src_out is pinned, but we cannot say *src is pinned.
and deriving expr. Raise an error if we attempt to pin a moved value.
we try find ways to figure out if it is actually pinned.
|
I fixed some issues in GCChecker. Can you take a look at the PR again? You can focus on the changes about the test cases, regarding to pinning, which are simple cases, and the changes in I am not sure if we want to merge this PR at all. Maybe we should only merge changes in GCChecker so we can use it to check the runtime code. We keep runtime changes in a separate branch. We only merge runtime changes after we go through the entire runtime code base, fixing pinning issues and verify correctness and performance. What do you think? |
I created two separate PRs. #51 fixes the GCChecker, which I suggest to be merged as soon as we can. And #52 fixes the runtime code, which I suggest to remain a draft until we go through and fix the entire code base. I am closing this PR. |
This PR fixes a few issues in
jitlayers.cppandaotcompile.cppso they are compliant with the GC checker. More logging and tests for GC checker.