Skip to content

Commit 88b87d3

Browse files
author
Daniel Kroening
authored
Merge pull request #527 from martin-cs/pointer-analysis-tidy
Pointer analysis tidy
2 parents 4da4b1f + b71febf commit 88b87d3

File tree

3 files changed

+43
-93
lines changed

3 files changed

+43
-93
lines changed

src/pointer-analysis/value_set_analysis_fi.cpp

+7-17
Original file line numberDiff line numberDiff line change
@@ -202,31 +202,21 @@ void value_set_analysis_fit::add_vars(
202202
get_globals(globals);
203203

204204
value_set_fit &v=state.value_set;
205+
v.add_vars(globals);
205206

206-
for(goto_functionst::function_mapt::const_iterator
207-
f_it=goto_functions.function_map.begin();
208-
f_it!=goto_functions.function_map.end();
209-
f_it++)
207+
forall_goto_functions(f_it, goto_functions)
210208
{
211209
// get the locals
212210
std::set<irep_idt> locals;
213211
get_local_identifiers(f_it->second, locals);
214212

215-
forall_goto_program_instructions(i_it, f_it->second.body)
213+
for(auto l : locals)
216214
{
217-
v.add_vars(globals);
215+
const symbolt &symbol=ns.lookup(l);
218216

219-
for(std::set<irep_idt>::const_iterator
220-
l_it=locals.begin();
221-
l_it!=locals.end();
222-
l_it++)
223-
{
224-
const symbolt &symbol=ns.lookup(*l_it);
225-
226-
std::list<value_set_fit::entryt> entries;
227-
get_entries(symbol, entries);
228-
v.add_vars(entries);
229-
}
217+
std::list<value_set_fit::entryt> entries;
218+
get_entries(symbol, entries);
219+
v.add_vars(entries);
230220
}
231221
}
232222
}

src/pointer-analysis/value_set_analysis_fivr.cpp

+18-38
Original file line numberDiff line numberDiff line change
@@ -84,33 +84,23 @@ void value_set_analysis_fivrt::add_vars(
8484
entry_cachet entry_cache;
8585

8686
value_set_fivrt &v=state.value_set;
87+
v.add_vars(globals);
8788

88-
for(goto_programt::instructionst::const_iterator
89-
i_it=goto_program.instructions.begin();
90-
i_it!=goto_program.instructions.end();
91-
i_it++)
89+
for(auto l : locals)
9290
{
93-
v.add_vars(globals);
91+
// cache hit?
92+
entry_cachet::const_iterator e_it=entry_cache.find(l);
9493

95-
for(goto_programt::decl_identifierst::const_iterator
96-
l_it=locals.begin();
97-
l_it!=locals.end();
98-
l_it++)
94+
if(e_it==entry_cache.end())
9995
{
100-
// cache hit?
101-
entry_cachet::const_iterator e_it=entry_cache.find(*l_it);
96+
const symbolt &symbol=ns.lookup(l);
10297

103-
if(e_it==entry_cache.end())
104-
{
105-
const symbolt &symbol=ns.lookup(*l_it);
106-
107-
std::list<value_set_fivrt::entryt> &entries=entry_cache[*l_it];
108-
get_entries(symbol, entries);
109-
v.add_vars(entries);
110-
}
111-
else
112-
v.add_vars(e_it->second);
98+
std::list<value_set_fivrt::entryt> &entries=entry_cache[l];
99+
get_entries(symbol, entries);
100+
v.add_vars(entries);
113101
}
102+
else
103+
v.add_vars(e_it->second);
114104
}
115105
}
116106

