> Did you try your code with 64bit pointer types?
Yes. It seems that the result is the same.
> In any case, I don't think it is worth spending time on this. I would check
> in the scop detection that we disable the handling of unsigned and pointer
> types. It is a complex thing to model and the approach currently taking of
> always model their wrapping behaviour seems wrong.
I’ve attached a patch, which disables the handling SSA_NAME nodes in
case they are pointers to object types. Which nodes should also be
disabled? (I’ve found that this disabling helps to avoid the error and
can be a temporary solution) Is the graphite_can_represent_scev an
appropriate place for the disabling of type handling?
--
Cheers, Roman Gareev.
Index: gcc/graphite-scop-detection.c
===================================================================
--- gcc/graphite-scop-detection.c (revision 213773)
+++ gcc/graphite-scop-detection.c (working copy)
@@ -54,6 +54,7 @@
#include "tree-pass.h"
#include "sese.h"
#include "tree-ssa-propagate.h"
+#include "cp/cp-tree.h"
#ifdef HAVE_cloog
#include "graphite-poly.h"
@@ -217,6 +218,9 @@
if (chrec_contains_undetermined (scev))
return false;
+ if (TYPE_PTROB_P (TREE_TYPE (scev)) && TREE_CODE (scev) == SSA_NAME)
+ return false;
+
switch (TREE_CODE (scev))
{
case NEGATE_EXPR: