rpms/ghdl/devel ghdl-svn73.patch, NONE, 1.1 ghdl.spec, 1.25, 1.26 ghdl-svn61.patch, 1.1, NONE ghdl-svn71.patch, 1.2, NONE

Thomas M. Sailer (sailer) fedora-extras-commits at redhat.com
Thu Oct 5 23:30:43 UTC 2006


Author: sailer

Update of /cvs/extras/rpms/ghdl/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv6690

Modified Files:
	ghdl.spec 
Added Files:
	ghdl-svn73.patch 
Removed Files:
	ghdl-svn61.patch ghdl-svn71.patch 
Log Message:
update to svn73


ghdl-svn73.patch:

--- NEW FILE ghdl-svn73.patch ---
diff -urN ghdl-0.25/vhdl/back_end.ads ghdl-0.26dev/vhdl/back_end.ads
--- ghdl-0.25/vhdl/back_end.ads	2005-09-22 23:07:25.000000000 +0200
+++ ghdl-0.26dev/vhdl/back_end.ads	2006-10-05 11:35:25.000000000 +0200
@@ -29,6 +29,14 @@
    Library_To_File_Name : Library_To_File_Name_Acc :=
      Default_Library_To_File_Name'Access;
 
+   --  Back-end options.
+   type Parse_Option_Acc is access function (Opt : String) return Boolean;
+   Parse_Option : Parse_Option_Acc := null;
+
+   --  Disp back-end option help.
+   type Disp_Option_Acc is access procedure;
+   Disp_Option : Disp_Option_Acc := null;
+
    --  UNIT is a design unit from parse.
    --  According to the current back-end, do what is necessary.
    --
@@ -46,8 +54,5 @@
    --  May be NULL for no additionnal checks.
    type Sem_Foreign_Acc is access procedure (Decl : Iir);
    Sem_Foreign : Sem_Foreign_Acc := null;
-
-   --procedure Finish_Compilation
-   --  (Unit : Iir_Design_Unit; Main : Boolean := False);
 end Back_End;
 
diff -urN ghdl-0.25/vhdl/bug.adb ghdl-0.26dev/vhdl/bug.adb
--- ghdl-0.25/vhdl/bug.adb	2005-11-18 02:34:12.000000000 +0100
+++ ghdl-0.26dev/vhdl/bug.adb	2006-10-05 11:35:25.000000000 +0200
@@ -70,7 +70,7 @@
       Put_Line
         (Standard_Error,
          "Please report this bug on http://gna.org/projects/ghdl");
-      Put_Line (Standard_Error, "GHDL version: " & Ghdl_Version);
+      Put_Line (Standard_Error, "GHDL release: " & Ghdl_Release);
       Put_Line (Standard_Error, "Compiled with " & Get_Gnat_Version);
       Put_Line (Standard_Error, "In directory: " &
                 GNAT.Directory_Operations.Get_Current_Dir);
diff -urN ghdl-0.25/vhdl/canon.adb ghdl-0.26dev/vhdl/canon.adb
--- ghdl-0.25/vhdl/canon.adb	2006-07-29 06:42:30.000000000 +0200
+++ ghdl-0.26dev/vhdl/canon.adb	2006-10-05 11:35:25.000000000 +0200
@@ -847,22 +847,6 @@
       end loop;
    end Canon_Sequential_Stmts;
 
-   procedure Add_Driver_For_Signal (Driver_List : Iir_List;
-                                    Signal : Iir)
-   is
-      Choice : Iir;
-   begin
-      if Get_Kind (Signal) = Iir_Kind_Aggregate then
-         Choice := Get_Association_Choices_Chain (Signal);
-         while Choice /= Null_Iir loop
-            Add_Driver_For_Signal (Driver_List, Get_Associated (Choice));
-            Choice := Get_Chain (Choice);
-         end loop;
-      else
-         Add_Element (Driver_List, Get_Longuest_Static_Prefix (Signal));
-      end if;
-   end Add_Driver_For_Signal;
-
    -- Create a statement transform from concurrent_signal_assignment
    -- statement STMT (either selected or conditional).
    -- waveform transformation is not done.
@@ -895,9 +879,6 @@
       --      reserved word POSTPONED.
       Set_Postponed_Flag (Proc, Get_Postponed_Flag (Proc));
 
