From 5a8c373b79c1b66dbd9f165d06bdec385df4bf1c Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Wed, 3 Jun 2020 13:29:35 +0200 Subject: Do not call SCEV in loop_ranger::range_of_ssa_name. This was huge hammer that was calling SCEV for every SSA, and it causes Fortran timeouts because SCEV went into an infinite loop. --- gcc/gimple-ranger.cc | 18 ------------------ gcc/gimple-ranger.h | 4 +--- gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c | 2 +- 3 files changed, 2 insertions(+), 22 deletions(-) (limited to 'gcc') diff --git a/gcc/gimple-ranger.cc b/gcc/gimple-ranger.cc index d299f07..edc996f 100644 --- a/gcc/gimple-ranger.cc +++ b/gcc/gimple-ranger.cc @@ -727,24 +727,6 @@ loop_ranger::~loop_ranger () delete m_vr_values; } -// FIXME: Clean-up and/or possibly merge with -// range_of_ssa_name_with_loop_info. - -void -loop_ranger::range_of_ssa_name (irange &r, tree name, gimple *stmt) -{ - super::range_of_ssa_name (r, name, stmt); - - class loop *l; - if (stmt && (l = loop_containing_stmt (stmt))) - { - value_range_equiv vr (TREE_TYPE (name)); - m_vr_values->adjust_range_with_scev (&vr, l, stmt, name); - vr.normalize_symbolics (); - r.intersect (vr); - } -} - void loop_ranger::range_of_ssa_name_with_loop_info (irange &r, tree name, class loop *l, gphi *phi) diff --git a/gcc/gimple-ranger.h b/gcc/gimple-ranger.h index 6d4baf1..f3f5eb6 100644 --- a/gcc/gimple-ranger.h +++ b/gcc/gimple-ranger.h @@ -85,9 +85,7 @@ public: ~loop_ranger (); virtual void range_on_edge (irange &r, edge e, tree name); virtual bool range_of_phi (irange &r, gphi *phi); -protected: - virtual void range_of_ssa_name (irange &r, tree name, - gimple *stmt = NULL) OVERRIDE; + private: typedef global_ranger super; bool range_with_loop_info (irange &r, tree name); diff --git a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c index 6d2f870..a5451ad 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c @@ -14,4 +14,4 @@ foo(unsigned int a, unsigned int b, unsigned int c, unsigned int d, return e; } -/* { dg-final { scan-tree-dump-times "return 20;" 1 "reassoc1"} } */ +/* { dg-final { scan-tree-dump-times "= 20" 1 "reassoc1"} } */ -- cgit v1.1