-O2 used_once: keep ops with side-effects #1036

Closed
rurban opened this Issue Feb 27, 2014 · 1 comment

Comments

Projects
None yet
1 participant
Member

rurban commented Feb 27, 2014

-O2 t/compilers/imcc/reg/alloc_2.pir deletes the
P0 = pop P1 line because P0 is nowhere else used.
but we need to keep it as pop P1 is just for side-effects, even if the result is ignored.

rurban self-assigned this Feb 27, 2014

@rurban rurban pushed a commit that referenced this issue Feb 27, 2014

Reini Urban [imcc] fix -O2 used_once: keep side-effecting ops #1036
allow used_once elimination only for purely functional ops
without side-effects.
Fixes t/compilers/imcc/reg/alloc.t test 2 alligator 2 - r9629
      t/compilers/imcc/reg/spill_old.t test 1 bug \#32996
and some more.

set ITPUREFUNC in the parser, as this is the best place to find them:
logical un_op and null; artithmetic bin_op and assign_op
f32525e
Member

rurban commented Feb 27, 2014

Fixed in branch rurban/imccO2 which is dependent on rurban/imccflags

@rurban rurban pushed a commit that referenced this issue Feb 27, 2014

Reini Urban [imcc] fix -O2 used_once: keep side-effecting ops #1036
allow used_once elimination only for purely functional ops
without side-effects.
Fixes t/compilers/imcc/reg/alloc.t test 2 alligator 2 - r9629
      t/compilers/imcc/reg/spill_old.t test 1 bug \#32996
and some more.

set ITPUREFUNC in the parser, as this is the best place to find them:
logical un_op and null; artithmetic bin_op and assign_op
74055e5

@rurban rurban pushed a commit that referenced this issue Feb 27, 2014

Reini Urban ChangeLog: add fix for GH #1036 8dc451c

rurban closed this Feb 27, 2014

@rurban rurban pushed a commit that referenced this issue Mar 4, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
c642a1d

@rurban rurban pushed a commit that referenced this issue Mar 4, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
6378792

@rurban rurban pushed a commit that referenced this issue Mar 5, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
b22e4c6

@rurban rurban pushed a commit that referenced this issue Mar 5, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
6b8b317

@rurban rurban pushed a commit that referenced this issue Oct 26, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
be06866

@rurban rurban pushed a commit that referenced this issue Nov 9, 2014

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
8cc7fb7

@rurban rurban pushed a commit that referenced this issue Jan 10, 2015

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
ac72eb8

@rurban rurban pushed a commit that referenced this issue Feb 15, 2016

Reini Urban enable pasm_out in parrot2, todo failing imcpasm tests
opt2 fails with changed used_once semantics: I0 = 10 is side-effecting, but *can* be removed
if I0 is used only once (GH #1036), ...
099feaa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment