A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
mc/compare: dead stores.
[simgrid.git]
/
src
/
mc
/
compare.cpp
diff --git
a/src/mc/compare.cpp
b/src/mc/compare.cpp
index
485dfa7
..
151fda1
100644
(file)
--- a/
src/mc/compare.cpp
+++ b/
src/mc/compare.cpp
@@
-281,11
+281,6
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
{
simgrid::mc::RemoteClient* process = &mc_model_checker->process();
- /* Start comparison */
- int nb_diff1 = 0;
- int nb_diff2 = 0;
- bool equal;
-
/* Check busy blocks */
size_t i1 = 1;
@@
-341,7
+336,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
}
size_t i2 = 1;
-
equal
= false;
+
bool equal
= false;
/* Try first to associate to same block in the other heap */
if (heapinfo2->type == heapinfo1->type && state.equals_to2_(i1, 0).valid_ == 0) {
@@
-395,8
+390,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
if (not equal) {
XBT_DEBUG("Block %zu not found (size_used = %zu, addr = %p)", i1, heapinfo1->busy_block.busy_size, addr_block1);
- i1 = state.heaplimit + 1;
- nb_diff1++;
+ return false;
}
} else { /* Fragmented block */
@@
-412,7
+406,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
void* addr_frag1 = (void*)((char*)addr_block1 + (j1 << heapinfo1->type));
size_t i2 = 1;
-
equal
= false;
+
bool equal
= false;
/* Try first to associate to same fragment_ in the other heap */
if (heapinfo2->type == heapinfo1->type && not state.equals_to2_(i1, j1).valid_) {
@@
-456,7
+450,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
void* addr_frag2 = (void*)((char*)addr_block2 + (j2 << heapinfo2b->type));
int res_compare =
- compare_heap_area(state, addr_frag1, addr_frag2, snapshot
2
, snapshot2, nullptr, nullptr, 0);
+ compare_heap_area(state, addr_frag1, addr_frag2, snapshot
1
, snapshot2, nullptr, nullptr, 0);
if (res_compare != 1) {
equal = true;
break;
@@
-469,9
+463,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
if (not equal) {
XBT_DEBUG("Block %zu, fragment_ %zu not found (size_used = %zd, address = %p)\n", i1, j1,
heapinfo1->busy_frag.frag_size[j1], addr_frag1);
- i1 = state.heaplimit + 1;
- nb_diff1++;
- break;
+ return false;
}
}
@@
-487,7
+479,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
if (heapinfo1->type == MMALLOC_TYPE_UNFRAGMENTED && i1 == state.heaplimit && heapinfo1->busy_block.busy_size > 0 &&
not state.equals_to1_(i, 0).valid_) {
XBT_DEBUG("Block %zu not found (size used = %zu)", i, heapinfo1->busy_block.busy_size);
-
nb_diff1++
;
+
return false
;
}
if (heapinfo1->type <= 0)
@@
-495,13
+487,10
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
for (size_t j = 0; j < (size_t)(BLOCKSIZE >> heapinfo1->type); j++)
if (i1 == state.heaplimit && heapinfo1->busy_frag.frag_size[j] > 0 && not state.equals_to1_(i, j).valid_) {
XBT_DEBUG("Block %zu, Fragment %zu not found (size used = %zd)", i, j, heapinfo1->busy_frag.frag_size[j]);
-
nb_diff1++
;
+
return false
;
}
}
- if (i1 == state.heaplimit)
- XBT_DEBUG("Number of blocks/fragments not found in heap1: %d", nb_diff1);
-
for (size_t i = 1; i < state.heaplimit; i++) {
const malloc_info* heapinfo2 =
(const malloc_info*)heap_region2->read(&heapinfo_temp2, &heapinfos2[i], sizeof(malloc_info));
@@
-509,7
+498,7
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
not state.equals_to2_(i, 0).valid_) {
XBT_DEBUG("Block %zu not found (size used = %zu)", i,
heapinfo2->busy_block.busy_size);
-
nb_diff2++
;
+
return false
;
}
if (heapinfo2->type <= 0)
@@
-519,15
+508,11
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
if (i1 == state.heaplimit && heapinfo2->busy_frag.frag_size[j] > 0 && not state.equals_to2_(i, j).valid_) {
XBT_DEBUG("Block %zu, Fragment %zu not found (size used = %zd)",
i, j, heapinfo2->busy_frag.frag_size[j]);
-
nb_diff2++
;
+
return false
;
}
-
}
- if (i1 == state.heaplimit)
- XBT_DEBUG("Number of blocks/fragments not found in heap2: %d", nb_diff2);
-
- return nb_diff1 == 0 && nb_diff2 == 0;
+ return true;
}
/**
@@
-541,10
+526,10
@@
static bool mmalloc_heap_equal(simgrid::mc::StateComparator& state, simgrid::mc:
* @param size
* @param check_ignore
*/
-static
int compare_heap_area
_without_type(simgrid::mc::StateComparator& state, const void* real_area1,
-
const void* real_area2, simgrid::mc::Snapshot* snapshot1,
-
simgrid::mc::Snapshot* snapshot2, HeapLocationPairs* previous, int size,
-
int check_ignore)
+static
bool heap_area_equal
_without_type(simgrid::mc::StateComparator& state, const void* real_area1,
+ const void* real_area2, simgrid::mc::Snapshot* snapshot1,
+ simgrid::mc::Snapshot* snapshot2, HeapLocationPairs* previous, int size,
+ int check_ignore)
{
simgrid::mc::RemoteClient* process = &mc_model_checker->process();
simgrid::mc::Region* heap_region1 = MC_get_heap_region(snapshot1);
@@
-553,15
+538,13
@@
static int compare_heap_area_without_type(simgrid::mc::StateComparator& state, c
for (int i = 0; i < size; ) {
if (check_ignore > 0) {
- ssize_t ignore1 = heap_comparison_ignore_size(
- state.processStates[0].to_ignore, (char *) real_area1 + i);
+ ssize_t ignore1 = heap_comparison_ignore_size(state.processStates[0].to_ignore, (char*)real_area1 + i);
if (ignore1 != -1) {
- ssize_t ignore2 = heap_comparison_ignore_size(
- state.processStates[1].to_ignore, (char *) real_area2 + i);
+ ssize_t ignore2 = heap_comparison_ignore_size(state.processStates[1].to_ignore, (char*)real_area2 + i);
if (ignore2 == ignore1) {
if (ignore1 == 0) {
check_ignore--;
- return
0
;
+ return
true
;
} else {
i = i + ignore2;
check_ignore--;
@@
-587,22
+570,22
@@
static int compare_heap_area_without_type(simgrid::mc::StateComparator& state, c
&& addr_pointed1 < mc_snapshot_get_heap_end(snapshot1)
&& addr_pointed2 > state.std_heap_copy.heapbase
&& addr_pointed2 < mc_snapshot_get_heap_end(snapshot2)) {
- // Both addreses are in the heap:
+ // Both addres
s
es are in the heap:
int res_compare =
compare_heap_area(state, addr_pointed1, addr_pointed2, snapshot1, snapshot2, previous, nullptr, 0);
if (res_compare == 1)
- return
res_compar
e;
+ return
fals
e;
i = pointer_align + sizeof(void *);
continue;
}
- return
1
;
+ return
false
;
}
i++;
}
- return
0
;
+ return
true
;
}
/**
@@
-783,8
+766,8
@@
static int compare_heap_area_with_type(simgrid::mc::StateComparator& state, cons
return 0;
case DW_TAG_union_type:
- return
compare_heap_area
_without_type(state, real_area1, real_area2, snapshot1, snapshot2, previous,
- type->byte_size, check_ignore);
+ return
not heap_area_equal
_without_type(state, real_area1, real_area2, snapshot1, snapshot2, previous,
+
type->byte_size, check_ignore);
}
return 0;
}
@@
-1124,7
+1107,7
@@
static int compare_heap_area(simgrid::mc::StateComparator& state, const void* ar
check_ignore, pointer_level);
else
res_compare =
-
compare_heap_area
_without_type(state, area1, area2, snapshot1, snapshot2, previous, size, check_ignore);
+
not heap_area_equal
_without_type(state, area1, area2, snapshot1, snapshot2, previous, size, check_ignore);
if (res_compare == 1)
return res_compare;
@@
-1325,12
+1308,10
@@
static bool local_variables_equal(simgrid::mc::StateComparator& state, simgrid::
current_var2->subprogram->name.c_str(), current_var1->ip, current_var2->ip);
return false;
}
- // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
if (compare_areas_with_type(state, current_var1->address, snapshot1, snapshot1->get_region(current_var1->address),
current_var2->address, snapshot2, snapshot2->get_region(current_var2->address),
current_var1->type, 0) == 1) {
- // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
XBT_VERB("Local variable %s (%p - %p) in frame %s "
"is different between snapshots",
current_var1->name.c_str(), current_var1->address, current_var2->address,