On Mon, 8 May 2017, Peter Bergner wrote: > On 05/08/2017 01:20 PM, Peter Bergner wrote: > > That is what the previous patch did, but as I mention above, > > we generate slightly better code for some test cases (other > > tests seemed to generate the same code) if we don't attempt > > to handle the decision tree case. I'll note that the current > > unpatched compiler already knows how to remove unreachable > > case statement blocks when we expand to a decision tree. > > I should be more careful with my description here. The patch does > affect both unreachable case statements for both decision trees as > well as jump tables, and that leads to improved code for both > decision trees as well as jump tables. > > What I meant to say above, is that the current handling of unreachable > default case statements in the unpatched compiler seems to lead to > slightly better code for some test cases than attempting to handle > default_label == NULL in the decision tree code. It was for that > reason, I placed the code in expand_case() only in the jump table > path. The fact it made the patch smaller was a bonus, since I didn't > need to protect emit_case_nodes() from a NULL default_label.
Ah, ok. > As I said, if you think it will help some test case I haven't tried yet, > I can add that support back. Well, let's to that incremental then, if at all. Thanks, Richard.