@@ -392,6 +392,8 @@ data ClashOpts = ClashOpts
392392 , opt_renderEnums :: Bool
393393 -- ^ Render sum types with all zero-width fields as enums where supported, as
394394 -- opposed to rendering them as bitvectors.
395+ , opt_concurrentNormalization :: Bool
396+ -- ^ Toggle concurrent normalization (usually slower, faster on large designs)
395397 }
396398 deriving (Show )
397399
@@ -424,6 +426,7 @@ instance NFData ClashOpts where
424426 opt_inlineWFCacheLimit o `deepseq`
425427 opt_edalize o `deepseq`
426428 opt_renderEnums o `deepseq`
429+ opt_concurrentNormalization o `deepseq`
427430 ()
428431
429432instance Eq ClashOpts where
@@ -454,7 +457,8 @@ instance Eq ClashOpts where
454457 opt_aggressiveXOptBB s0 == opt_aggressiveXOptBB s1 &&
455458 opt_inlineWFCacheLimit s0 == opt_inlineWFCacheLimit s1 &&
456459 opt_edalize s0 == opt_edalize s1 &&
457- opt_renderEnums s0 == opt_renderEnums s1
460+ opt_renderEnums s0 == opt_renderEnums s1 &&
461+ opt_concurrentNormalization s0 == opt_concurrentNormalization s1
458462
459463 where
460464 eqOverridingBool :: OverridingBool -> OverridingBool -> Bool
@@ -492,7 +496,8 @@ instance Hashable ClashOpts where
492496 opt_aggressiveXOptBB `hashWithSalt`
493497 opt_inlineWFCacheLimit `hashWithSalt`
494498 opt_edalize `hashWithSalt`
495- opt_renderEnums
499+ opt_renderEnums `hashWithSalt`
500+ opt_concurrentNormalization
496501 where
497502 hashOverridingBool :: Int -> OverridingBool -> Int
498503 hashOverridingBool s1 Auto = hashWithSalt s1 (0 :: Int )
@@ -501,36 +506,36 @@ instance Hashable ClashOpts where
501506 infixl 0 `hashOverridingBool`
502507
503508defClashOpts :: ClashOpts
504- defClashOpts
505- = ClashOpts
506- { opt_werror = False
507- , opt_inlineLimit = 20
508- , opt_specLimit = 20
509- , opt_inlineFunctionLimit = 15
510- , opt_inlineConstantLimit = 0
511- , opt_evaluatorFuelLimit = 20
512- , opt_debug = debugNone
513- , opt_cachehdl = True
514- , opt_clear = False
515- , opt_primWarn = True
516- , opt_color = Auto
517- , opt_intWidth = WORD_SIZE_IN_BITS
518- , opt_hdlDir = Nothing
519- , opt_hdlSyn = Other
520- , opt_errorExtra = False
521- , opt_importPaths = []
522- , opt_componentPrefix = Nothing
523- , opt_newInlineStrat = True
524- , opt_escapedIds = True
525- , opt_lowerCaseBasicIds = PreserveCase
526- , opt_ultra = False
527- , opt_forceUndefined = Nothing
528- , opt_checkIDir = True
529- , opt_aggressiveXOpt = False
530- , opt_aggressiveXOptBB = False
531- , opt_inlineWFCacheLimit = 10 -- TODO: find "optimal" value
532- , opt_edalize = False
533- , opt_renderEnums = True
509+ defClashOpts = ClashOpts
510+ { opt_werror = False
511+ , opt_inlineLimit = 20
512+ , opt_specLimit = 20
513+ , opt_inlineFunctionLimit = 15
514+ , opt_inlineConstantLimit = 0
515+ , opt_evaluatorFuelLimit = 20
516+ , opt_debug = debugNone
517+ , opt_cachehdl = True
518+ , opt_clear = False
519+ , opt_primWarn = True
520+ , opt_color = Auto
521+ , opt_intWidth = WORD_SIZE_IN_BITS
522+ , opt_hdlDir = Nothing
523+ , opt_hdlSyn = Other
524+ , opt_errorExtra = False
525+ , opt_importPaths = []
526+ , opt_componentPrefix = Nothing
527+ , opt_newInlineStrat = True
528+ , opt_escapedIds = True
529+ , opt_lowerCaseBasicIds = PreserveCase
530+ , opt_ultra = False
531+ , opt_forceUndefined = Nothing
532+ , opt_checkIDir = True
533+ , opt_aggressiveXOpt = False
534+ , opt_aggressiveXOptBB = False
535+ , opt_inlineWFCacheLimit = 10 -- TODO: find "optimal" value
536+ , opt_edalize = False
537+ , opt_renderEnums = True
538+ , opt_concurrentNormalization = False
534539 }
535540
536541-- | Synopsys Design Constraint (SDC) information for a component.
0 commit comments