-      Set_Driver_List (Proc, Create_Iir_List);
-      Add_Driver_For_Signal (Get_Driver_List (Proc), Get_Target (Stmt));
-
       Canon_Extract_Sensitivity (Get_Target (Stmt), Sensitivity_List, True);
 
       if Canon_Flag_Expressions then
@@ -966,7 +947,6 @@
       Assoc_Chain : Iir;
       Assoc : Iir;
       Imp : Iir;
-      Driver_List : Iir_Driver_List;
       Inter : Iir;
       Sensitivity_List : Iir_List;
       Is_Sensitized : Boolean;
@@ -1014,7 +994,6 @@
          Get_Parameter_Association_Chain (Call),
          Call);
       Set_Parameter_Association_Chain (Call, Assoc_Chain);
-      Driver_List := Null_Iir_List;
       Assoc := Assoc_Chain;
 
       --  LRM93 9.3
@@ -1034,18 +1013,6 @@
                   Canon_Extract_Sensitivity
                     (Get_Actual (Assoc), Sensitivity_List, False);
                end if;
-               --  LRM 2.1.1.2 Signal Parameters
-               if Get_Kind (Inter) = Iir_Kind_Signal_Interface_Declaration
-                 and then Get_Mode (Inter) in Iir_Out_Modes
-               then
-                  if Driver_List = Null_Iir_List then
-                     Driver_List := Create_Iir_List;
-                     Set_Driver_List (Proc, Driver_List);
-                  end if;
-                  Add_Element
-                    (Driver_List,
-                     Get_Longuest_Static_Prefix (Get_Actual (Assoc)));
-               end if;
             when Iir_Kind_Association_Element_Open
               | Iir_Kind_Association_Element_By_Individual =>
                null;
diff -urN ghdl-0.25/vhdl/disp_tree.adb ghdl-0.26dev/vhdl/disp_tree.adb
--- ghdl-0.25/vhdl/disp_tree.adb	2005-10-26 14:31:21.000000000 +0200
+++ ghdl-0.26dev/vhdl/disp_tree.adb	2006-10-05 11:35:25.000000000 +0200
@@ -1023,8 +1023,6 @@
             Disp_Depth (Get_Subprogram_Depth (Tree));
             Header ("subprogram_body:");
             Disp_Tree_Flat (Get_Subprogram_Body (Tree), Ntab);
-            Header ("driver list:");
-            Disp_Tree_List (Get_Driver_List (Tree), Ntab, True);
             Header ("attribute_value_chain:");
             Disp_Tree_Flat_Chain (Get_Attribute_Value_Chain (Tree), Ntab);
          when Iir_Kind_Procedure_Body
@@ -1423,8 +1421,6 @@
                Header ("sensivity list:");
                Disp_Tree_List (Get_Sensitivity_List (Tree), Ntab, True);
             end if;
-            Header ("driver list:");
-            Disp_Tree_List (Get_Driver_List (Tree), Ntab, True);
             Header ("declaration_chain:");
             Disp_Tree_Chain (Get_Declaration_Chain (Tree), Ntab);
             Header ("process statements:");
diff -urN ghdl-0.25/vhdl/disp_vhdl.adb ghdl-0.26dev/vhdl/disp_vhdl.adb
--- ghdl-0.25/vhdl/disp_vhdl.adb	2006-07-09 03:55:28.000000000 +0200
+++ ghdl-0.26dev/vhdl/disp_vhdl.adb	2006-10-05 11:35:25.000000000 +0200
@@ -893,25 +893,6 @@
       Put_Line (";");
    end Disp_Object_Declaration;
 
-   procedure Disp_Driver_List (List: Iir_Driver_List; Indent : Count)
-   is
-      El: Iir;
-   begin
-      if List = Null_Iir_List or else Get_Nbr_Elements (List) = 0 then
-         return;
-      end if;
-      Set_Col (Indent);
-      Put_Line ("-- drivers needed for signals:");
-      for I in Natural loop
-         El := Get_Nth_Element (List, I);
-         exit when El = Null_Iir;
-         Set_Col (Indent);
-         Put ("--   ");
-         Disp_Expression (El);
-         New_Line;
-      end loop;
-   end Disp_Driver_List;
-
    procedure Disp_Subprogram_Declaration (Subprg: Iir)
    is
       Indent: Count;
@@ -943,10 +924,6 @@
          when others =>
             raise Internal_Error;
       end case;
