[PATCH] D21291: [SimplifyCFG] Range reduce switches
Eli Friedman via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 13 13:26:08 PDT 2016
eli.friedman added a subscriber: eli.friedman.
eli.friedman added a comment.
Maybe it makes sense to perform this sort of transformation in SelectionDAGBuilder::visitSwitch instead? Most of the relevant logic is there.
This patch only handles situations where all the values form a linear series, but it seems important to also catch cases where *most* of the values form a linear series (for example, 97, 105, 109, 113, 117, 121).
I think your profitability model is a bit off: we never generate a jump table for less than four cases, so trying to improve the density of a nonexistent jump table seems like a bad idea. And for cases where the divisor is small, the tradeoff between extra jump table entries and an extra compare+branch isn't obvious.
More information about the llvm-commits