never executed always true always false
1 {- |
2 Module : NITTA.Synthesis.Steps
3 Description : Synthesis tree representation
4 Copyright : (c) Aleksandr Penskoi, 2022
5 License : BSD3
6 Maintainer : aleksandr.penskoi@gmail.com
7 Stability : experimental
8 -}
9 module NITTA.Synthesis.Steps (
10 module NITTA.Synthesis.Steps.Allocation,
11 module NITTA.Synthesis.Steps.Bind,
12 module NITTA.Synthesis.Steps.Dataflow,
13 module NITTA.Synthesis.Steps.BreakLoop,
14 module NITTA.Synthesis.Steps.OptimizeAccum,
15 module NITTA.Synthesis.Steps.OptimizeLogicalUnit,
16 module NITTA.Synthesis.Steps.ResolveDeadlock,
17 module NITTA.Synthesis.Steps.ConstantFolding,
18 isRefactor,
19 ) where
20
21 import Data.Maybe (isJust)
22 import Data.Typeable (cast)
23 import NITTA.Synthesis.Steps.Allocation
24 import NITTA.Synthesis.Steps.Bind
25 import NITTA.Synthesis.Steps.BreakLoop
26 import NITTA.Synthesis.Steps.ConstantFolding
27 import NITTA.Synthesis.Steps.Dataflow
28 import NITTA.Synthesis.Steps.OptimizeAccum
29 import NITTA.Synthesis.Steps.OptimizeLogicalUnit
30 import NITTA.Synthesis.Steps.ResolveDeadlock
31 import NITTA.Synthesis.Types (SynthesisDecision (SynthesisDecision, metrics))
32
33 isRefactor SynthesisDecision{metrics}
34 | isJust (cast metrics :: Maybe BreakLoopMetrics) = True
35 | isJust (cast metrics :: Maybe OptimizeAccumMetrics) = True
36 | isJust (cast metrics :: Maybe OptimizeLogicalUnitMetrics) = True
37 | isJust (cast metrics :: Maybe ResolveDeadlockMetrics) = True
38 | isJust (cast metrics :: Maybe ConstantFoldingMetrics) = True
39 isRefactor _ = False