tree-optimization/98866 - Compile time hog in VRP
authorAndrew MacLeod <amacleod@redhat.com>
Fri, 29 Jan 2021 14:23:48 +0000 (09:23 -0500)
committerAndrew MacLeod <amacleod@redhat.com>
Fri, 29 Jan 2021 16:47:18 +0000 (11:47 -0500)
commit2dd1f944547eb6560c3e15a4b705ae1ac236df75
tree852fd940fa1a98600560ca77e528c5c500d8bce8
parenta7f52181a6a16bb6d216ff41d9c6a9da95c19b5c
tree-optimization/98866 - Compile time hog in VRP

Don't track [1, +INF] for pointer types, treat them as invariant for caching
purposes as they cannot be further refined without evaluating to UNDEFINED.

PR tree-optimization/98866
* gimple-range-gori.h (gori_compute:set_range_invariant): New.
* gimple-range-gori.cc (gori_map::set_range_invariant): New.
(gori_map::m_maybe_invariant): Rename from all_outgoing.
(gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
(gori_map::is_export_p): Ditto.
(gori_map::calculate_gori): Ditto.
(gori_compute::set_range_invariant): New.
* gimple-range.cc (gimple_ranger::range_of_stmt): Set range
invariant for pointers evaluating to [1, +INF].
gcc/gimple-range-gori.cc
gcc/gimple-range-gori.h
gcc/gimple-range.cc