-
-      if Get_Kind (Subprg) = Iir_Kind_Procedure_Declaration then
-         Disp_Driver_List (Get_Driver_List (Subprg), Indent);
-      end if;
    end Disp_Subprogram_Declaration;
 
    procedure Disp_Subprogram_Body (Subprg : Iir)
@@ -1517,7 +1494,6 @@
       else
          New_Line;
       end if;
-      Disp_Driver_List (Get_Driver_List (Process), Start + Indentation);
       Disp_Declaration_Chain (Process, Start + Indentation);
       Set_Col (Start);
       Put_Line ("begin");
@@ -2312,10 +2288,10 @@
             Disp_Concurrent_Conditional_Signal_Assignment (An_Iir);
          when Iir_Kinds_Dyadic_Operator =>
             Disp_Dyadic_Operator (An_Iir);
-         when Iir_Kind_Signal_Interface_Declaration =>
+         when Iir_Kind_Signal_Interface_Declaration
+           | Iir_Kind_Signal_Declaration
+           | Iir_Kind_Object_Alias_Declaration =>
             Disp_Name_Of (An_Iir);
-         when Iir_Kind_Signal_Declaration =>
-            Disp_Identifier (An_Iir);
          when Iir_Kind_Enumeration_Literal =>
             Disp_Identifier (An_Iir);
          when Iir_Kind_Component_Instantiation_Statement =>
@@ -2330,8 +2306,11 @@
             Disp_Package_Declaration (An_Iir);
          when Iir_Kind_Wait_Statement =>
             Disp_Wait_Statement (An_Iir);
-         when Iir_Kind_Selected_Name =>
-            Disp_Name (An_Iir);
[...4286 lines suppressed...]
+         end if;
+         return Create_Var_Identifier_From_Buffer (L);
       end Create_Var_Identifier;
 
       function Create_Uniq_Identifier return Var_Ident_Type
@@ -22728,19 +23323,6 @@
          end case;
       end Translate_Succ_Pred_Attribute;
 
-      --  Read the boolean attribute (active or event) FIELD of simple signal
-      --  SIG.
-      function Read_Bool_Signal_Attribute (Sig : O_Enode; Field : O_Fnode)
-                                          return O_Enode
-      is
-         S : O_Enode;
-      begin
-         S := New_Convert_Ov (Sig, Ghdl_Signal_Ptr);
-         return New_Value
-           (New_Selected_Element (New_Access_Element (S), Field));
-         --Ghdl_Signal_Event_Node));
-      end Read_Bool_Signal_Attribute;
-
       type Bool_Sigattr_Data_Type is record
          Label : O_Snode;
          Field : O_Fnode;
@@ -22752,8 +23334,7 @@
          pragma Unreferenced (Targ_Type);
       begin
          Gen_Exit_When (Data.Label,
-                        Read_Bool_Signal_Attribute (New_Value (M2Lv (Targ)),
-                                                    Data.Field));
+                        New_Value (Get_Signal_Field (Targ, Data.Field)));
       end Bool_Sigattr_Non_Composite_Signal;
 
       function Bool_Sigattr_Prepare_Data_Composite
@@ -22819,7 +23400,7 @@
          if Get_Kind (Prefix_Type) in Iir_Kinds_Scalar_Type_Definition then
             --  Effecient handling for a scalar signal.
             Name := Chap6.Translate_Name (Prefix);
-            return Read_Bool_Signal_Attribute (New_Value (M2Lv (Name)), Field);
+            return New_Value (Get_Signal_Field (Name, Field));
          else
             --  Element per element handling for composite signals.
             Res := Create_Temp (Std_Boolean_Type_Node);
@@ -22839,13 +23420,14 @@
 
       function Translate_Event_Attribute (Attr : Iir) return O_Enode is
       begin
-         return Translate_Bool_Signal_Attribute (Attr, Ghdl_Signal_Event_Node);
+         return Translate_Bool_Signal_Attribute
+           (Attr, Ghdl_Signal_Event_Field);
       end Translate_Event_Attribute;
 
       function Translate_Active_Attribute (Attr : Iir) return O_Enode is
       begin
          return Translate_Bool_Signal_Attribute
-           (Attr, Ghdl_Signal_Active_Node);
+           (Attr, Ghdl_Signal_Active_Field);
       end Translate_Active_Attribute;
 
       --  Read signal value FIELD of signal SIG.
