Filed PR jit/66812 for the code generation issue

Dibyendu Majumdar mobile@majumdar.org.uk
Thu Jan 1 00:00:00 GMT 2015


On 8 July 2015 at 18:46, David Malcolm <dmalcolm@redhat.com> wrote:
> Dibyendu: what Lua code generated the reproducer?  What is the code
> meant to be doing?
>

Hi Dave - the Lua test is this:

function x()
  local IX
  if ((10 or true) and false) then
    IX = true
  end;
  return ((10 or true) and false)
end
assert(x() == false)

In the original test IX is an upvalue - i.e. a variable in outer
scope. This is my standalone version of the test. The original test is
generated as part of the Lua test suite - its purpose is to test
various permutations of boolean operators.

The original test compares IX and the function return.

The issue is that this test should return false - if you see the
return statement. However when -O2 or -O3 is enabled it returns true.

The if statement is indeed redundant in this cut down version as IX is
a local variable. But the return statement is not redundant.

Regards
Dibyendu



More information about the Jit mailing list