[PATCH] D12497: [SimplifyCFG] Use known bits to eliminate dead switch defaults
    Hans Wennborg via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Aug 31 13:36:28 PDT 2015
    
    
  
hans added a comment.
Thanks for the patch!
================
Comment at: lib/Transforms/Utils/SimplifyCFG.cpp:3262
@@ -3257,1 +3261,3 @@
+      NumUnknownBits < 64 /* avoid overflow */ &&  
+      SI->getNumCases() == (1ULL << NumUnknownBits)) {
     DEBUG(dbgs() << "SimplifyCFG: switch default is dead.\n");
----------------
Instead of making this contingent on DeadCases.empty(), can't we use "SI->getNumCases() - DeadCases.size()" to get the number of live cases?
The situation I have in mind:
```
x &= 0x3; // NumUnknownBits is now 2
switch (x) {
case 0, 1, 2, 3: stuff
case 5: dead
default: dead
}
```
http://reviews.llvm.org/D12497
    
    
More information about the llvm-commits
mailing list