Skip to content

Commit 805dc55

Browse files
zhixing-xutautschnig
authored andcommitted
clean up parser options, set regression test3 as KNOWNBUG
1 parent d3dff22 commit 805dc55

File tree

7 files changed

+12
-19
lines changed

7 files changed

+12
-19
lines changed

regression/cbmc/Abstract-loops3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--bounds-check --pointer-check --abstract-loops --abstractset main.0
44
^EXIT=10$

regression/goto-instrument/abstract-loops3/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--bounds-check --pointer-check --add-library --abstract-loops --abstractset main.0
44
^EXIT=10$

src/cbmc/cbmc_parse_options.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -907,7 +907,7 @@ bool cbmc_parse_optionst::process_goto_program(
907907
loop_mapt target_loop_map;
908908
if(options.is_set("abstractset"))
909909
if(parse_absloopset(options.get_option("abstractset"), target_loop_map))
910-
throw "Cannot understand input loop";
910+
throw "cannot understand input loop";
911911
abstract_loops(goto_model, target_loop_map);
912912
}
913913

@@ -1009,8 +1009,8 @@ void cbmc_parse_optionst::help()
10091009
HELP_REACHABILITY_SLICER_FB
10101010
" --full-slice run full slicer (experimental)\n" // NOLINT(*)
10111011
" --drop-unused-functions drop functions trivially unreachable from main function\n" // NOLINT(*)
1012-
" --abstract-loops shrink loop into single iter if the assertions are based on single iter (experimental)\n"
1013-
" --abstractset L,... only shrink loop L, shrink every loop if the flag is not given\n"
1012+
" --abstract-loops shrink loop based on assertion dependency (experimental)\n"
1013+
" --abstractset L,... only shrink loop L,...\n"
10141014
"\n"
10151015
"Semantic transformations:\n"
10161016
// NOLINTNEXTLINE(whitespace/line_length)

src/cbmc/cbmc_parse_options.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ class optionst;
4242
OPT_BMC \
4343
"(preprocess)(slice-by-trace):" \
4444
OPT_FUNCTIONS \
45-
"(no-simplify)(full-slice)(abstract-loops)(abstractset):" \
45+
"(no-simplify)(full-slice)" \
46+
"(abstract-loops)(abstractset):"\
4647
OPT_REACHABILITY_SLICER \
4748
"(debug-level):(no-propagation)(no-simplify-if)" \
4849
"(document-subgoals)(outfile):(test-preprocessor)" \

src/goto-instrument/abstract_loops.cpp

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ class abstract_loopst
5454
protected:
5555
// target abstract loop number for each function
5656
loop_mapt target_loop_map;
57-
// set of all leaf dependency nodes for loop variables
58-
//nodeset leaf_nodes;
59-
//nodeset update_nodes;
6057
// current function
6158
irep_idt fn;
6259
// map from instruction line # to the set of loops it belongs to
@@ -119,7 +116,7 @@ class abstract_loopst
119116
}
120117

121118
/// Check if a node has self-cycle in data dependency
122-
/// Inefficient method, will get updated
119+
/// Inefficient method, should get updated
123120
/// \param target: node location
124121
/// \param dep_graph: dependency graph for the program
125122
bool is_in_cycle(unsigned target, const dependence_grapht &dep_graph)
@@ -273,7 +270,6 @@ void abstract_loopst::update_shrinkability(unsigned loc, irep_idt func)
273270
{
274271
for(auto loop_n: insloop_map[loc])
275272
{
276-
//irep_idt func = dep_graph[loc].PC->function;
277273
abstract_loopt *loop_info = &(absloop_map[func].find(loop_n)->second);
278274
loop_info->shrinkable = false;
279275
#ifdef DEBUG_ABSTRACT_LOOPS
@@ -328,8 +324,6 @@ void abstract_loopst::check_assertion(unsigned location,
328324
it != data_deps.end(); ++it)
329325
{
330326
add_to_queue(dep_set, dep_queue, (*it)->location_number);
331-
//if(is_in_cycle(node, dep_graph))
332-
//update_set.insert(node);
333327
if(ctrl_set.find(node) == ctrl_set.end())
334328
update_set.insert(node);
335329
}
@@ -570,9 +564,6 @@ void abstract_loopst::get_loop_info(
570564
insloop_map[n].insert(last->loop_number);
571565

572566
absloop_map[fn].insert(loopnum_pair(last->loop_number, loop_info));
573-
//leaf_nodes.insert(loop_info.var_leaves.begin(), loop_info.var_leaves.end());
574-
//update_nodes.insert(loop_info.var_updates.begin(),
575-
//loop_info.var_updates.end());
576567
}
577568

578569
/// Main function for abstraction, has 3 iterations to

src/goto-instrument/goto_instrument_parse_options.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1651,8 +1651,8 @@ void goto_instrument_parse_optionst::help()
16511651
" --havoc-loops over-approximate all loops\n"
16521652
" --accelerate add loop accelerators\n"
16531653
" --skip-loops <loop-ids> add gotos to skip selected loops during execution\n" // NOLINT(*)
1654-
" --abstract-loops shrink loop into single iter if the assertions are based on single iter\n"
1655-
" --abstractset L,... only shrink loop L, shrink every loop if the flag is not given\n"
1654+
" --abstract-loops shrink loop based on assertion dependency (experimental)\n"
1655+
" --abstractset L,... only shrink loop L,...\n"
16561656
"\n"
16571657
"Memory model instrumentations:\n"
16581658
" --mm <tso,pso,rmo,power> instruments a weak memory model\n"

src/goto-instrument/goto_instrument_parse_options.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ Author: Daniel Kroening, [email protected]
8383
"(show-symbol-table)(show-points-to)(show-rw-set)" \
8484
"(cav11)" \
8585
OPT_TIMESTAMP \
86-
"(show-natural-loops)(accelerate)(havoc-loops)(abstract-loops)(abstractset):" \
86+
"(show-natural-loops)(accelerate)(havoc-loops)" \
87+
"(abstract-loops)(abstractset):" \
8788
"(error-label):(string-abstraction)" \
8889
"(verbosity):(version)(xml-ui)(json-ui)(show-loops)" \
8990
"(accelerate)(constant-propagator)" \

0 commit comments

Comments
 (0)