-
Notifications
You must be signed in to change notification settings - Fork 87
Open
Labels
benchmarkingc11featuregood first issueprecisionstudent-jobsv-compSV-COMP (analyses, results), witnessesSV-COMP (analyses, results), witnesses
Milestone
Description
There are multiple families of atomic operations:
- GCC
__syncbuiltins: https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html. - C11: https://en.cppreference.com/w/c/thread#Atomic_operations.
There are three aspects in which to improve precision:
- Not emitting race warnings for accesses by atomic functions. Do not produce racewarnings for types annotated as
_Atomic#521 only applies to variables with C11_Atomic, but not the__syncbuiltins used by various benchmarks. There should probably still be access events for them, but with an additional atomicity flag to exclude them from racing. - Performing the respective operations on values as opposed to invalidating (suggested in Add missing library functions for Concrat benchmarks #996 (comment)).
- Treating limited statements on atomic variables as atomic altogether:
Built-in increment and decrement operators and compound assignment are read-modify-write atomic operations with total sequentially consistent ordering (as if using memory_order_seq_cst).
Metadata
Metadata
Assignees
Labels
benchmarkingc11featuregood first issueprecisionstudent-jobsv-compSV-COMP (analyses, results), witnessesSV-COMP (analyses, results), witnesses