The following testcase from bug 18628 exposes a case in which cse would have folded a load from a jump table into a label. Jeff suspects this should have happened earlier, in the tree level, so he asked me to file this bug. Here's the testcase:
int i; int main() { for (;;) { switch (i) { case 0: case 1: return 1; case 2: case 3: return 0; case 5: --i; } } } -- Summary: hoisting of label out of jumptable would take place at cse, should happen at trees Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: law at gcc dot gnu dot org ReportedBy: aoliva at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org OtherBugsDependingO 19721 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20514