@@ -392,6 +392,8 @@ data ClashOpts = ClashOpts
392
392
, opt_renderEnums :: Bool
393
393
-- ^ Render sum types with all zero-width fields as enums where supported, as
394
394
-- opposed to rendering them as bitvectors.
395
+ , opt_concurrentNormalization :: Bool
396
+ -- ^ Toggle concurrent normalization (usually slower, faster on large designs)
395
397
}
396
398
deriving (Show )
397
399
@@ -424,6 +426,7 @@ instance NFData ClashOpts where
424
426
opt_inlineWFCacheLimit o `deepseq`
425
427
opt_edalize o `deepseq`
426
428
opt_renderEnums o `deepseq`
429
+ opt_concurrentNormalization o `deepseq`
427
430
()
428
431
429
432
instance Eq ClashOpts where
@@ -454,7 +457,8 @@ instance Eq ClashOpts where
454
457
opt_aggressiveXOptBB s0 == opt_aggressiveXOptBB s1 &&
455
458
opt_inlineWFCacheLimit s0 == opt_inlineWFCacheLimit s1 &&
456
459
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
458
462
459
463
where
460
464
eqOverridingBool :: OverridingBool -> OverridingBool -> Bool
@@ -492,7 +496,8 @@ instance Hashable ClashOpts where
492
496
opt_aggressiveXOptBB `hashWithSalt`
493
497
opt_inlineWFCacheLimit `hashWithSalt`
494
498
opt_edalize `hashWithSalt`
495
- opt_renderEnums
499
+ opt_renderEnums `hashWithSalt`
500
+ opt_concurrentNormalization
496
501
where
497
502
hashOverridingBool :: Int -> OverridingBool -> Int
498
503
hashOverridingBool s1 Auto = hashWithSalt s1 (0 :: Int )
@@ -501,36 +506,36 @@ instance Hashable ClashOpts where
501
506
infixl 0 `hashOverridingBool`
502
507
503
508
defClashOpts :: 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
534
539
}
535
540
536
541
-- | Synopsys Design Constraint (SDC) information for a component.
0 commit comments