Finish moving constraint and logic functionality of out pt.c.
authorAndrew Sutton <asutton@lock3software.com>
Thu, 24 Oct 2019 15:03:49 +0000 (15:03 +0000)
committerAndrew Sutton <asutton@gcc.gnu.org>
Thu, 24 Oct 2019 15:03:49 +0000 (15:03 +0000)
commit79c05c2bc49b4880ec4789d4078178e27821f268
treee26a1b04787b484f4bffdf08b8b1ebb70414beb5
parent4352288a3df915575a2b820f702242908740106f
Finish moving constraint and logic functionality of out pt.c.

Also, reimplement and re-enable subsumption caching.

gcc/cp/
* config-lang.in (gtfiles): Add logic.cc.
* constraint.cc (atomic_constraints_identical_p): Add assertions.
(hash_atomic_constraint): Likewise.
(constraints_equivalent_p): New.
(inchash::add_constraint): New.
(iterative_hash_constraint): New.
(decl_constraints): Moved from pt.c.
(get_constraints): Likewise.
(set_constraints): Likewise.
(remove_constraints): Likewise.
* cp-tree.h (CONSTR_P): New.
(init_constraint_processing): Remove.
(constraints_equivalent_p, iterative_hash_constraint): Declare.
* decl.c (cxx_init_decl_processing): Don't initialize constraints.
* logic.cc (subsumption_entry): Moved from pt.c.
(subsumption_hasher): Likewise.
(subsumption_cache): Likewise.
(lookup_subsumption): Likewise.
(save_subsumption): Likewise.
(subsumes_constraints_nonnull): Use subsumption cache.
* pt.c: Move aforementioned declarations out of this file.
(init_constraint_processing): Remove.

From-SVN: r277407
gcc/cp/ChangeLog
gcc/cp/config-lang.in
gcc/cp/constraint.cc
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/logic.cc
gcc/cp/pt.c