@@ -22862,11 +23444,20 @@
            (New_Unchecked_Address (New_Selected_Element (T, Field), S_Type));
       end Get_Signal_Value_Field;
 
+      function Get_Signal_Field (Sig : Mnode; Field : O_Fnode)
+                                return O_Lnode
+      is
+         S : O_Enode;
+      begin
+         S := New_Convert_Ov (New_Value (M2Lv (Sig)), Ghdl_Signal_Ptr);
+         return New_Selected_Element (New_Access_Element (S), Field);
+      end Get_Signal_Field;
+
       function Read_Last_Value (Sig : O_Enode; Sig_Type : Iir) return O_Enode
       is
       begin
          return New_Value (Get_Signal_Value_Field
-                           (Sig, Sig_Type, Ghdl_Signal_Last_Value_Node));
+                           (Sig, Sig_Type, Ghdl_Signal_Last_Value_Field));
       end Read_Last_Value;
 
       function Translate_Last_Value is new Chap7.Translate_Signal_Value
@@ -27031,39 +27622,53 @@
         (Chararray_Type, New_Unsigned_Literal (Ghdl_Index_Type, 8));
       New_Type_Decl (Get_Identifier ("__ghdl_scalar_bytes"),
                      Ghdl_Scalar_Bytes);
+
+      Ghdl_Signal_Ptr := New_Access_Type (O_Tnode_Null);
+      New_Type_Decl (Get_Identifier ("__ghdl_signal_ptr"), Ghdl_Signal_Ptr);
+
       --  Type __signal_signal is record
       Start_Record_Type (Rec);
-      New_Record_Field (Rec, Ghdl_Signal_Value_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Value_Field,
                         Get_Identifier ("value"),
                         Ghdl_Scalar_Bytes);
-      New_Record_Field (Rec, Ghdl_Signal_Driving_Value_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Driving_Value_Field,
                         Get_Identifier ("driving_value"),
                         Ghdl_Scalar_Bytes);
-      New_Record_Field (Rec, Ghdl_Signal_Last_Value_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Last_Value_Field,
                         Get_Identifier ("last_value"),
                         Ghdl_Scalar_Bytes);
-      New_Record_Field (Rec, Ghdl_Signal_Last_Event_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Last_Event_Field,
                         Get_Identifier ("last_event"),
                         Time_Otype);
-      New_Record_Field (Rec, Ghdl_Signal_Last_Active_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Last_Active_Field,
                         Get_Identifier ("last_active"),
                         Time_Otype);
-      New_Record_Field (Rec, Ghdl_Signal_Event_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Active_Chain_Field,
+                        Get_Identifier ("active_chain"),
+                        Ghdl_Signal_Ptr);
+      New_Record_Field (Rec, Ghdl_Signal_Event_Field,
                         Get_Identifier ("event"),
                         Std_Boolean_Type_Node);
