On Mon, Jul 2, 2012 at 7:18 AM, Steven Bosscher <stevenb....@gmail.com> wrote: > On Sun, Jul 1, 2012 at 11:58 AM, Richard Guenther > <richard.guent...@gmail.com> wrote: >> On Sat, Jun 30, 2012 at 12:29 PM, Steven Bosscher <stevenb....@gmail.com> >> wrote: >>> Hello, >>> >>> This patch moves the emit_case_bit_tests method of switch lowering >>> from 'expand' to a GIMPLE pass. >>> >>> Initially, I planned to move all switch lowering to something other >>> than a casesi or tablejump to GIMPLE, but this is more involved than I >>> anticipated. My plan was (and still is, but for later) to do the >>> switch lowering using a divide-and-conquer approach: Parts of a switch >>> may be best expanded as bit-tests, other parts maybe as a decision >>> tree, and yet others as casesi/tablejump (the code in stmt.c uses only >>> one of these approaches per GIMPLE_SWITCH). Also I wanted to use >>> profile information in the lowering decision making (using Freescale's >>> patch as a basis). But I need to come up with a way to handle the SJLJ >>> dispatch table issue. >>> >>> I'll continue to work on all of the above, and I hope I can finish >>> everything I planned to work on for GCC 4.8. >>> But to make sure I don't miss the GCC 4.8 stage1 deadline, I'm >>> proposing this for trunk now. >>> >>> Bootstrapped&tested on powerpc64-unknown-linux-gnu - several times in >>> fact, over the past few months. >>> Bootstrapped&tested on x86_64-unknown-linux-gnu. Also built&tested on >>> various powerpc64 X embedded targets. >>> >>> OK for trunk? >> >> This is ok. > > Hello, > > It turns out that I had a code generation bug in the transformation > all along, but it only triggered since the straight-line strength > reduction pass was introduced. This also showed up in a switchconv > test case that should have failed, but passed. So I fixed the test > case also, in this new patch. > > Fixed patch attached, which I tested in the same way as before. I'll > commit this later this week, assuming your approval still stands. >
This caused: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53887 -- H.J.