Iteratively try to fold expressions before constant propagation
authorJohan Tibell <johan.tibell@gmail.com>
Wed, 22 Jun 2011 22:57:37 +0000 (00:57 +0200)
committerJohan Tibell <johan.tibell@gmail.com>
Thu, 23 Jun 2011 05:59:58 +0000 (07:59 +0200)
commite9bc0dde881a615e01f8fc5e52dd2264f163e5fd
treec47e7d70dcfb97ceb91b793eb1752c12755a983b
parent81c6dc7684178f9feb8884fe3049f42f43245786
Iteratively try to fold expressions before constant propagation

Before this change the constant expression

   _ccI::I64 = (16 >> 7) + 1;

wouldn't be propagated, as it wouldn't be completely folded.  This
meant that this expression wouldn't be unrolled

    thawArray# arr# 0# 16# s#

The new code generator already does this correctly.
compiler/cmm/CmmOpt.hs