Like herd7, litmus7 checks memory-model behaviour of assembly programs; unlike herd7, it does so by running the program a very large number of times on an actual machine. This means that its results are not guaranteed to be complete.
Supporting it is useful for three use cases:
checking whether the actual memory order behaviour of a machine matches the modelled behaviour according to herd7;
investigating assembly that Herd doesn't yet support;
investigating assembly with fewer sanitiser passes than we need for Herd, which might be a bit more faithful to the original compilation (and helps us debug issues in the passes themselves).
It is not useful for getting a C11-compliant execution set from C, since it'll just compile the C down to assembly!
At time of writing, act has very rudimentary support for litmus in its litmusify mode. This issue tracks completing that support.
[x] Add (and test) remote invocation of litmus on other machines
[ ] Add results scraping
[ ] Connect litmus to test mode as an optional backend
Like
herd7
,litmus7
checks memory-model behaviour of assembly programs; unlikeherd7
, it does so by running the program a very large number of times on an actual machine. This means that its results are not guaranteed to be complete.Supporting it is useful for three use cases:
herd7
;It is not useful for getting a C11-compliant execution set from C, since it'll just compile the C down to assembly!
At time of writing,
act
has very rudimentary support forlitmus
in itslitmusify
mode. This issue tracks completing that support.litmus
on other machineslitmus
totest
mode as an optional backend