Skip to content

Commit 6acbdb2

Browse files
Fix
Signed-off-by: Hernan Ponce de Leon <[email protected]>
1 parent 9a58fa2 commit 6acbdb2

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

dartagnan/src/main/java/com/dat3m/dartagnan/wmm/analysis/LazyRelationAnalysis.java

+12
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.dat3m.dartagnan.program.analysis.ReachingDefinitionsAnalysis;
1010
import com.dat3m.dartagnan.program.analysis.alias.AliasAnalysis;
1111
import com.dat3m.dartagnan.program.event.Event;
12+
import com.dat3m.dartagnan.program.event.RegReader;
1213
import com.dat3m.dartagnan.program.event.Tag;
1314
import com.dat3m.dartagnan.program.event.core.*;
1415
import com.dat3m.dartagnan.program.filter.Filter;
@@ -32,6 +33,7 @@
3233
import java.util.concurrent.ConcurrentHashMap;
3334
import java.util.stream.Collectors;
3435

36+
import static com.dat3m.dartagnan.configuration.Arch.RISCV;
3537
import static com.dat3m.dartagnan.program.Register.UsageType.*;
3638
import static com.dat3m.dartagnan.program.event.Tag.FENCE;
3739
import static com.dat3m.dartagnan.program.event.Tag.VISIBLE;
@@ -231,6 +233,16 @@ public RelationAnalysis.Knowledge visitInternalDataDependency(DirectDataDependen
231233

232234
private EventGraph computeInternalDependencies(Set<Register.UsageType> usageTypes) {
233235
Map<Event, Set<Event>> data = new HashMap<>();
236+
program.getThreadEvents(RegReader.class).forEach(reader -> {
237+
ReachingDefinitionsAnalysis.Writers state = definitions.getWriters(reader);
238+
reader.getRegisterReads().forEach(read -> {
239+
if (usageTypes.contains(read.usageType())) {
240+
Register register = read.register();
241+
state.ofRegister(register).getMayWriters()
242+
.forEach(writer -> data.computeIfAbsent(writer, x -> new HashSet<>()).add(reader));
243+
}
244+
});
245+
});
234246
if (usageTypes.contains(DATA)) {
235247
program.getThreadEvents(ExecutionStatus.class).forEach(execStatus -> {
236248
if (execStatus.doesTrackDep()) {

0 commit comments

Comments
 (0)