On Tue, Sep 27, 2011 at 4:56 PM, Jeff Law <l...@redhat.com> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 09/27/11 01:30, Richard Guenther wrote: > >> >>> It knows something about prephitmp.6_1 and thus could simplify >>> D.2734_9 = prephitmp_6.1 & D.2732_7; to D.2734_9 = D.2732_7; But >>> admittedly I have no idea if DOM tries to simplify things other >>> than comparisons within the jump threading machinery ... (the >>> above block basically ends in if (D.2729_6 != 0 && >>> prephitmp_6.1), so I'd guess it's worth to simplify the (complex) >>> conditional expression). > Jump threading will enter simplified expressions into the hash tables > for every statement in the block in an effort to utilize any > information available to determine the result of the comparison. > However, those simplifications aren't ever reflected back into the IL. > > The thing to remember is jump threading is tasked detecting cases > where the control statement has a predetermined destination utilizing > path sensitive information. Expanding it to do general path > sensitive optimizations is possible, but at even greater cost.
Yeah, I realize that. It's just this case is the non-cfg form of if (pretmp) if (D.1234) ... where jump-threading would probably handle the CFG variant just fine. Oh well ;) Richard.