Re: [PATCH] Fix PR tree-optimization/51513

2016-05-02 Thread Peter Bergner
On Mon, 2016-05-02 at 10:49 +0200, Richard Biener wrote: > Again, the wild jump is not a bug but at most a missed optimization > (to remove it). Sorry, came down with a cold and haven't looked into this yet. I'll do that today. I agree it's a missed optimization bug. We noticed this with a post c

Re: [PATCH] Fix PR tree-optimization/51513

2016-05-02 Thread Richard Biener
On Fri, Apr 29, 2016 at 2:09 PM, Peter Bergner wrote: > On Fri, 2016-04-29 at 11:56 +0200, Richard Biener wrote: >> Your testcase passes '2' where it passes just fine. If I pass 3 as which >> I indeed get an abort () but you can't reasonably expect it to return 13 >> then. > > Bah, I added an ex

Re: [PATCH] Fix PR tree-optimization/51513

2016-04-29 Thread Peter Bergner
On Fri, 2016-04-29 at 11:56 +0200, Richard Biener wrote: > Your testcase passes '2' where it passes just fine. If I pass 3 as which > I indeed get an abort () but you can't reasonably expect it to return 13 then. Bah, I added an extra case and didn't change the argument. :-( Let me fix that and

Re: [PATCH] Fix PR tree-optimization/51513

2016-04-29 Thread Richard Biener
On Fri, Apr 29, 2016 at 1:35 AM, Peter Bergner wrote: > This patch fixes PR tree-optimization/51513, namely the generation of > wild branches due to switch case statements that only contain calls to > __builtin_unreachable(). For example, compiling using -O2 -fjump-tables > --param case-values-th

[PATCH] Fix PR tree-optimization/51513

2016-04-28 Thread Peter Bergner
This patch fixes PR tree-optimization/51513, namely the generation of wild branches due to switch case statements that only contain calls to __builtin_unreachable(). For example, compiling using -O2 -fjump-tables --param case-values-threshold=1 (to easily expose the bug), we see: switch (which)