never executed always true always false
    1 module HelVM.HelMA.Automaton.Optimizer.DeadCodeOptimizer (
    2   deadCodeElimination,
    3 ) where
    4 
    5 import           HelVM.HelMA.Automaton.Instruction
    6 
    7 import           HelVM.HelMA.Automaton.Instruction.Extras.Patterns
    8 
    9 
   10 deadCodeElimination :: InstructionList -> InstructionList
   11 deadCodeElimination = fix optimize where
   12   optimize :: (InstructionList -> InstructionList) -> InstructionList -> InstructionList
   13   optimize f (j@(JumpP _) : il) = j : f (dropWhile (not . isMark) il)
   14   optimize f (i : il)           = i : f il
   15   optimize _ []                 = []