[parrot/parrot] cf85d5: [imcc] Fixed last remaining -O2 issue #1044 t/pmc/...

GitHub noreply at github.com
Fri Feb 28 16:38:54 UTC 2014


  Branch: refs/heads/rurban/imccO2
  Home:   https://github.com/parrot/parrot
  Commit: cf85d51859cdd2688e6d44e3feda88d357b8a52d
      https://github.com/parrot/parrot/commit/cf85d51859cdd2688e6d44e3feda88d357b8a52d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-02-28 (Fri, 28 Feb 2014)

  Changed paths:
    M ChangeLog
    M compilers/imcc/optimizer.c
    M t/pmc/exception-old.t

  Log Message:
  -----------
  [imcc] Fixed last remaining -O2 issue #1044 t/pmc/exception-old_19.pir

Stop constant propagation at yield or invokecc for possible
push_eh/pop_eh non-local effects. This can undo the set of the constant
value.

See t/pmc/exception-old_19.pir:
cont = test() contains a push_eh, and the subsequent pop_eh at cont() changes
the value of the constant redux from 0 back to 1. So constant propagation for
redux=0 cannot delete "if redux goto done" and the done branch.




More information about the parrot-commits mailing list