-      New_Record_Field (Rec, Ghdl_Signal_Active_Node,
+      New_Record_Field (Rec, Ghdl_Signal_Active_Field,
                         Get_Identifier ("active"),
                         Std_Boolean_Type_Node);
+      New_Record_Field (Rec, Ghdl_Signal_Has_Active_Field,
+                        Get_Identifier ("has_active"),
+                        Ghdl_Bool_Type);
       Finish_Record_Type (Rec, Ghdl_Signal_Type);
       New_Type_Decl (Get_Identifier ("__ghdl_signal"), Ghdl_Signal_Type);
 
-      Ghdl_Signal_Ptr := New_Access_Type (Ghdl_Signal_Type);
-      New_Type_Decl (Get_Identifier ("__ghdl_signal_ptr"), Ghdl_Signal_Ptr);
+      Finish_Access_Type (Ghdl_Signal_Ptr, Ghdl_Signal_Type);
 
       Ghdl_Signal_Ptr_Ptr := New_Access_Type (Ghdl_Signal_Ptr);
       New_Type_Decl (Get_Identifier ("__ghdl_signal_ptr_ptr"),
                      Ghdl_Signal_Ptr_Ptr);
 
+      New_Var_Decl (Ghdl_Signal_Active_Chain,
+                    Get_Identifier ("__ghdl_signal_active_chain"),
+                    O_Storage_External,
+                    Ghdl_Signal_Ptr);
+
       --  procedure __ghdl_signal_merge_rti
       --       (sig : ghdl_signal_ptr; rti : ghdl_rti_access)
       Start_Procedure_Decl
@@ -27305,6 +27910,17 @@
       New_Interface_Decl (Interfaces, Param, Wki_Sig, Ghdl_Signal_Ptr);
       Finish_Subprogram_Decl (Interfaces, Ghdl_Process_Add_Driver);
 
+      --  procedure __ghdl_signal_direct_driver (sig : __ghdl_signal_ptr;
+      --                                         Drv : Ghdl_Ptr_type);
+      Start_Procedure_Decl
+        (Interfaces, Get_Identifier ("__ghdl_signal_direct_driver"),
+         O_Storage_External);
+      New_Interface_Decl
+        (Interfaces, Param, Wki_Sig, Ghdl_Signal_Ptr);
+      New_Interface_Decl
+        (Interfaces, Param, Get_Identifier ("drv"), Ghdl_Ptr_Type);
+      Finish_Subprogram_Decl (Interfaces, Ghdl_Signal_Direct_Driver);
+
       declare
          procedure Create_Signal_Conversion (Name : String; Res : out O_Dnode)
          is
diff -urN ghdl-0.25/vhdl/translation.ads ghdl-0.26dev/vhdl/translation.ads
--- ghdl-0.25/vhdl/translation.ads	2006-08-02 06:13:50.000000000 +0200
+++ ghdl-0.26dev/vhdl/translation.ads	2006-10-05 11:35:23.000000000 +0200
@@ -61,6 +61,21 @@
    --  If set, do not generate code for unused implicit subprograms.
    Flag_Discard_Unused_Implicit : Boolean := False;
 
+   --  If set, dump drivers per process during compilation.
+   Flag_Dump_Drivers : Boolean := False;
+
+   --  If set, try to create direct drivers.
+   Flag_Direct_Drivers : Boolean := True;
+
+   --  If set, checks ranges (subtype ranges).
+   Flag_Range_Checks : Boolean := True;
+
+   --  If set, checks indexes (arrays index and slice).
+   Flag_Index_Checks : Boolean := True;
+
+   --  If set, do not create identifiers (for in memory compilation).
+   Flag_Discard_Identifiers : Boolean := False;
+
    type Foreign_Kind_Type is (Foreign_Unknown,
                               Foreign_Vhpidirect,
                               Foreign_Intrinsic);
diff -urN ghdl-0.25/vhdl/version.ads ghdl-0.26dev/vhdl/version.ads
--- ghdl-0.25/vhdl/version.ads	2006-08-11 05:15:55.000000000 +0200
+++ ghdl-0.26dev/vhdl/version.ads	2006-10-05 11:35:25.000000000 +0200
@@ -1,4 +1,5 @@
 package Version is
-   Ghdl_Version : constant String :=
-      "GHDL 0.25 (20060811) [Sokcho edition]";
+   Ghdl_Release : constant String :=
+      "GHDL 0.26dev (20060819) [Sokcho edition]";
+   Ghdl_Ver : constant String := "0.26dev";
 end Version;


Index: ghdl.spec
===================================================================
RCS file: /cvs/extras/rpms/ghdl/devel/ghdl.spec,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- ghdl.spec	5 Oct 2006 11:14:13 -0000	1.25
+++ ghdl.spec	5 Oct 2006 23:30:43 -0000	1.26
@@ -1,11 +1,11 @@
 %define gccver 4.1.1
 %define ghdlver 0.25
-%define ghdlsvnver 71
+%define ghdlsvnver 73
 
 Summary: A VHDL simulator, using the GCC technology
 Name: ghdl
 Version: 0.25
-Release: 0.%{ghdlsvnver}svn.1%{?dist}
+Release: 0.%{ghdlsvnver}svn.0%{?dist}
 License: GPL
 Group: Development/Languages
 URL: http://ghdl.free.fr/
@@ -288,6 +288,9 @@
 
 
 %changelog
+* Fri Oct  6 2006 Thomas Sailer <t.sailer at alumni.ethz.ch> - 0.25-0.73svn.0
+- update to svn73
+
 * Thu Oct  5 2006 Thomas Sailer <t.sailer at alumni.ethz.ch> - 0.25-0.71svn.1
 - bump release
 


--- ghdl-svn61.patch DELETED ---


--- ghdl-svn71.patch DELETED ---




More information about the fedora-extras-commits mailing list