This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Do not constrain on REAL_TYPE
- From: Sebastian Pop <sebpop at gmail dot com>
- To: Aditya Kumar <hiraditya at msn dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Aditya Kumar <aditya dot k7 at samsung dot com>, Tobias Grosser <tobias at grosser dot es>, Richard Biener <richard dot guenther at gmail dot com>
- Date: Thu, 25 Jun 2015 02:13:11 -0500
- Subject: Re: [PATCH] Do not constrain on REAL_TYPE
- Authentication-results: sourceware.org; auth=none
- References: <1435184679-12606-1-git-send-email-hiraditya at msn dot com>
On Wed, Jun 24, 2015 at 5:24 PM, Aditya Kumar <hiraditya@msn.com> wrote:
> From: Aditya Kumar <aditya.k7@samsung.com>
>
> gcc/ChangeLog:
>
> 2015-06-24 Aditya Kumar <aditya.k7@samsung.com>
> Sebastian Pop <s.pop@samsung.com>
>
> * graphite-sese-to-poly.c (parameter_index_in_region): Discard REAL_TYPE parameters.
> (scan_tree_for_params): Handle REAL_CST in scan_tree_for_params.
> (add_conditions_to_domain): Do not constrain on REAL_TYPE.
The patch looks good to me.
We should also mention that these cases appear in testcases already
in the testsuite when commenting out the call to limit_scops.
The intent is first to fix all the ICEs and then to remove limit_scops.
If there are no other comments, I will commit the patch.
Sebastian
>
> ---
> gcc/graphite-sese-to-poly.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
> index 271c499..5b37796 100644
> --- a/gcc/graphite-sese-to-poly.c
> +++ b/gcc/graphite-sese-to-poly.c
> @@ -796,6 +796,9 @@ parameter_index_in_region (tree name, sese region)
>
> gcc_assert (SESE_ADD_PARAMS (region));
>
> + /* Cannot constrain on REAL_TYPE parameters. */
> + if (TREE_CODE (TREE_TYPE (name)) == REAL_TYPE)
> + return -1;
> i = SESE_PARAMS (region).length ();
> SESE_PARAMS (region).safe_push (name);
> return i;
> @@ -915,6 +918,7 @@ scan_tree_for_params (sese s, tree e)
>
> case INTEGER_CST:
> case ADDR_EXPR:
> + case REAL_CST:
> break;
>
> default:
> @@ -1194,6 +1198,10 @@ add_conditions_to_domain (poly_bb_p pbb)
> {
> case GIMPLE_COND:
> {
> + /* Don't constrain on REAL_TYPE. */
> + if (TREE_CODE (TREE_TYPE (gimple_cond_lhs (stmt))) == REAL_TYPE)
> + break;
> +
> gcond *cond_stmt = as_a <gcond *> (stmt);
> enum tree_code code = gimple_cond_code (cond_stmt);
>
> --
> 2.1.0.243.g30d45f7
>