aboutsummaryrefslogtreecommitdiffstats
path: root/src/synth
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-07-20 11:02:39 +0200
committerTristan Gingold <tgingold@free.fr>2019-07-20 11:02:39 +0200
commit7f2f55567c971b2478e84657ba701856109c56a9 (patch)
tree061e549fd7f994437c44ab3314422573c0bd743d /src/synth
parent817670af605bad21b3a872cb14b8d04b85b2d466 (diff)
downloadghdl-7f2f55567c971b2478e84657ba701856109c56a9.tar.gz
ghdl-7f2f55567c971b2478e84657ba701856109c56a9.tar.bz2
ghdl-7f2f55567c971b2478e84657ba701856109c56a9.zip
synth: add and merge phi within a function.
Diffstat (limited to 'src/synth')
-rw-r--r--src/synth/synth-expr.adb5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/synth/synth-expr.adb b/src/synth/synth-expr.adb
index 0f954eb0d..25efc8a56 100644
--- a/src/synth/synth-expr.adb
+++ b/src/synth/synth-expr.adb
@@ -35,6 +35,7 @@ with Synth.Errors; use Synth.Errors;
with Synth.Types; use Synth.Types;
with Synth.Stmts; use Synth.Stmts;
with Synth.Decls;
+with Synth.Environment; use Synth.Environment;
with Netlists.Gates; use Netlists.Gates;
with Netlists.Builders; use Netlists.Builders;
@@ -1477,6 +1478,8 @@ package body Synth.Expr is
Synth_Subprogram_Association
(Subprg_Inst, Syn_Inst, Inter_Chain, Assoc_Chain);
+ Push_Phi;
+
Decls.Synth_Declarations (Subprg_Inst, Get_Declaration_Chain (Bod));
Synth_Sequential_Statements
@@ -1484,6 +1487,8 @@ package body Synth.Expr is
Res := Subprg_Inst.Return_Value;
+ Pop_And_Merge_Phi (Build_Context, Bod);
+
Free_Instance (Subprg_Inst);
Areapools.Release (M, Instance_Pool.all);