diff options
author | Tristan Gingold <tgingold@free.fr> | 2020-06-19 07:30:24 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2020-06-19 07:31:14 +0200 |
commit | 18a71a430a7cfc460e9b013b37465ba7a9e32b1e (patch) | |
tree | 70f087d599cf9db81bf929c82b182b361937ad53 /src/ortho/llvm6/ortho_llvm.ads | |
parent | b07491996ae541300a1e2c82a5ccfd9414023bc6 (diff) | |
download | ghdl-18a71a430a7cfc460e9b013b37465ba7a9e32b1e.tar.gz ghdl-18a71a430a7cfc460e9b013b37465ba7a9e32b1e.tar.bz2 ghdl-18a71a430a7cfc460e9b013b37465ba7a9e32b1e.zip |
llvm6: add generation of more debug info, improve compatibility
Diffstat (limited to 'src/ortho/llvm6/ortho_llvm.ads')
-rw-r--r-- | src/ortho/llvm6/ortho_llvm.ads | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/src/ortho/llvm6/ortho_llvm.ads b/src/ortho/llvm6/ortho_llvm.ads index f73c5921d..f3634a5c8 100644 --- a/src/ortho/llvm6/ortho_llvm.ads +++ b/src/ortho/llvm6/ortho_llvm.ads @@ -34,6 +34,9 @@ package Ortho_LLVM is procedure Set_Optimization_Level (Level : Natural); pragma Import (C, Set_Optimization_Level); + procedure Set_Debug_Level (Level : Natural); + pragma Import (C, Set_Debug_Level); + procedure Set_Dump_LLVM (Flag : Natural); pragma Import (C, Set_Dump_LLVM); @@ -530,16 +533,6 @@ private O_Tnode_Null : constant O_Tnode := null; - type O_Inter; - type O_Inter_Acc is access O_Inter; - type O_Inter is record - Ival : ValueRef; - Ident : O_Ident; - Itype : O_Tnode; - Next : O_Inter_Acc; - end record; - pragma Convention (C, O_Inter); - type O_Dnode is access Opaque_Type; pragma Convention (C, O_Dnode); @@ -640,30 +633,20 @@ private O_Snode_Null : constant O_Snode := (Null_BasicBlockRef, Null_BasicBlockRef); + type Opaque_Acc is access Opaque_Type; + type O_Inter_List is record Ident : O_Ident; Storage : O_Storage; Res_Type : O_Tnode; - Nbr_Inter : Natural; - First_Inter, Last_Inter : O_Inter_Acc; + + -- Vector of interfaces. + Inters : Opaque_Acc; end record; pragma Convention (C, O_Inter_List); - type O_Element; - type O_Element_Acc is access O_Element; - pragma Convention (C, O_Element_Acc); - - type O_Element is record - -- Identifier for the element - Ident : O_Ident; - - -- Type of the element - Etype : O_Tnode; - - -- Next element (in the linked list) - Next : O_Element_Acc; - end record; - pragma Convention (C, O_Element); + type O_Element_Vec is access Opaque_Type; + pragma Convention (C, O_Element_Vec); -- Record and union builder. type O_Element_List is record @@ -680,7 +663,7 @@ private Align : Unsigned_32; Align_Type : TypeRef; - First_Elem, Last_Elem : O_Element_Acc; + Els : O_Element_Vec; end record; pragma Convention (C, O_Element_List); @@ -723,6 +706,7 @@ private LLVM : TypeRef; Num : Natural; Etype : O_Tnode; + Dbg : ValueRefArray_Acc; end record; type O_Choice_Type is record |