GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/arrays_options.h Lines: 7 7 100.0 %
Date: 2021-08-14 Branches: 0 0 0.0 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Mathias Preiner, Aina Niemetz
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 * in the top-level source directory and their institutional affiliations.
9
 * All rights reserved.  See the file COPYING in the top-level source
10
 * directory for licensing information.
11
 * ****************************************************************************
12
 *
13
 * Contains code for handling command-line options.
14
 *
15
 * For each <module>_options.toml configuration file, mkoptions.py
16
 * expands this template and generates a <module>_options.h file.
17
 */
18
19
#include "cvc5_private.h"
20
21
#ifndef CVC5__OPTIONS__ARRAYS_H
22
#define CVC5__OPTIONS__ARRAYS_H
23
24
#include "options/options.h"
25
26
// clang-format off
27
28
// clang-format on
29
30
namespace cvc5::options {
31
32
// clang-format off
33
34
// clang-format on
35
36
#if defined(CVC5_MUZZLED) || defined(CVC5_COMPETITION_MODE)
37
#  define DO_SEMANTIC_CHECKS_BY_DEFAULT false
38
#else /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */
39
#  define DO_SEMANTIC_CHECKS_BY_DEFAULT true
40
#endif /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */
41
42
27407
struct HolderARRAYS
43
{
44
// clang-format off
45
  int64_t arraysConfig = 0;
46
  bool arraysConfigWasSetByUser = false;
47
  bool arraysEagerIndexSplitting = true;
48
  bool arraysEagerIndexSplittingWasSetByUser = false;
49
  bool arraysEagerLemmas = false;
50
  bool arraysEagerLemmasWasSetByUser = false;
51
  bool arraysExp = false;
52
  bool arraysExpWasSetByUser = false;
53
  bool arraysModelBased = false;
54
  bool arraysModelBasedWasSetByUser = false;
55
  bool arraysOptimizeLinear = true;
56
  bool arraysOptimizeLinearWasSetByUser = false;
57
  int64_t arraysPropagate = 2;
58
  bool arraysPropagateWasSetByUser = false;
59
  bool arraysReduceSharing = false;
60
  bool arraysReduceSharingWasSetByUser = false;
61
  bool arraysWeakEquivalence = false;
62
  bool arraysWeakEquivalenceWasSetByUser = false;
63
// clang-format on
64
};
65
66
#undef DO_SEMANTIC_CHECKS_BY_DEFAULT
67
68
// clang-format off
69
inline int64_t arraysConfig() { return Options::current().arrays.arraysConfig; }
70
20915
inline bool arraysEagerIndexSplitting() { return Options::current().arrays.arraysEagerIndexSplitting; }
71
208443
inline bool arraysEagerLemmas() { return Options::current().arrays.arraysEagerLemmas; }
72
inline bool arraysExp() { return Options::current().arrays.arraysExp; }
73
inline bool arraysModelBased() { return Options::current().arrays.arraysModelBased; }
74
42555
inline bool arraysOptimizeLinear() { return Options::current().arrays.arraysOptimizeLinear; }
75
71397
inline int64_t arraysPropagate() { return Options::current().arrays.arraysPropagate; }
76
1435
inline bool arraysReduceSharing() { return Options::current().arrays.arraysReduceSharing; }
77
128514
inline bool arraysWeakEquivalence() { return Options::current().arrays.arraysWeakEquivalence; }
78
// clang-format on
79
80
namespace arrays
81
{
82
// clang-format off
83
static constexpr const char* arraysConfig__name = "arrays-config";
84
static constexpr const char* arraysEagerIndexSplitting__name = "arrays-eager-index";
85
static constexpr const char* arraysEagerLemmas__name = "arrays-eager-lemmas";
86
static constexpr const char* arraysExp__name = "arrays-exp";
87
static constexpr const char* arraysModelBased__name = "arrays-model-based";
88
static constexpr const char* arraysOptimizeLinear__name = "arrays-optimize-linear";
89
static constexpr const char* arraysPropagate__name = "arrays-prop";
90
static constexpr const char* arraysReduceSharing__name = "arrays-reduce-sharing";
91
static constexpr const char* arraysWeakEquivalence__name = "arrays-weak-equiv";
92
93
void setDefaultArraysConfig(Options& opts, int64_t value);void setDefaultArraysEagerIndexSplitting(Options& opts, bool value);void setDefaultArraysEagerLemmas(Options& opts, bool value);void setDefaultArraysExp(Options& opts, bool value);void setDefaultArraysModelBased(Options& opts, bool value);void setDefaultArraysOptimizeLinear(Options& opts, bool value);void setDefaultArraysPropagate(Options& opts, int64_t value);void setDefaultArraysReduceSharing(Options& opts, bool value);void setDefaultArraysWeakEquivalence(Options& opts, bool value);
94
// clang-format on
95
}
96
97
}  // namespace cvc5::options
98
99
#endif /* CVC5__OPTIONS__ARRAYS_H */