TY - JOUR
T1 - Fence placement for legacy Data-Race-Free programs via synchronization read detection
AU - McPherson, Andrew J
AU - Nagarajan, Vijay
AU - Sarkar, Susmit
AU - Cintra, Marcelo
N1 - Funding: This research is supported by EPSRC grant EP/L000725/1 and an Intel early career faculty award to the University of Edinburgh.
PY - 2016/1/7
Y1 - 2016/1/7
N2 - Shared-memory programmers traditionally assumed Sequential Consistency (SC), but modern systems have relaxed memory consistency. Here, the trend in languages is towards Data-Race-Free (DRF) models, where, assuming annotated synchronizations and the program being well-synchronized by those synchronizations, the hardware and compiler guarantee SC. However, legacy programs lack annotations, so even well-synchronized (legacy DRF) programs aren’t recognized. For legacy DRF programs, we can significantly prune the set of memory orderings determined by automated fence placement, by automatically identifying synchronization reads. We prove our rules for identifying them conservative, implement them within LLVM, and observe a 30% average performance improvement over previous techniques.
AB - Shared-memory programmers traditionally assumed Sequential Consistency (SC), but modern systems have relaxed memory consistency. Here, the trend in languages is towards Data-Race-Free (DRF) models, where, assuming annotated synchronizations and the program being well-synchronized by those synchronizations, the hardware and compiler guarantee SC. However, legacy programs lack annotations, so even well-synchronized (legacy DRF) programs aren’t recognized. For legacy DRF programs, we can significantly prune the set of memory orderings determined by automated fence placement, by automatically identifying synchronization reads. We prove our rules for identifying them conservative, implement them within LLVM, and observe a 30% average performance improvement over previous techniques.
KW - Fence placement
KW - Relaxed memory models
U2 - 10.1145/2835179
DO - 10.1145/2835179
M3 - Article
SN - 1544-3566
VL - 12
JO - ACM Transactions on Architecture and Code Optimization (TACO)
JF - ACM Transactions on Architecture and Code Optimization (TACO)
IS - 4
M1 - 46
ER -