diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2020-06-03 13:29:35 +0200 |
---|---|---|
committer | Aldy Hernandez <aldyh@redhat.com> | 2020-06-03 13:29:35 +0200 |
commit | 5a8c373b79c1b66dbd9f165d06bdec385df4bf1c (patch) | |
tree | 54d873ea312e87c7cb2a8eecd52a854e3e722558 /gcc | |
parent | 77f95085102ca89fe2755d5251617bf08771fc9d (diff) | |
download | gcc-5a8c373b79c1b66dbd9f165d06bdec385df4bf1c.zip gcc-5a8c373b79c1b66dbd9f165d06bdec385df4bf1c.tar.gz gcc-5a8c373b79c1b66dbd9f165d06bdec385df4bf1c.tar.bz2 |
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.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/gimple-ranger.cc | 18 | ||||
-rw-r--r-- | gcc/gimple-ranger.h | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/reassoc-23.c | 2 |
3 files changed, 2 insertions, 22 deletions
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"} } */ |