]> git.pld-linux.org Git - packages/crossppc-gcc.git/commitdiff
- O(c^N) complexity algorithm in the i386 backend. auto/th/gcc-4_2_0-0_20061030r118195_1 auto/th/gcc-4_2_0-0_20061030r118195_2 auto/th/gcc-4_2_0-0_20061110r118658_1 auto/th/gcc-4_2_0-0_20061119r118994_1
authorPaweł Sikora <pluto@pld-linux.org>
Sun, 22 Oct 2006 13:26:50 +0000 (13:26 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-pr29512.patch -> 1.1

gcc-pr29512.patch [new file with mode: 0644]

diff --git a/gcc-pr29512.patch b/gcc-pr29512.patch
new file mode 100644 (file)
index 0000000..ebd2322
--- /dev/null
@@ -0,0 +1,66 @@
+--- trunk/gcc/config/i386/i386.c       (wersja 117926)
++++ trunk/gcc/config/i386/i386.c       (wersja 117927)
+@@ -2951,32 +2951,6 @@
+       switch (TREE_CODE (type))
+       {
+       case RECORD_TYPE:
+-        /* For classes first merge in the field of the subclasses.  */
+-        if (TYPE_BINFO (type))
+-          {
+-            tree binfo, base_binfo;
+-            int basenum;
+-
+-            for (binfo = TYPE_BINFO (type), basenum = 0;
+-                 BINFO_BASE_ITERATE (binfo, basenum, base_binfo); basenum++)
+-              {
+-                 int num;
+-                 int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8;
+-                 tree type = BINFO_TYPE (base_binfo);
+-
+-                 num = classify_argument (TYPE_MODE (type),
+-                                          type, subclasses,
+-                                          (offset + bit_offset) % 256);
+-                 if (!num)
+-                   return 0;
+-                 for (i = 0; i < num; i++)
+-                   {
+-                     int pos = (offset + (bit_offset % 64)) / 8 / 8;
+-                     classes[i + pos] =
+-                       merge_classes (subclasses[i], classes[i + pos]);
+-                   }
+-              }
+-          }
+         /* And now merge the fields of structure.  */
+         for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+           {
+@@ -3044,10 +3018,6 @@
+       case QUAL_UNION_TYPE:
+         /* Unions are similar to RECORD_TYPE but offset is always 0.
+            */
+-
+-        /* Unions are not derived.  */
+-        gcc_assert (!TYPE_BINFO (type)
+-                    || !BINFO_N_BASE_BINFOS (TYPE_BINFO (type)));
+         for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+           {
+             if (TREE_CODE (field) == FIELD_DECL)
+@@ -3735,18 +3705,7 @@
+         {
+           tree field;
+-          if (TYPE_BINFO (type))
+-            {
+-              tree binfo, base_binfo;
+-              int i;
+-
+-              for (binfo = TYPE_BINFO (type), i = 0;
+-                   BINFO_BASE_ITERATE (binfo, i, base_binfo); i++)
+-                if (contains_128bit_aligned_vector_p
+-                    (BINFO_TYPE (base_binfo)))
+-                  return true;
+-            }
+-          /* And now merge the fields of structure.  */
++          /* Walk all the structure fields.  */
+           for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
+             {
+               if (TREE_CODE (field) == FIELD_DECL
This page took 0.087568 seconds and 4 git commands to generate.