SOURCES: gcc-pr29512.patch (NEW) - O(c^N) complexity algorithm in ...
pluto
pluto at pld-linux.org
Sun Oct 22 15:26:55 CEST 2006
Author: pluto Date: Sun Oct 22 13:26:55 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- O(c^N) complexity algorithm in the i386 backend.
---- Files affected:
SOURCES:
gcc-pr29512.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/gcc-pr29512.patch
diff -u /dev/null SOURCES/gcc-pr29512.patch:1.1
--- /dev/null Sun Oct 22 15:26:55 2006
+++ SOURCES/gcc-pr29512.patch Sun Oct 22 15:26:50 2006
@@ -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
================================================================
More information about the pld-cvs-commit
mailing list