This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

]PATCH] Rewrite part of tree-affine for pointer plus (rest element)


Hi,
 This patch fixes the affine errors when more than MAX_AFF_ELTS level
of an affine are used for a pointer type.  The fix is simple and use
sizetype for rest instead of the pointer type (it will most likely be
sizetype already anyways).

OK? Bootstrapped and tested on i686-linux-gnu with no regressions and
pr32417.f90 at -O is now fixed.  Also I tested C bootstrap/test with
MAX_AFF_ELTS set to 1 (to invoke this code during a bootstrap) and
there were no failures there (except for one which is expected as it
was expecting the affine code to support 2 levels of affine).

Thanks,
Andrew Pinski

ChangeLog:
       PR tree-opt/32527
       * tree-affine.h (aff_tree): The type of rest is sizetype for types
       of pointers.
       * tree-affine.c (aff_combination_scale): If type is a pointer type,
       use sizetype for rest.
       (aff_combination_add_elt): Likewise. Don't specialize pointer types.
       (aff_combination_convert): Don't convert rest for pointer types.

Attachment: fixtree-affine.diff.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]