aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/translate/trans_be.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-15 13:23:36 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-15 13:23:36 +0200
commit0d82b72ca11cb249888356caec800ddd43a70c82 (patch)
tree32aff68491cf3ecf5b168736cb783f988af96ea1 /src/vhdl/translate/trans_be.adb
parent6130e048c1dc667684d16792e9439a95483cbeb3 (diff)
downloadghdl-0d82b72ca11cb249888356caec800ddd43a70c82.tar.gz
ghdl-0d82b72ca11cb249888356caec800ddd43a70c82.tar.bz2
ghdl-0d82b72ca11cb249888356caec800ddd43a70c82.zip
Finish_Compilation: factorize code, move to libraries.
Diffstat (limited to 'src/vhdl/translate/trans_be.adb')
-rw-r--r--src/vhdl/translate/trans_be.adb123
1 files changed, 0 insertions, 123 deletions
diff --git a/src/vhdl/translate/trans_be.adb b/src/vhdl/translate/trans_be.adb
index 2198d48da..9fac3a799 100644
--- a/src/vhdl/translate/trans_be.adb
+++ b/src/vhdl/translate/trans_be.adb
@@ -16,134 +16,12 @@
-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-- 02111-1307, USA.
with Iirs; use Iirs;
-with Nodes_Meta;
-with Iir_Chains;
-with Disp_Tree;
-with Disp_Vhdl;
-with Sem;
-with Canon;
with Translation;
with Errorout; use Errorout;
-with Post_Sems;
-with Flags;
with Ada.Text_IO;
with Back_End;
package body Trans_Be is
- procedure Finish_Compilation
- (Unit : Iir_Design_Unit; Main : Boolean := False)
- is
- use Ada.Text_IO;
- Lib_Unit : constant Iir := Get_Library_Unit (Unit);
- begin
- if (Main or Flags.Dump_All) and then Flags.Dump_Parse then
- Disp_Tree.Disp_Tree (Unit);
- end if;
-
- -- Semantic analysis.
- if Flags.Verbose then
- Report_Msg (Msgid_Note, Semantic, +Lib_Unit,
- "analyse %n", (1 => +Lib_Unit));
- end if;
- Sem.Semantic (Unit);
-
- if (Main or Flags.Dump_All) and then Flags.Dump_Sem then
- Disp_Tree.Disp_Tree (Unit);
- end if;
-
- if Errorout.Nbr_Errors > 0 then
- raise Compilation_Error;
- end if;
-
- if (Main or Flags.List_All) and then Flags.List_Sem then
- Disp_Vhdl.Disp_Vhdl (Unit);
- end if;
-
- -- Post checks
- ----------------
-
- Post_Sems.Post_Sem_Checks (Unit);
-
- if Errorout.Nbr_Errors > 0 then
- raise Compilation_Error;
- end if;
-
- -- Canonalisation.
- ------------------
- if Flags.Verbose then
- Report_Msg (Msgid_Note, Semantic, +Lib_Unit,
- "canonicalize %n", (1 => +Lib_Unit));
- end if;
-
- Canon.Canonicalize (Unit);
-
- -- FIXME: for Main only ?
- if Get_Kind (Lib_Unit) = Iir_Kind_Package_Declaration
- and then not Get_Need_Body (Lib_Unit)
- and then Get_Need_Instance_Bodies (Lib_Unit)
- then
- -- Create the bodies for instances
- Set_Package_Instantiation_Bodies_Chain
- (Lib_Unit,
- Canon.Create_Instantiation_Bodies (Lib_Unit, Lib_Unit));
- elsif Get_Kind (Lib_Unit) = Iir_Kind_Package_Body
- and then Get_Need_Instance_Bodies (Get_Package (Lib_Unit))
- then
- Iir_Chains.Append_Chain
- (Lib_Unit, Nodes_Meta.Field_Declaration_Chain,
- Canon.Create_Instantiation_Bodies (Get_Package (Lib_Unit),
- Lib_Unit));
- end if;
-
- if (Main or Flags.Dump_All) and then Flags.Dump_Canon then
- Disp_Tree.Disp_Tree (Unit);
- end if;
-
- if Errorout.Nbr_Errors > 0 then
- raise Compilation_Error;
- end if;
-
- if (Main or Flags.List_All) and then Flags.List_Canon then
- Disp_Vhdl.Disp_Vhdl (Unit);
- end if;
-
- if Flags.Flag_Elaborate then
- if Get_Kind (Lib_Unit) = Iir_Kind_Architecture_Body then
- declare
- Config : Iir_Design_Unit;
- begin
- Config :=
- Canon.Create_Default_Configuration_Declaration (Lib_Unit);
- Set_Default_Configuration_Declaration (Lib_Unit, Config);
- if (Main or Flags.Dump_All) and then Flags.Dump_Canon then
- Disp_Tree.Disp_Tree (Config);
- end if;
- if (Main or Flags.List_All) and then Flags.List_Canon then
- Disp_Vhdl.Disp_Vhdl (Config);
- end if;
- end;
- end if;
-
- -- Do not translate during elaboration.
- -- This is done directly in Translation.Chap12.
- return;
- end if;
-
- -- Translation
- ---------------
- if not Main then
- -- Main units (those from the analyzed design file) are translated
- -- directly by ortho_front.
-
- Translation.Translate (Unit, Main);
-
- if Errorout.Nbr_Errors > 0 then
- raise Compilation_Error;
- end if;
- end if;
-
- end Finish_Compilation;
-
procedure Sem_Foreign (Decl : Iir)
is
use Translation;
@@ -190,7 +68,6 @@ package body Trans_Be is
procedure Register_Translation_Back_End is
begin
- Back_End.Finish_Compilation := Finish_Compilation'Access;
Back_End.Sem_Foreign := Sem_Foreign'Access;
Back_End.Parse_Option := Parse_Option'Access;
Back_End.Disp_Option := Disp_Option'Access;