On Fri, Jan 16, 2015 at 02:02:37PM +0100, Richard Biener wrote: > > The following fixes PR64614, maybe-uninit warnings in switches > and guards like X & 3. > > The support for switches is quite limited (because the predicate > infrastructure in the pass is quite limited), but it seems to > handle this particular case at least. > > Bootstrapped and tested on x86_64-unknown-linux-gnu. > > Any idea how to better handle the case label lookup? Unfortunately > the pass doesn't have a general information gathering phase or a > lattice... Maybe we just don't care? Or put in an arbitrary > limit on gimple_switch_num_labels we handle?
The pass already has various other limits: #define MAX_NUM_CHAINS 8 #define MAX_CHAIN_LEN 5 #define MAX_POSTDOM_CHECK 8 I'd just add MAX_SWITCH_CASES 40 or similar. Or, turn all those into proper params ;) Jakub