Make registration of preprocessing passes explicit (#2564)
authorAndres Noetzli <andres.noetzli@gmail.com>
Tue, 2 Oct 2018 21:55:21 +0000 (14:55 -0700)
committerGitHub <noreply@github.com>
Tue, 2 Oct 2018 21:55:21 +0000 (14:55 -0700)
commit937d37ef78d3ef445335928d498422083df74d77
tree0e686ba7f9a7d745bc86c71c8629ee21510bb728
parenta580349bbb39fa9681ab2e2d05dd448f8b082399
Make registration of preprocessing passes explicit (#2564)

As it turns out, self-registering types are problematic with static
linkage [0]. Instead of fixing the issue with linker flags, which seems
possible but also brittle (e.g. the flags may be different for different
linkers), this commit adds an explicit registration of each
preprocessing pass.

[0] https://www.bfilipek.com/2018/02/static-vars-static-lib.html
32 files changed:
src/preprocessing/passes/apply_substs.cpp
src/preprocessing/passes/apply_to_const.cpp
src/preprocessing/passes/bool_to_bv.cpp
src/preprocessing/passes/bv_abstraction.cpp
src/preprocessing/passes/bv_ackermann.cpp
src/preprocessing/passes/bv_eager_atoms.cpp
src/preprocessing/passes/bv_gauss.cpp
src/preprocessing/passes/bv_intro_pow2.cpp
src/preprocessing/passes/bv_to_bool.cpp
src/preprocessing/passes/extended_rewriter_pass.cpp
src/preprocessing/passes/global_negate.cpp
src/preprocessing/passes/int_to_bv.cpp
src/preprocessing/passes/ite_removal.cpp
src/preprocessing/passes/ite_simp.cpp
src/preprocessing/passes/miplib_trick.cpp
src/preprocessing/passes/nl_ext_purify.cpp
src/preprocessing/passes/non_clausal_simp.cpp
src/preprocessing/passes/pseudo_boolean_processor.cpp
src/preprocessing/passes/quantifier_macros.cpp
src/preprocessing/passes/quantifiers_preprocess.cpp
src/preprocessing/passes/real_to_int.cpp
src/preprocessing/passes/rewrite.cpp
src/preprocessing/passes/sep_skolem_emp.cpp
src/preprocessing/passes/sort_infer.cpp
src/preprocessing/passes/static_learning.cpp
src/preprocessing/passes/sygus_inference.cpp
src/preprocessing/passes/symmetry_breaker.cpp
src/preprocessing/passes/synth_rew_rules.cpp
src/preprocessing/passes/theory_preprocess.cpp
src/preprocessing/passes/unconstrained_simplifier.cpp
src/preprocessing/preprocessing_pass_registry.cpp
src/preprocessing/preprocessing_pass_registry.h