From: David Y. <dav...@in...> - 2011-02-03 16:36:26
|
CIL parser translates the CIL switch as a SWITCH_EXPR, with NULL SWITCH_BODY, and the labels in SWITCH_LABELS. It seems to be a correct configuration, but gimplifier does nothing with it, the whole switch is ignored (so removed from gimple), thus the resulting code is incorrect. It is fixed by the patch gcc-fe.parser_emit_switch.patch (revision 169791). The function gcc/cil/parser.c::paser_emit_switch() is modified. The new version emits a nest of if-then-else instead of a switch. Probably it can be improved by means of a sort of switch that gimplifier can handle. Affected SPEC2000 benchmarks: 175.vpr and 175.vpr |