GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/options/arrays_options.h Lines: 15 15 100.0 %
Date: 2021-05-22 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 {
31
namespace options {
32
33
// clang-format off
34
35
// clang-format on
36
37
#if defined(CVC5_MUZZLED) || defined(CVC5_COMPETITION_MODE)
38
#  define DO_SEMANTIC_CHECKS_BY_DEFAULT false
39
#else /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */
40
#  define DO_SEMANTIC_CHECKS_BY_DEFAULT true
41
#endif /* CVC5_MUZZLED || CVC5_COMPETITION_MODE */
42
43
25268
struct HolderARRAYS
44
{
45
// clang-format off
46
  int arraysConfig = 0;\
47
  bool arraysConfig__setByUser__ = false;
48
  bool arraysEagerIndexSplitting = true;\
49
  bool arraysEagerIndexSplitting__setByUser__ = false;
50
  bool arraysEagerLemmas = false;\
51
  bool arraysEagerLemmas__setByUser__ = false;
52
  bool arraysExp = false;\
53
  bool arraysExp__setByUser__ = false;
54
  bool arraysModelBased = false;\
55
  bool arraysModelBased__setByUser__ = false;
56
  bool arraysOptimizeLinear = true;\
57
  bool arraysOptimizeLinear__setByUser__ = false;
58
  int arraysPropagate = 2;\
59
  bool arraysPropagate__setByUser__ = false;
60
  bool arraysReduceSharing = false;\
61
  bool arraysReduceSharing__setByUser__ = false;
62
  bool arraysWeakEquivalence = false;\
63
  bool arraysWeakEquivalence__setByUser__ = false;
64
// clang-format on
65
};
66
67
#undef DO_SEMANTIC_CHECKS_BY_DEFAULT
68
69
// clang-format off
70
extern struct arraysConfig__option_t
71
{
72
  typedef int type;
73
  type operator()() const;
74
} thread_local arraysConfig;
75
extern struct arraysEagerIndexSplitting__option_t
76
{
77
  typedef bool type;
78
  type operator()() const;
79
} thread_local arraysEagerIndexSplitting;
80
extern struct arraysEagerLemmas__option_t
81
{
82
  typedef bool type;
83
  type operator()() const;
84
} thread_local arraysEagerLemmas;
85
extern struct arraysExp__option_t
86
{
87
  typedef bool type;
88
  type operator()() const;
89
} thread_local arraysExp;
90
extern struct arraysModelBased__option_t
91
{
92
  typedef bool type;
93
  type operator()() const;
94
} thread_local arraysModelBased;
95
extern struct arraysOptimizeLinear__option_t
96
{
97
  typedef bool type;
98
  type operator()() const;
99
} thread_local arraysOptimizeLinear;
100
extern struct arraysPropagate__option_t
101
{
102
  typedef int type;
103
  type operator()() const;
104
} thread_local arraysPropagate;
105
extern struct arraysReduceSharing__option_t
106
{
107
  typedef bool type;
108
  type operator()() const;
109
} thread_local arraysReduceSharing;
110
extern struct arraysWeakEquivalence__option_t
111
{
112
  typedef bool type;
113
  type operator()() const;
114
} thread_local arraysWeakEquivalence;
115
// clang-format on
116
117
namespace arrays
118
{
119
// clang-format off
120
static constexpr const char* arraysConfig__name = "arrays-config";
121
static constexpr const char* arraysEagerIndexSplitting__name = "arrays-eager-index";
122
static constexpr const char* arraysEagerLemmas__name = "arrays-eager-lemmas";
123
static constexpr const char* arraysExp__name = "arrays-exp";
124
static constexpr const char* arraysModelBased__name = "arrays-model-based";
125
static constexpr const char* arraysOptimizeLinear__name = "arrays-optimize-linear";
126
static constexpr const char* arraysPropagate__name = "arrays-prop";
127
static constexpr const char* arraysReduceSharing__name = "arrays-reduce-sharing";
128
static constexpr const char* arraysWeakEquivalence__name = "arrays-weak-equiv";
129
// clang-format on
130
}
131
132
}  // namespace options
133
134
// clang-format off
135
template <> options::arraysConfig__option_t::type& Options::ref(
136
    options::arraysConfig__option_t);
137
template <> const options::arraysConfig__option_t::type& Options::operator[](
138
    options::arraysConfig__option_t) const;
139
template <> bool Options::wasSetByUser(options::arraysConfig__option_t) const;
140
template <> options::arraysEagerIndexSplitting__option_t::type& Options::ref(
141
    options::arraysEagerIndexSplitting__option_t);
142
template <> const options::arraysEagerIndexSplitting__option_t::type& Options::operator[](
143
    options::arraysEagerIndexSplitting__option_t) const;
144
template <> bool Options::wasSetByUser(options::arraysEagerIndexSplitting__option_t) const;
145
template <> options::arraysEagerLemmas__option_t::type& Options::ref(
146
    options::arraysEagerLemmas__option_t);
147
template <> const options::arraysEagerLemmas__option_t::type& Options::operator[](
148
    options::arraysEagerLemmas__option_t) const;
149
template <> bool Options::wasSetByUser(options::arraysEagerLemmas__option_t) const;
150
template <> options::arraysExp__option_t::type& Options::ref(
151
    options::arraysExp__option_t);
152
template <> const options::arraysExp__option_t::type& Options::operator[](
153
    options::arraysExp__option_t) const;
154
template <> bool Options::wasSetByUser(options::arraysExp__option_t) const;
155
template <> options::arraysModelBased__option_t::type& Options::ref(
156
    options::arraysModelBased__option_t);
157
template <> const options::arraysModelBased__option_t::type& Options::operator[](
158
    options::arraysModelBased__option_t) const;
159
template <> bool Options::wasSetByUser(options::arraysModelBased__option_t) const;
160
template <> options::arraysOptimizeLinear__option_t::type& Options::ref(
161
    options::arraysOptimizeLinear__option_t);
162
template <> const options::arraysOptimizeLinear__option_t::type& Options::operator[](
163
    options::arraysOptimizeLinear__option_t) const;
164
template <> bool Options::wasSetByUser(options::arraysOptimizeLinear__option_t) const;
165
template <> options::arraysPropagate__option_t::type& Options::ref(
166
    options::arraysPropagate__option_t);
167
template <> const options::arraysPropagate__option_t::type& Options::operator[](
168
    options::arraysPropagate__option_t) const;
169
template <> bool Options::wasSetByUser(options::arraysPropagate__option_t) const;
170
template <> options::arraysReduceSharing__option_t::type& Options::ref(
171
    options::arraysReduceSharing__option_t);
172
template <> const options::arraysReduceSharing__option_t::type& Options::operator[](
173
    options::arraysReduceSharing__option_t) const;
174
template <> bool Options::wasSetByUser(options::arraysReduceSharing__option_t) const;
175
template <> options::arraysWeakEquivalence__option_t::type& Options::ref(
176
    options::arraysWeakEquivalence__option_t);
177
template <> const options::arraysWeakEquivalence__option_t::type& Options::operator[](
178
    options::arraysWeakEquivalence__option_t) const;
179
template <> bool Options::wasSetByUser(options::arraysWeakEquivalence__option_t) const;
180
// clang-format on
181
182
namespace options {
183
// clang-format off
184
inline arraysConfig__option_t::type arraysConfig__option_t::operator()() const
185
{
186
  return Options::current()[*this];
187
}
188
16992
inline arraysEagerIndexSplitting__option_t::type arraysEagerIndexSplitting__option_t::operator()() const
189
{
190
16992
  return Options::current()[*this];
191
}
192
166434
inline arraysEagerLemmas__option_t::type arraysEagerLemmas__option_t::operator()() const
193
{
194
166434
  return Options::current()[*this];
195
}
196
9460
inline arraysExp__option_t::type arraysExp__option_t::operator()() const
197
{
198
9460
  return Options::current()[*this];
199
}
200
inline arraysModelBased__option_t::type arraysModelBased__option_t::operator()() const
201
{
202
  return Options::current()[*this];
203
}
204
36048
inline arraysOptimizeLinear__option_t::type arraysOptimizeLinear__option_t::operator()() const
205
{
206
36048
  return Options::current()[*this];
207
}
208
61764
inline arraysPropagate__option_t::type arraysPropagate__option_t::operator()() const
209
{
210
61764
  return Options::current()[*this];
211
}
212
1956
inline arraysReduceSharing__option_t::type arraysReduceSharing__option_t::operator()() const
213
{
214
1956
  return Options::current()[*this];
215
}
216
111018
inline arraysWeakEquivalence__option_t::type arraysWeakEquivalence__option_t::operator()() const
217
{
218
111018
  return Options::current()[*this];
219
}
220
// clang-format on
221
222
}  // namespace options
223
}  // namespace cvc5
224
225
#endif /* CVC5__OPTIONS__ARRAYS_H */