diff options
| author | jackkoenig | 2015-10-30 16:36:04 -0700 |
|---|---|---|
| committer | jackkoenig | 2015-10-30 16:36:04 -0700 |
| commit | d715e65b8de4823621b072065b746730d712d2a4 (patch) | |
| tree | 5da801428a69148c3db26d9b9a7a6927743a3c35 /src/main/stanza/passes.stanza | |
| parent | 852b241e274edd888499b520d320945794a26e24 (diff) | |
Added support for -b <backend> so that specific passes can be run then a backend can be applied. Added firrtl compiler for emitting firrtl
Diffstat (limited to 'src/main/stanza/passes.stanza')
| -rw-r--r-- | src/main/stanza/passes.stanza | 73 |
1 files changed, 53 insertions, 20 deletions
diff --git a/src/main/stanza/passes.stanza b/src/main/stanza/passes.stanza index f2931bc8..b9e53bc5 100644 --- a/src/main/stanza/passes.stanza +++ b/src/main/stanza/passes.stanza @@ -6,30 +6,62 @@ defpackage firrtl/passes : import firrtl/primops import firrtl-main import firrtl/errors + import firrtl/verilog + import firrtl/firrtl import bigint2 ;============== Pass List ================ public val standard-passes = to-list $ [ - CheckHighForm() - TempElimination() - ToWorkingIR() - ResolveKinds() - CheckKinds() - InferTypes() - CheckTypes() - ResolveGenders() - CheckGenders() - ExpandAccessors() - LowerToGround() - ;ExpandIndexedConnects() - InlineIndexed() - ExpandWhens() - InferWidths() - Inline() - SplitExp() - CheckLowForm() - ToRealIR() - Pad() ] + RemoveSpecialChars() ;R + ;RemoveScopes() ;R + CheckHighForm() ;R + TempElimination() ;R + ToWorkingIR() ;R -> W + ResolveKinds() ;W + InferTypes() ;R + ResolveGenders() ;W + CheckGenders() ;W + CheckKinds() ;W + CheckTypes() ;R + ExpandAccessors() ;W + LowerToGround() ;W + ;ExpandIndexedConnects() ;W + InlineIndexed() + InferTypes() ;R + CheckGenders() ;W + ExpandWhens() ;W + InferWidths() ;R + ToRealIR() ;W -> R + CheckWidths() ;R + Pad() ;R + ConstProp() ;R + SplitExp() ;R + CheckWidths() ;R + CheckHighForm() ;R + CheckLowForm() ;R + CheckInitialization() ;R + ] + + ;CheckHighForm() + ;TempElimination() + ;ToWorkingIR() + ;ResolveKinds() + ;CheckKinds() + ;InferTypes() + ;CheckTypes() + ;ResolveGenders() + ;CheckGenders() + ;ExpandAccessors() + ;LowerToGround() + ;;ExpandIndexedConnects() + ;InlineIndexed() + ;ExpandWhens() + ;InferWidths() + ;Inline() + ;SplitExp() + ;CheckLowForm() + ;ToRealIR() + ;Pad() ] ;=============== WORKING IR ================================ public definterface Kind public defstruct WireKind <: Kind @@ -2466,6 +2498,7 @@ public defn special-rename (original-sym:Symbol,new-sym:Symbol,c:Circuit) : public defstruct Pad <: Pass public defmethod pass (b:Pad) -> (Circuit -> Circuit) : pad-widths public defmethod name (b:Pad) -> String : "Pad Widths" +public defmethod short-name (b:Pad) -> String : "pad-widths" ;------------ Helper Functions -------------- defn int-width! (t:Type) -> Long : |
