@@ -51,6 +51,7 @@ enum ProjectionIDs {
51
51
static Logger log_fuzz(" fuzz" );
52
52
53
53
static RngSeed root_seed;
54
+ static uint64_t replicate_levels = 0 ;
54
55
55
56
static long long parse_long_long (const std::string &flag, const std::string &arg) {
56
57
long long result;
@@ -80,6 +81,7 @@ struct FuzzerConfig {
80
81
uint64_t region_tree_branch_factor = 4 ;
81
82
uint64_t region_tree_size_factor = 4 ;
82
83
uint64_t region_tree_num_fields = 4 ;
84
+ uint64_t replicate_levels = 0 ;
83
85
uint64_t num_ops = 1 ;
84
86
uint64_t skip_ops = 0 ;
85
87
@@ -105,6 +107,9 @@ struct FuzzerConfig {
105
107
} else if (flag == " -fuzz:fields" ) {
106
108
std::string arg (argv[++i]);
107
109
config.region_tree_num_fields = parse_uint64_t (flag, arg);
110
+ } else if (flag == " -fuzz:replicate" ) {
111
+ std::string arg (argv[++i]);
112
+ config.replicate_levels = parse_uint64_t (flag, arg);
108
113
} else if (flag == " -fuzz:ops" ) {
109
114
std::string arg (argv[++i]);
110
115
config.num_ops = parse_uint64_t (flag, arg);
@@ -127,6 +132,7 @@ struct FuzzerConfig {
127
132
<< region_tree_size_factor);
128
133
LOG_ONCE (log_fuzz.print () << " config.region_tree_num_fields = "
129
134
<< region_tree_num_fields);
135
+ LOG_ONCE (log_fuzz.print () << " config.replicate_levels = " << replicate_levels);
130
136
LOG_ONCE (log_fuzz.print () << " config.num_ops = " << num_ops);
131
137
LOG_ONCE (log_fuzz.print () << " config.skip_ops = " << skip_ops);
132
138
}
@@ -1205,8 +1211,9 @@ void top_level(const Task *task, const std::vector<PhysicalRegion> ®ions, Con
1205
1211
static void create_mappers (Machine machine, Runtime *runtime,
1206
1212
const std::set<Processor> &local_procs) {
1207
1213
for (Processor proc : local_procs) {
1208
- FuzzMapper::FuzzMapper *mapper = new FuzzMapper::FuzzMapper (
1209
- runtime->get_mapper_runtime (), machine, proc, root_seed.make_stream ());
1214
+ FuzzMapper::FuzzMapper *mapper =
1215
+ new FuzzMapper::FuzzMapper (runtime->get_mapper_runtime (), machine, proc,
1216
+ root_seed.make_stream (), replicate_levels);
1210
1217
runtime->replace_default_mapper (mapper, proc);
1211
1218
}
1212
1219
}
@@ -1219,6 +1226,7 @@ int main(int argc, char **argv) {
1219
1226
Runtime::initialize (&argc, &argv, true /* filter */ );
1220
1227
FuzzerConfig config = FuzzerConfig::parse_args (argc, argv);
1221
1228
root_seed = RngSeed (config.initial_seed );
1229
+ replicate_levels = config.replicate_levels ;
1222
1230
1223
1231
Runtime::preregister_projection_functor (PROJECTION_OFFSET_1_ID,
1224
1232
new OffsetProjection (1 ));
0 commit comments