Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.2
gcc41
pr29512.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File pr29512.patch of Package gcc41
Author: rguenth Date: Sat Oct 21 10:05:21 2006 New Revision: 117927 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117927 Log: 2006-10-21 Richard Guenther <rguenther@suse.de> PR target/29512 * config/i386/i386.c (classify_argument): Remove redundant walking of the BINFOs. (contains_128bit_aligned_vector_p): Likewise. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c Index: gcc/config/i386/i386.c =================================================================== *** gcc/config/i386/i386.c (revision 122254) --- gcc/config/i386/i386.c (working copy) *************** classify_argument (enum machine_mode mod *** 2621,2652 **** 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)) { --- 2621,2626 ---- *************** classify_argument (enum machine_mode mod *** 2714,2723 **** 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) --- 2688,2693 ---- *************** contains_128bit_aligned_vector_p (tree t *** 3397,3414 **** { 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. */ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL --- 3367,3373 ---- { tree field; ! /* Walk all the structure fields. */ for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { if (TREE_CODE (field) == FIELD_DECL
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor