Commit [ccd2a1] Maximize Restore History

Substitute constants with modular equivalents more safely

* Modular arithmetic sometimes lets us narrow constants down,
especially with signed arithmetic. We now update the receiving
LVAR's type conservatively when there are multiple uses; otherwise,
conflicting type information results in spurious dead code
elimination.

* Test case by Eric Marsden.

* Reported by Eric Marsden on sbcl-devel (2013-04-18).

Paul Khuong Paul Khuong 2013-04-20

changed src/compiler/srctran.lisp
changed tests/compiler.pure.lisp
changed NEWS
src/compiler/srctran.lisp Diff Switch to side-by-side view
Loading...
tests/compiler.pure.lisp Diff Switch to side-by-side view
Loading...
NEWS Diff Switch to side-by-side view
Loading...