[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Filed PR jit/66812 for the code generation issue
On Wed, 2015-07-08 at 20:01 +0100, Dibyendu Majumdar wrote:
> 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.
Thanks. What does this look like as bytecodes?