public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeff Law <law@redhat.com>
To: Richard Biener <richard.guenther@gmail.com>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>
Subject: Re: [RFA][PATCH] Use SCEV conditionally within vr-values and evrp range analysis - V2
Date: Mon, 27 Nov 2017 16:58:00 -0000	[thread overview]
Message-ID: <6d9e93c4-25ae-10ce-5e8c-3e28d61b9777@redhat.com> (raw)
In-Reply-To: <CAFiYyc0yJOxpbuGRkrsnLvKjAC+QCDMq1zsfUOVk7szsqW5Kyg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 985 bytes --]

On 11/23/2017 05:49 AM, Richard Biener wrote:
> On Thu, Nov 23, 2017 at 1:16 AM, Jeff Law <law@redhat.com> wrote:
>>
>> Clients of the evrp range analysis may not have initialized the SCEV
>> infrastructure, and in fact my not want to (DOM for example).
>>
>> Yet inside both vr-values.c and gimple-ssa-evrp-analyze.c we have calls
>> into SCEV (that will fault/abort if SCEV is not properly initialized).
>>
>> This patch allows clients of vr-values.c and gimple-ssa-evrp-analyze.c
>> to indicate if they want SCEV analysis.
>>
>> Bootstrapped and regression tested by itself as well as with the DOM
>> patches to use EVRP analysis  (which test the "don't want SCEV path).
>>
>> OK for the trunk?
> 
> There's also scev_initialized_p () which you could conveniently use.
Yea, that worked fine and is (of course) much simpler.

Bootstrapped and regression tested in isolation as well as on top of my
ongoing work to remove jump threading from tree-vrp.c.

OK for the trunk now?

Jeff


[-- Attachment #2: P --]
[-- Type: text/plain, Size: 1373 bytes --]

	* gimple-ssa-evrp-analyze.c
	(evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
	refine ranges if scev_initialized_p returns true.
	* vr-values.c (vr_values::extract_range_from_phi_node): Likewise.

diff --git a/gcc/gimple-ssa-evrp-analyze.c b/gcc/gimple-ssa-evrp-analyze.c
index 68a2cdc..38fb0db 100644
--- a/gcc/gimple-ssa-evrp-analyze.c
+++ b/gcc/gimple-ssa-evrp-analyze.c
@@ -176,7 +176,8 @@ evrp_range_analyzer::record_ranges_from_phis (basic_block bb)
 	     to use VARYING for them.  But we can still resort to
 	     SCEV for loop header PHIs.  */
 	  struct loop *l;
-	  if (interesting
+	  if (scev_initialized_p ()
+	      && interesting
 	      && (l = loop_containing_stmt (phi))
 	      && l->header == gimple_bb (phi))
 	  vr_values.adjust_range_with_scev (&vr_result, l, phi, lhs);
diff --git a/gcc/vr-values.c b/gcc/vr-values.c
index 2d11861..e617556 100644
--- a/gcc/vr-values.c
+++ b/gcc/vr-values.c
@@ -2935,7 +2935,8 @@ scev_check:
      scev_check can be reached from two paths, one is a fall through from above
      "varying" label, the other is direct goto from code block which tries to
      avoid infinite simulation.  */
-  if ((l = loop_containing_stmt (phi))
+  if (scev_initialized_p ()
+      && (l = loop_containing_stmt (phi))
       && l->header == gimple_bb (phi))
     adjust_range_with_scev (vr_result, l, phi, lhs);
 

  parent reply	other threads:[~2017-11-27 16:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23  8:13 [RFA][PATCH] Use SCEV conditionally within vr-values and evrp range analysis Jeff Law
2017-11-23 13:14 ` Richard Biener
2017-11-23 15:32   ` Jeff Law
2017-11-27 16:58   ` Jeff Law [this message]
2017-11-28 11:55     ` [RFA][PATCH] Use SCEV conditionally within vr-values and evrp range analysis - V2 Richard Biener

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6d9e93c4-25ae-10ce-5e8c-3e28d61b9777@redhat.com \
    --to=law@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=richard.guenther@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).