Use a separate TV_* timer for the VRP threader.

Message ID 20210929152607.1270206-1-aldyh@redhat.com
State Committed
Commit 48c97c62c90eedfadd41793f438ed4187df65fd7
Headers
Series Use a separate TV_* timer for the VRP threader. |

Commit Message

Aldy Hernandez Sept. 29, 2021, 3:26 p.m. UTC
  There seems to be a memory consumption issue on 32 bit hosts after the
hybrid threader patchset.  I'm having a hard time reproducing, and in
the process I've noticed that the threader is using the TV_TREE_VRP
timer.  Having a distinct one could help diagnose this and other
issues going forward.

Jeff, if you think this could help, I'd like to push this to trunk, but
if not, I'm perfectly happy attaching it to the 2 PRs for now. :)

gcc/ChangeLog:

	* timevar.def (TV_TREE_VRP_THREADER): New.
	* tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass.
---
 gcc/timevar.def | 1 +
 gcc/tree-vrp.c  | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)
  

Comments

Jeff Law Sept. 29, 2021, 3:30 p.m. UTC | #1
On 9/29/2021 9:26 AM, Aldy Hernandez wrote:
> There seems to be a memory consumption issue on 32 bit hosts after the
> hybrid threader patchset.  I'm having a hard time reproducing, and in
> the process I've noticed that the threader is using the TV_TREE_VRP
> timer.  Having a distinct one could help diagnose this and other
> issues going forward.
>
> Jeff, if you think this could help, I'd like to push this to trunk, but
> if not, I'm perfectly happy attaching it to the 2 PRs for now. :)
>
> gcc/ChangeLog:
>
> 	* timevar.def (TV_TREE_VRP_THREADER): New.
> 	* tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass.
OK.

And just to be clear, I'm talking about slowing down on refactoring and 
the like.  Bugfixes, dumping improvements and the like can and should go 
forward.


Jeff
  
Aldy Hernandez Sept. 29, 2021, 4:30 p.m. UTC | #2
On Wed, Sep 29, 2021 at 5:31 PM Jeff Law <jeffreyalaw@gmail.com> wrote:
>
>
>
> On 9/29/2021 9:26 AM, Aldy Hernandez wrote:
> > There seems to be a memory consumption issue on 32 bit hosts after the
> > hybrid threader patchset.  I'm having a hard time reproducing, and in
> > the process I've noticed that the threader is using the TV_TREE_VRP
> > timer.  Having a distinct one could help diagnose this and other
> > issues going forward.
> >
> > Jeff, if you think this could help, I'd like to push this to trunk, but
> > if not, I'm perfectly happy attaching it to the 2 PRs for now. :)
> >
> > gcc/ChangeLog:
> >
> >       * timevar.def (TV_TREE_VRP_THREADER): New.
> >       * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass.
> OK.
>
> And just to be clear, I'm talking about slowing down on refactoring and
> the like.  Bugfixes, dumping improvements and the like can and should go
> forward.

ACK.

In that case, is it ok to push the changes to the testsuite fixing
PPC64 and others?

https://gcc.gnu.org/pipermail/gcc-patches/2021-September/580411.html

Thanks.
Aldy
  
Jeff Law Sept. 29, 2021, 4:32 p.m. UTC | #3
On 9/29/2021 10:30 AM, Aldy Hernandez wrote:
> On Wed, Sep 29, 2021 at 5:31 PM Jeff Law <jeffreyalaw@gmail.com> wrote:
>>
>>
>> On 9/29/2021 9:26 AM, Aldy Hernandez wrote:
>>> There seems to be a memory consumption issue on 32 bit hosts after the
>>> hybrid threader patchset.  I'm having a hard time reproducing, and in
>>> the process I've noticed that the threader is using the TV_TREE_VRP
>>> timer.  Having a distinct one could help diagnose this and other
>>> issues going forward.
>>>
>>> Jeff, if you think this could help, I'd like to push this to trunk, but
>>> if not, I'm perfectly happy attaching it to the 2 PRs for now. :)
>>>
>>> gcc/ChangeLog:
>>>
>>>        * timevar.def (TV_TREE_VRP_THREADER): New.
>>>        * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass.
>> OK.
>>
>> And just to be clear, I'm talking about slowing down on refactoring and
>> the like.  Bugfixes, dumping improvements and the like can and should go
>> forward.
> ACK.
>
> In that case, is it ok to push the changes to the testsuite fixing
> PPC64 and others?
>
> https://gcc.gnu.org/pipermail/gcc-patches/2021-September/580411.html
I thought I'd already ACK'd that :-)    But apparently not.  Yes, go 
ahead with it.

jeff
  

Patch

diff --git a/gcc/timevar.def b/gcc/timevar.def
index 16d1657436c..f903833ce9e 100644
--- a/gcc/timevar.def
+++ b/gcc/timevar.def
@@ -158,6 +158,7 @@  DEFTIMEVAR (TV_TREE_CFG		     , "tree CFG construction")
 DEFTIMEVAR (TV_TREE_CLEANUP_CFG	     , "tree CFG cleanup")
 DEFTIMEVAR (TV_TREE_TAIL_MERGE       , "tree tail merge")
 DEFTIMEVAR (TV_TREE_VRP              , "tree VRP")
+DEFTIMEVAR (TV_TREE_VRP_THREADER     , "tree VRP threader")
 DEFTIMEVAR (TV_TREE_EARLY_VRP        , "tree Early VRP")
 DEFTIMEVAR (TV_TREE_COPY_PROP        , "tree copy propagation")
 DEFTIMEVAR (TV_FIND_REFERENCED_VARS  , "tree find ref. vars")
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 5aded5edb11..db9f3cd0a2f 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4449,7 +4449,7 @@  const pass_data pass_data_vrp_threader =
   GIMPLE_PASS, /* type */
   "vrp-thread", /* name */
   OPTGROUP_NONE, /* optinfo_flags */
-  TV_TREE_VRP, /* tv_id */
+  TV_TREE_VRP_THREADER, /* tv_id */
   PROP_ssa, /* properties_required */
   0, /* properties_provided */
   0, /* properties_destroyed */