39 auto vs_object_factory =
48 std::unique_ptr<ai_history_factory_baset> hf =
nullptr;
56 hf = util_make_unique<call_stack_history_factoryt>(
61 hf = util_make_unique<local_control_flow_history_factoryt>(
68 std::unique_ptr<ai_domain_factory_baset> df =
nullptr;
81 df = util_make_unique<variable_sensitivity_domain_factoryt>(
82 vs_object_factory, vsd_config);
89 std::unique_ptr<ai_storage_baset> st =
nullptr;
92 st = util_make_unique<history_sensitive_storaget>();
96 st = util_make_unique<location_sensitive_storaget>();
101 if(hf !=
nullptr && df !=
nullptr && st !=
nullptr)
105 return util_make_unique<ai_recursive_interproceduralt>(
106 std::move(hf), std::move(df), std::move(st));
113 return util_make_unique<ai_three_way_merget>(
114 std::move(hf), std::move(df), std::move(st));
124 return util_make_unique<constant_propagator_ait>(
129 return util_make_unique<dependence_grapht>(ns);
133 return util_make_unique<variable_sensitivity_dependence_grapht>(
138 auto df = util_make_unique<variable_sensitivity_domain_factoryt>(
139 vs_object_factory, vsd_config);
140 return util_make_unique<ait<variable_sensitivity_domaint>>(std::move(df));
144 return util_make_unique<ait<interval_domaint>>();
150 return util_make_unique<ait<non_null_domaint> >();
162 return util_make_unique<dependence_grapht>(ns);