-
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
Debug print in yklua can crash trace optimiser. #1598
Comments
With my build with asserts on (I hope you've got debug asserts on!) I get:
|
Here's the test case reduced further, about half the size: D = {}
do
E = 10
function D:B() end
function D:E()
if A then
for A = 0, E do
end
end
end
end
C = {}
do
function C.D()
F = {
F = D,
}
return setmetatable(F, {
__index = C,
})
end
function C:A()
self.F:E()
end
end
G = {}
do
function G.D(F)
A = F:F()
A:A()
A:A()
end
end
F = {}
do
function F.D()
setmetatable(G, {
__index = F,
})
end
function F:F()
if D:B() then
else
B = C.D()
end
return B
end
end
A = {}
do
function A.D()
F.D()
F = {}
return setmetatable(F, {
__index = A,
})
end
function A:C()
G.D(G)
end
function A:F()
self:C()
end
function A:E()
do
do
for _ = 0, E do
self:F()
end
end
end
end
end
B = {}
do
function B:F()
A.D():E()
end
end
B:F() |
Looking at the targets of the deopt routine, I can see two different AOT variables wanting to write to
I wonder if this is a bug in the spillmap stuff again. |
Here's some more info on the two variables in question and the instructions that define them:
In the context of the aot module:
|
I assume @ptersilie will be interested in this too. |
This is similar, but distinct from #1597.
Using yk pulled just now (806507c), using the test case from #1594 (comment) again, and with this slightly different diff to yklua:
With the optimiser ON I get:
With the optimiser OFF, I get #1594, which I'm already investigating.
It's not impossible that something to do with #1594 could be feeding garbage to the trace optimiser. Not sure. If we think that's likely then we can wait for the fix for #1594.
The text was updated successfully, but these errors were encountered: