diff options
author | Richard Biener <rguenther@suse.de> | 2020-03-04 10:40:32 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2020-03-04 11:37:27 +0100 |
commit | dca54007ebb5d49c3d6cea63ee87fd8f3ccb9ca5 (patch) | |
tree | b406164716fc77c35134ca2f5f6715a5997d98f1 /gcc/graphite-isl-ast-to-gimple.c | |
parent | c7ec2f9ff6d064c4d446dbf521d554eb10254d34 (diff) | |
download | gcc-dca54007ebb5d49c3d6cea63ee87fd8f3ccb9ca5.zip gcc-dca54007ebb5d49c3d6cea63ee87fd8f3ccb9ca5.tar.gz gcc-dca54007ebb5d49c3d6cea63ee87fd8f3ccb9ca5.tar.bz2 |
tree-optimization/93964 - adjust ISL code generation for pointer params
Pointers eventually need intermediate conversions in code generation.
Allowing them is much easier than fending them off since niter
and scev expansion easily drag those in.
2020-02-04 Richard Biener <rguenther@suse.de>
PR tree-optimization/93964
* graphite-isl-ast-to-gimple.c
(gcc_expression_from_isl_ast_expr_id): Add intermediate
conversion for pointer to integer converts.
* graphite-scop-detection.c (assign_parameter_index_in_region):
Relax assert.
* gcc.dg/graphite/pr93964.c: New testcase.
Diffstat (limited to 'gcc/graphite-isl-ast-to-gimple.c')
-rw-r--r-- | gcc/graphite-isl-ast-to-gimple.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c index c08a259..ef93fda 100644 --- a/gcc/graphite-isl-ast-to-gimple.c +++ b/gcc/graphite-isl-ast-to-gimple.c @@ -265,6 +265,9 @@ gcc_expression_from_isl_ast_expr_id (tree type, tree t = res->second; if (useless_type_conversion_p (type, TREE_TYPE (t))) return t; + if (POINTER_TYPE_P (TREE_TYPE (t)) + && !POINTER_TYPE_P (type) && !ptrofftype_p (type)) + t = fold_convert (sizetype, t); return fold_convert (type, t); } |