More precise includes of `Node` constants (#6617)
authorAndres Noetzli <andres.noetzli@gmail.com>
Wed, 26 May 2021 14:30:17 +0000 (07:30 -0700)
committerGitHub <noreply@github.com>
Wed, 26 May 2021 14:30:17 +0000 (14:30 +0000)
commita24d6c8cf774f971a3eff62f73b2558b01b04440
tree5c8f1054bd8da3b56eb501409a205081294eee06
parent7440f0568b99842d87cb1f86eec21aed9f46b92a
 More precise includes of `Node` constants (#6617)

We store constants, e.g., BitVector and Rational, in our node infrastructure. As a result, we were indirectly including some headers in almost all files, e.g., the GMP headers. This commit changes that by forward-declaring the classes for the constants. As a result, we have to include headers like util/rational.h explicitly when we use Rational but it saves about 3 minutes in compile time (CPU time).

The commit changes RoundingMode from an enum to an enum class such that it can be forward declared.
156 files changed:
src/api/cpp/cvc5.cpp
src/expr/bound_var_manager.cpp
src/expr/dtype.cpp
src/expr/dtype.h
src/expr/dtype_cons.cpp
src/expr/metakind_template.cpp
src/expr/metakind_template.h
src/expr/mkmetakind
src/expr/node_manager.cpp
src/expr/node_manager.h
src/expr/sequence.cpp
src/expr/term_context_node.cpp
src/expr/type_node.cpp
src/expr/type_node.h
src/omt/bitvector_optimizer.cpp
src/preprocessing/passes/bv_gauss.h
src/preprocessing/passes/bv_to_int.cpp
src/preprocessing/passes/int_to_bv.cpp
src/preprocessing/passes/miplib_trick.cpp
src/preprocessing/passes/real_to_int.cpp
src/preprocessing/passes/unconstrained_simplifier.cpp
src/preprocessing/util/ite_utilities.cpp
src/printer/cvc/cvc_printer.cpp
src/printer/smt2/smt2_printer.cpp
src/proof/proof_checker.cpp
src/prop/proof_cnf_stream.cpp
src/smt/abstract_values.cpp
src/smt/proof_post_processor.cpp
src/smt/smt_engine.cpp
src/smt_util/nary_builder.cpp
src/theory/arith/arith_ite_utils.h
src/theory/arith/arith_msum.cpp
src/theory/arith/arith_rewriter.cpp
src/theory/arith/kinds
src/theory/arith/nl/cad/proof_generator.cpp
src/theory/arith/nl/ext/ext_state.cpp
src/theory/arith/nl/ext/factoring_check.cpp
src/theory/arith/nl/ext/monomial_check.cpp
src/theory/arith/nl/ext/tangent_plane_check.cpp
src/theory/arith/nl/iand_solver.cpp
src/theory/arith/nl/iand_utils.cpp
src/theory/arith/theory_arith_type_rules.cpp
src/theory/arrays/kinds
src/theory/arrays/theory_arrays.cpp
src/theory/arrays/theory_arrays_rewriter.cpp
src/theory/arrays/theory_arrays_type_rules.cpp
src/theory/arrays/type_enumerator.h
src/theory/bags/bag_solver.cpp
src/theory/bags/bags_rewriter.cpp
src/theory/bags/inference_generator.cpp
src/theory/bags/kinds
src/theory/bags/normal_form.cpp
src/theory/bags/term_registry.cpp
src/theory/bags/theory_bags_type_enumerator.cpp
src/theory/bags/theory_bags_type_rules.cpp
src/theory/bags/theory_bags_type_rules.h
src/theory/booleans/kinds
src/theory/booleans/proof_circuit_propagator.cpp
src/theory/booleans/theory_bool_rewriter.cpp
src/theory/builtin/kinds
src/theory/builtin/theory_builtin_rewriter.cpp
src/theory/builtin/theory_builtin_type_rules.cpp
src/theory/builtin/theory_builtin_type_rules.h
src/theory/bv/abstraction.cpp
src/theory/bv/bitblast/bitblast_strategies_template.h
src/theory/bv/bv_inequality_graph.h
src/theory/bv/bv_subtheory_algebraic.cpp
src/theory/bv/bv_subtheory_core.cpp
src/theory/bv/kinds
src/theory/bv/theory_bv_rewrite_rules_constant_evaluation.h
src/theory/bv/theory_bv_rewrite_rules_normalization.h
src/theory/bv/theory_bv_rewrite_rules_operator_elimination.h
src/theory/bv/theory_bv_rewrite_rules_simplification.h
src/theory/bv/theory_bv_type_rules.cpp
src/theory/bv/theory_bv_utils.cpp
src/theory/bv/theory_bv_utils.h
src/theory/datatypes/datatypes_rewriter.cpp
src/theory/datatypes/infer_proof_cons.cpp
src/theory/datatypes/kinds
src/theory/datatypes/theory_datatypes_type_rules.cpp
src/theory/datatypes/theory_datatypes_utils.cpp
src/theory/datatypes/type_enumerator.cpp
src/theory/datatypes/type_enumerator.h
src/theory/fp/fp_converter.cpp
src/theory/fp/fp_expand_defs.cpp
src/theory/fp/kinds
src/theory/fp/theory_fp.cpp
src/theory/fp/theory_fp_rewriter.cpp
src/theory/fp/theory_fp_type_rules.cpp
src/theory/fp/type_enumerator.h
src/theory/quantifiers/bv_inverter.cpp
src/theory/quantifiers/cegqi/vts_term_cache.cpp
src/theory/quantifiers/ematching/pattern_term_selector.cpp
src/theory/quantifiers/sygus/sygus_grammar_cons.cpp
src/theory/quantifiers/sygus/sygus_unif_rl.h
src/theory/quantifiers/term_util.cpp
src/theory/sep/theory_sep.cpp
src/theory/sep/theory_sep_rewriter.cpp
src/theory/sets/cardinality_extension.cpp
src/theory/sets/kinds
src/theory/sets/normal_form.h
src/theory/sets/theory_sets_private.cpp
src/theory/sets/theory_sets_rels.cpp
src/theory/sets/theory_sets_rewriter.cpp
src/theory/sets/theory_sets_type_enumerator.cpp
src/theory/sets/theory_sets_type_rules.cpp
src/theory/strings/arith_entail.cpp
src/theory/strings/base_solver.cpp
src/theory/strings/core_solver.cpp
src/theory/strings/inference_manager.cpp
src/theory/strings/kinds
src/theory/strings/regexp_elim.cpp
src/theory/strings/regexp_entail.cpp
src/theory/strings/regexp_operation.cpp
src/theory/strings/sequences_rewriter.cpp
src/theory/strings/solver_state.cpp
src/theory/strings/strings_entail.cpp
src/theory/strings/strings_fmf.cpp
src/theory/strings/strings_rewriter.cpp
src/theory/strings/term_registry.cpp
src/theory/strings/theory_strings_preprocess.cpp
src/theory/strings/theory_strings_type_rules.cpp
src/theory/strings/theory_strings_utils.cpp
src/theory/strings/type_enumerator.cpp
src/theory/subs_minimize.cpp
src/theory/theory_model.cpp
src/theory/theory_model.h
src/theory/theory_model_builder.cpp
src/theory/type_enumerator.h
src/theory/uf/cardinality_extension.cpp
src/theory/uf/theory_uf_type_rules.cpp
src/util/CMakeLists.txt
src/util/floatingpoint_literal_symfpu_traits.cpp
src/util/roundingmode.cpp [new file with mode: 0644]
src/util/roundingmode.h
test/unit/node/node_algorithm_black.cpp
test/unit/node/node_black.cpp
test/unit/node/node_white.cpp
test/unit/node/type_node_white.cpp
test/unit/preprocessing/pass_foreign_theory_rewrite_white.cpp
test/unit/printer/smt2_printer_black.cpp
test/unit/theory/sequences_rewriter_white.cpp
test/unit/theory/strings_rewriter_white.cpp
test/unit/theory/theory_bags_normal_form_white.cpp
test/unit/theory/theory_bags_rewriter_white.cpp
test/unit/theory/theory_bags_type_rules_white.cpp
test/unit/theory/theory_black.cpp
test/unit/theory/theory_bv_int_blaster_white.cpp
test/unit/theory/theory_bv_opt_white.cpp
test/unit/theory/theory_int_opt_white.cpp
test/unit/theory/theory_sets_type_rules_white.cpp
test/unit/theory/theory_strings_utils_white.cpp
test/unit/theory/theory_strings_word_white.cpp
test/unit/theory/type_enumerator_white.cpp
test/unit/util/array_store_all_white.cpp
test/unit/util/datatype_black.cpp