On Thu, Jun 30, 2011 at 4:39 PM, William J. Schmidt <wschm...@linux.vnet.ibm.com> wrote: > This is the first of three patches related to lowering addressing > expressions to MEM_REFs and TARGET_MEM_REFs in late gimple. This patch > contains the new pass together with supporting changes in existing > modules. The second patch contains an independent change to the RTL > forward propagator to keep it from undoing an optimization made in the > first patch. The third patch contains new test cases and changes to > existing test cases. > > Although I've broken it up into three patches to make the review easier, > it would be best to commit at least the first and third together to > avoid regressions. The second can stand alone. > > I've done regression tests on powerpc64 and x86_64, and have asked > Andreas Krebbel to test against the IBM z (390) platform. I've done > performance regression testing on powerpc64. The only performance > regression of note is the 2% degradation to 188.ammp due to loss of > field disambiguation information. As discussed in another thread, > fixing this introduces more complexity than it's worth.
Are there also performance improvements? What about code size? I tried to get an understanding to what kind of optimizations this patch produces based on the test of testcases you added, but I have a hard time here. Can you outline some please? I still do not like the implementation of yet another CSE machinery given that we already have two. I think most of the need for CSE comes from the use of the affine combination framework and force_gimple_operand. In fact I'd be interested to see cases that are optimized that could not be handled by a combine-like pattern matcher? Thanks, Richard.