https://llvm.org/bugs/show_bug.cgi?id=24220
Bug ID: 24220 Summary: Duplicate case blocks in switch can be merged Product: libraries Version: trunk Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: Scalar Optimizations Assignee: unassignedb...@nondot.org Reporter: listm...@philipreames.com CC: llvmbugs@cs.uiuc.edu Classification: Unclassified In the following example, many of the case blocks of the switch are identical and could be merged into a single basic block. This transformation should likely live inside SimplifyCFG. declare void @foo() declare void @bar() define void @test(i16 %val1, i32 %local_2_) { bci_84: ; preds = %normal_return12 switch i16 %val1, label %bci_149 [ i16 45, label %bci_90 i16 43, label %bci_103 i16 58, label %bci_116 i16 95, label %bci_129 i16 46, label %bci_142 ] bci_149: call void @foo() ret void bci_158: call void @bar() ret void bci_142: ; preds = %bci_84 %.old = icmp eq i32 %local_2_, 0 br i1 %.old, label %bci_149, label %bci_158 bci_129: ; preds = %bci_84 %_20 = icmp eq i32 %local_2_, 0 br i1 %_20, label %bci_149, label %bci_158 bci_116: ; preds = %bci_84 %_21 = icmp eq i32 %local_2_, 0 br i1 %_21, label %bci_149, label %bci_158 bci_103: ; preds = %bci_84 %_22 = icmp eq i32 %local_2_, 0 br i1 %_22, label %bci_149, label %bci_158 bci_90: ; preds = %bci_84 %_23 = icmp eq i32 %local_2_, 0 br i1 %_23, label %bci_149, label %bci_158 } -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ LLVMbugs mailing list LLVMbugs@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs