diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-05-04 06:14:30 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-05-04 19:04:11 +0200 |
commit | 210c497e86d6dff0337114b013e0c3a8066dee72 (patch) | |
tree | 84dff6efad5f1ecdc89a7a15d93f4ebb6edef858 /src | |
parent | 6ff7ef51aec7c1d653dab142aa0e5cda170e9f29 (diff) | |
download | ghdl-210c497e86d6dff0337114b013e0c3a8066dee72.tar.gz ghdl-210c497e86d6dff0337114b013e0c3a8066dee72.tar.bz2 ghdl-210c497e86d6dff0337114b013e0c3a8066dee72.zip |
synth: remove Global_Context (cleanup).
Diffstat (limited to 'src')
-rw-r--r-- | src/synth/synth-aggr.adb | 2 | ||||
-rw-r--r-- | src/synth/synth-context.adb | 8 | ||||
-rw-r--r-- | src/synth/synth-context.ads | 3 | ||||
-rw-r--r-- | src/synth/synth-expr.adb | 13 | ||||
-rw-r--r-- | src/synth/synth-expr.ads | 3 | ||||
-rw-r--r-- | src/synth/synth-insts.adb | 2 | ||||
-rw-r--r-- | src/synth/synth-oper.adb | 20 | ||||
-rw-r--r-- | src/synth/synth-stmts.adb | 2 |
8 files changed, 27 insertions, 26 deletions
diff --git a/src/synth/synth-aggr.adb b/src/synth/synth-aggr.adb index 6840734ca..69b20dd8f 100644 --- a/src/synth/synth-aggr.adb +++ b/src/synth/synth-aggr.adb @@ -377,7 +377,7 @@ package body Synth.Aggr is Arr (Idx) := Get_Net (Ctxt, Tab (I)); end if; end loop; - Concat_Array (Arr (1 .. Idx), Res); + Concat_Array (Ctxt, Arr (1 .. Idx), Res); Free_Net_Array (Arr); return Res; end Valtyp_Array_To_Net; diff --git a/src/synth/synth-context.adb b/src/synth/synth-context.adb index 0893e9c7c..0362a0a25 100644 --- a/src/synth/synth-context.adb +++ b/src/synth/synth-context.adb @@ -37,13 +37,13 @@ package body Synth.Context is Base : Base_Instance_Acc; Top_Module : Module; Res : Synth_Instance_Acc; + Ctxt : Context_Acc; begin Top_Module := New_Design (New_Sname_Artificial (Get_Identifier ("top"), No_Sname)); - pragma Assert (Build_Context = null); - Build_Context := Build_Builders (Top_Module); + Ctxt := Build_Builders (Top_Module); - Base := new Base_Instance_Type'(Builder => Build_Context, + Base := new Base_Instance_Type'(Builder => Ctxt, Top_Module => Top_Module, Cur_Module => No_Module); @@ -65,7 +65,7 @@ package body Synth.Context is procedure Free_Base_Instance is begin -- TODO: really free. - Build_Context := null; + null; end Free_Base_Instance; function Make_Instance (Parent : Synth_Instance_Acc; diff --git a/src/synth/synth-context.ads b/src/synth/synth-context.ads index 2c7dd78ae..02b51c8c8 100644 --- a/src/synth/synth-context.ads +++ b/src/synth/synth-context.ads @@ -37,9 +37,6 @@ package Synth.Context is type Synth_Instance_Type (<>) is limited private; type Synth_Instance_Acc is access Synth_Instance_Type; - -- Global context. - Build_Context : Context_Acc; - function Get_Instance_By_Scope (Syn_Inst: Synth_Instance_Acc; Scope: Sim_Info_Acc) return Synth_Instance_Acc; diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb index 6e4fd031b..bccb022fd 100644 --- a/src/synth/synth-expr.adb +++ b/src/synth/synth-expr.adb @@ -375,7 +375,7 @@ package body Synth.Expr is end if; end Synth_Resize; - procedure Concat_Array (Arr : in out Net_Array) + procedure Concat_Array (Ctxt : Context_Acc; Arr : in out Net_Array) is Last : Int32; Idx, New_Idx : Int32; @@ -393,15 +393,15 @@ package body Synth.Expr is Idx := Idx + 1; elsif Idx + 1 = Last then Arr (New_Idx) := Build_Concat2 - (Build_Context, Arr (Idx), Arr (Idx + 1)); + (Ctxt, Arr (Idx), Arr (Idx + 1)); Idx := Idx + 2; elsif Idx + 2 = Last then Arr (New_Idx) := Build_Concat3 - (Build_Context, Arr (Idx), Arr (Idx + 1), Arr (Idx + 2)); + (Ctxt, Arr (Idx), Arr (Idx + 1), Arr (Idx + 2)); Idx := Idx + 3; else Arr (New_Idx) := Build_Concat4 - (Build_Context, + (Ctxt, Arr (Idx), Arr (Idx + 1), Arr (Idx + 2), Arr (Idx + 3)); Idx := Idx + 4; end if; @@ -410,9 +410,10 @@ package body Synth.Expr is end loop; end Concat_Array; - procedure Concat_Array (Arr : in out Net_Array; N : out Net) is + procedure Concat_Array + (Ctxt : Context_Acc; Arr : in out Net_Array; N : out Net) is begin - Concat_Array (Arr); + Concat_Array (Ctxt, Arr); N := Arr (Arr'First); end Concat_Array; diff --git a/src/synth/synth-expr.ads b/src/synth/synth-expr.ads index 73287b49e..e54e0c7b8 100644 --- a/src/synth/synth-expr.ads +++ b/src/synth/synth-expr.ads @@ -70,7 +70,8 @@ package Synth.Expr is function Synth_Clock_Edge (Syn_Inst : Synth_Instance_Acc; Left, Right : Node) return Net; - procedure Concat_Array (Arr : in out Net_Array; N : out Net); + procedure Concat_Array + (Ctxt : Context_Acc; Arr : in out Net_Array; N : out Net); -- Synthesize EXPR. The expression must be self-constrained. -- If EN is not No_Net, the execution is controlled by EN. This is used diff --git a/src/synth/synth-insts.adb b/src/synth/synth-insts.adb index 572ccf5ac..060defa32 100644 --- a/src/synth/synth-insts.adb +++ b/src/synth/synth-insts.adb @@ -1380,7 +1380,7 @@ package body Synth.Insts is declare Io_Inst : Instance; begin - Io_Inst := Builders.Build_Inout (Build_Context, Desc.W); + Io_Inst := Builders.Build_Inout (Ctxt, Desc.W); -- Connect port1 of gate inout to the pin. Connect (Inp, Get_Output (Io_Inst, 1)); -- And port0 of the gate will be use to read from the pin. diff --git a/src/synth/synth-oper.adb b/src/synth/synth-oper.adb index 7944ba3b2..760ef8fd5 100644 --- a/src/synth/synth-oper.adb +++ b/src/synth/synth-oper.adb @@ -43,9 +43,10 @@ package body Synth.Oper is procedure Set_Location (N : Net; Loc : Node) renames Synth.Source.Set_Location; - function Synth_Uresize (N : Net; W : Width; Loc : Node) return Net is + function Synth_Uresize + (Ctxt : Context_Acc; N : Net; W : Width; Loc : Node) return Net is begin - return Build2_Uresize (Build_Context, N, W, Get_Location (Loc)); + return Build2_Uresize (Ctxt, N, W, Get_Location (Loc)); end Synth_Uresize; function Synth_Uresize @@ -64,7 +65,7 @@ package body Synth.Oper is Set_Location (Res, Loc); return Res; end if; - return Synth_Uresize (Get_Net (Ctxt, Val), W, Loc); + return Synth_Uresize (Ctxt, Get_Net (Ctxt, Val), W, Loc); end Synth_Uresize; function Synth_Sresize @@ -74,7 +75,7 @@ package body Synth.Oper is begin if Is_Static (Val.Val) and then Val.Typ.Kind = Type_Discrete then if Val.Typ.Drange.Is_Signed then - Res := Build2_Const_Int (Build_Context, Read_Discrete (Val), W); + Res := Build2_Const_Int (Ctxt, Read_Discrete (Val), W); else -- TODO. raise Internal_Error; @@ -997,7 +998,7 @@ package body Synth.Oper is L := Synth_Uresize (Ctxt, Left, W, Left_Expr); R := Synth_Uresize (Ctxt, Right, W, Right_Expr); Rtype := Create_Vec_Type_By_Length (W, Left.Typ.Vec_El); - N := Build_Dyadic (Build_Context, Id_Umul, L, R); + N := Build_Dyadic (Ctxt, Id_Umul, L, R); Set_Location (N, Expr); return Create_Value_Net (N, Rtype); end; @@ -1042,7 +1043,7 @@ package body Synth.Oper is L := Synth_Uresize (Ctxt, Left, W, Left_Expr); R := Synth_Sresize (Ctxt, Right, W, Right_Expr); Rtype := Create_Vec_Type_By_Length (W, Left.Typ.Vec_El); - N := Build_Dyadic (Build_Context, Id_Smul, L, R); + N := Build_Dyadic (Ctxt, Id_Smul, L, R); Set_Location (N, Expr); return Create_Value_Net (N, Rtype); end; @@ -1303,7 +1304,7 @@ package body Synth.Oper is Bnd : Bound_Type; N : Net; begin - N := Build_Concat2 (Build_Context, L, R); + N := Build_Concat2 (Ctxt, L, R); Set_Location (N, Expr); Bnd := Create_Bounds_From_Length (Syn_Inst, @@ -1606,7 +1607,8 @@ package body Synth.Oper is | Iir_Predefined_Ieee_Std_Logic_Unsigned_Conv_Integer => -- UNSIGNED to Natural. return Create_Value_Net - (Synth_Uresize (Get_Net (Ctxt, L), Res_Typ.W, Expr), Res_Typ); + (Synth_Uresize (Ctxt, Get_Net (Ctxt, L), Res_Typ.W, Expr), + Res_Typ); when Iir_Predefined_Ieee_Numeric_Std_Toint_Sgn_Int => -- SIGNED to Integer. return Create_Value_Net @@ -1622,7 +1624,7 @@ package body Synth.Oper is end if; W := Uns32 (Read_Discrete (R)); return Create_Value_Net - (Synth_Uresize (Get_Net (Ctxt, L), W, Expr), + (Synth_Uresize (Ctxt, Get_Net (Ctxt, L), W, Expr), Create_Vec_Type_By_Length (W, Logic_Type)); end; when Iir_Predefined_Ieee_Numeric_Std_Resize_Sgn_Nat diff --git a/src/synth/synth-stmts.adb b/src/synth/synth-stmts.adb index 59a2ed0e1..823598b1f 100644 --- a/src/synth/synth-stmts.adb +++ b/src/synth/synth-stmts.adb @@ -3149,7 +3149,7 @@ package body Synth.Stmts is D_Arr (Nbr_States - 1) := Build_Const_UB32 (Ctxt, 0, 1); end if; - Concat_Array (D_Arr.all, Res); + Concat_Array (Ctxt, D_Arr.all, Res); Free_Net_Array (D_Arr); return Res; |