@@ -202,31 +192,21 @@ void value_set_analysis_fivrt::add_vars(
202192
get_globals(globals);
203193

204194
value_set_fivrt &v=state.value_set;
195+
v.add_vars(globals);
205196

206-
for(goto_functionst::function_mapt::const_iterator
207-
f_it=goto_functions.function_map.begin();
208-
f_it!=goto_functions.function_map.end();
209-
f_it++)
197+
forall_goto_functions(f_it, goto_functions)
210198
{
211199
// get the locals
212200
std::set<irep_idt> locals;
213201
get_local_identifiers(f_it->second, locals);
214202

215-
forall_goto_program_instructions(i_it, f_it->second.body)
203+
for(auto l : locals)
216204
{
217-
v.add_vars(globals);
205+
const symbolt &symbol=ns.lookup(l);
218206

219-
for(std::set<irep_idt>::const_iterator
220-
l_it=locals.begin();
221-
l_it!=locals.end();
222-
l_it++)
223-
{
224-
const symbolt &symbol=ns.lookup(*l_it);
225-
226-
std::list<value_set_fivrt::entryt> entries;
227-
get_entries(symbol, entries);
228-
v.add_vars(entries);
229-
}
207+
std::list<value_set_fivrt::entryt> entries;
208+
get_entries(symbol, entries);
209+
v.add_vars(entries);
230210
}
231211
}
232212
}

src/pointer-analysis/value_set_analysis_fivrns.cpp

+18-38
Original file line numberDiff line numberDiff line change
@@ -84,33 +84,23 @@ void value_set_analysis_fivrnst::add_vars(
8484
entry_cachet entry_cache;
8585

8686
value_set_fivrnst &v=state.value_set;
87+
v.add_vars(globals);
8788

88-
for(goto_programt::instructionst::const_iterator
89-
i_it=goto_program.instructions.begin();
90-
i_it!=goto_program.instructions.end();
91-
i_it++)
89+
for(auto l : locals)
9290
{
93-
v.add_vars(globals);
91+
// cache hit?
92+
entry_cachet::const_iterator e_it=entry_cache.find(l);
9493

95-
for(goto_programt::decl_identifierst::const_iterator
96-
l_it=locals.begin();
97-
l_it!=locals.end();
98-
l_it++)
94+
if(e_it==entry_cache.end())
9995
{
100-
// cache hit?
101-
entry_cachet::const_iterator e_it=entry_cache.find(*l_it);
96+
const symbolt &symbol=ns.lookup(l);
10297

103-
if(e_it==entry_cache.end())
104-
{
105-
const symbolt &symbol=ns.lookup(*l_it);
106-
107-
std::list<value_set_fivrnst::entryt> &entries=entry_cache[*l_it];
108-
get_entries(symbol, entries);
109-
v.add_vars(entries);
110-
}
111-
else
112-
v.add_vars(e_it->second);
98+
std::list<value_set_fivrnst::entryt> &entries=entry_cache[l];
99+
get_entries(symbol, entries);
100+
v.add_vars(entries);
113101
}
102+
else
103+
v.add_vars(e_it->second);
114104
}
115105
}
116106

@@ -202,31 +192,21 @@ void value_set_analysis_fivrnst::add_vars(
202192
get_globals(globals);
203193

204194
value_set_fivrnst &v=state.value_set;
195+
v.add_vars(globals);
205196

206-
for(goto_functionst::function_mapt::const_iterator
207-
f_it=goto_functions.function_map.begin();
208-
f_it!=goto_functions.function_map.end();
209-
f_it++)
197+
forall_goto_functions(f_it, goto_functions)
210198
{
211199
// get the locals
212200
std::set<irep_idt> locals;
213201
get_local_identifiers(f_it->second, locals);
214202

215-
forall_goto_program_instructions(i_it, f_it->second.body)
203+
for(auto l : locals)
216204
{
217-
v.add_vars(globals);
205+
const symbolt &symbol=ns.lookup(l);
218206

219-
for(std::set<irep_idt>::const_iterator
220-
l_it=locals.begin();
221-
l_it!=locals.end();
222-
l_it++)
223-
{
224-
const symbolt &symbol=ns.lookup(*l_it);
225-
226-
std::list<value_set_fivrnst::entryt> entries;
227-
get_entries(symbol, entries);
228-
v.add_vars(entries);
229-
}
207+
std::list<value_set_fivrnst::entryt> entries;
208+
get_entries(symbol, entries);
209+
v.add_vars(entries);
230210
}
231211
}
232212
}

0 commit comments

Comments
 (0)