projects
/
c11tester.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
07a0b57
)
bug fix
author
root
<root@dw-6.eecs.uci.edu>
Tue, 2 Jul 2019 17:33:04 +0000
(10:33 -0700)
committer
root
<root@dw-6.eecs.uci.edu>
Tue, 2 Jul 2019 17:33:04 +0000
(10:33 -0700)
execution.cc
patch
|
blob
|
history
diff --git
a/execution.cc
b/execution.cc
index 40b83e05f9b7c2c6eecdaa7686a6846dceaedd40..e3a0a8550aa156055e181411184282216b2b1a42 100644
(file)
--- a/
execution.cc
+++ b/
execution.cc
@@
-1019,20
+1019,20
@@
bool ModelExecution::mo_may_allow(const ModelAction *writer, const ModelAction *
*/
ClockVector * ModelExecution::get_hb_from_write(ModelAction *rf) const {
*/
ClockVector * ModelExecution::get_hb_from_write(ModelAction *rf) const {
- SnapVector<
const
ModelAction *> * processset = NULL;
+ SnapVector<ModelAction *> * processset = NULL;
for ( ;rf != NULL;rf = rf->get_reads_from()) {
ASSERT(rf->is_write());
if (!rf->is_rmw() || (rf->is_acquire() && rf->is_release()) || rf->get_rfcv() != NULL)
break;
if (processset == NULL)
for ( ;rf != NULL;rf = rf->get_reads_from()) {
ASSERT(rf->is_write());
if (!rf->is_rmw() || (rf->is_acquire() && rf->is_release()) || rf->get_rfcv() != NULL)
break;
if (processset == NULL)
- processset = new SnapVector<
const
ModelAction *>();
+ processset = new SnapVector<ModelAction *>();
processset->push_back(rf);
}
processset->push_back(rf);
}
- int i = (processset == NULL) ?
1
: processset->size();
+ int i = (processset == NULL) ?
0
: processset->size();
ClockVector * vec = NULL;
ClockVector * vec = NULL;
-
for(;i > 0 ;i--
) {
+
while(true
) {
if (rf->get_rfcv() != NULL) {
vec = rf->get_rfcv();
} else if (rf->is_acquire() && rf->is_release()) {
if (rf->get_rfcv() != NULL) {
vec = rf->get_rfcv();
} else if (rf->is_acquire() && rf->is_release()) {
@@
-1053,6
+1053,11
@@
ClockVector * ModelExecution::get_hb_from_write(ModelAction *rf) const {
}
rf->set_rfcv(vec);
}
}
rf->set_rfcv(vec);
}
+ i--;
+ if (i >= 0) {
+ rf = (*processset)[i];
+ } else
+ break;
}
if (processset != NULL)
delete processset;
}
if (processset != NULL)
delete processset;