Re: Allocation sinking limits

  • From: Denis Golovan <denis.golovan@xxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Sat, 1 Aug 2015 13:10:10 +0300

Hi Vyacheslav

I am really impressed with your reply.
I've checked your patch against v2.1 git.
It works!

However, following example which is 95% of production code still
allocates tables within loop.

function table_index(t, ix)
return t[ix]
end

mt = {
__newindex = function (a, ix, v)
rawset(a.arr, a.table_index(ix, 2), v)
end
}

function tt()
local res = { arr = {} }
res.table_index = table_index
setmetatable(res, mt)
for j=0,2 do
for i=1,10000 do
res[ {j, i} ] = 1
end
end
return res
end

jit.flush()
aa=tt()

2015-08-01 13:00 GMT+03:00 Vyacheslav Egorov <dmarc-noreply@xxxxxxxxxxxxx>:

However as far as I can see fwd_ahload doesn't take into account
aliasing between keys so it thinks there might be some aliasing.

I would like to correct this statement though: aa_ahref does try to
take aliasing between keys into account - it at least applies a simple
typed based disambiguation.

// Vyacheslav Egorov


Other related posts: