Weak Memory Models as LLVM-to-LLVM Transformations
Identifikátory výsledku
Kód výsledku v IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F00216224%3A14330%2F16%3A00088094" target="_blank" >RIV/00216224:14330/16:00088094 - isvavai.cz</a>
Výsledek na webu
<a href="http://dx.doi.org/10.1007/978-3-319-29817-7_13" target="_blank" >http://dx.doi.org/10.1007/978-3-319-29817-7_13</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.1007/978-3-319-29817-7_13" target="_blank" >10.1007/978-3-319-29817-7_13</a>
Alternativní jazyky
Jazyk výsledku
angličtina
Název v původním jazyce
Weak Memory Models as LLVM-to-LLVM Transformations
Popis výsledku v původním jazyce
Data races are among the most difficult software bugs to discover. They arise from multiple threads accessing the same memory location, a situation which is often hard to discern from source code alone. Detection of such bugs is further complicated by individual CPUs’ use of relaxed memory models. As a matter of fact, proving absence of data races is a typical task for automated formal verification. In this paper, we present a new approach for verification of multi-threaded C and C++ programs under weakened memory models (using store buffer emulation), using an unmodified model checker that assumes Sequential Consistency. In our workflow, a C or C++ program is translated into LLVM bitcode, which is then automatically extended with store buffer emulation. After this transformation, the extended LLVM bitcode is model-checked against safety and/or liveness properties with our explicit-state model checker DIVINE.
Název v anglickém jazyce
Weak Memory Models as LLVM-to-LLVM Transformations
Popis výsledku anglicky
Data races are among the most difficult software bugs to discover. They arise from multiple threads accessing the same memory location, a situation which is often hard to discern from source code alone. Detection of such bugs is further complicated by individual CPUs’ use of relaxed memory models. As a matter of fact, proving absence of data races is a typical task for automated formal verification. In this paper, we present a new approach for verification of multi-threaded C and C++ programs under weakened memory models (using store buffer emulation), using an unmodified model checker that assumes Sequential Consistency. In our workflow, a C or C++ program is translated into LLVM bitcode, which is then automatically extended with store buffer emulation. After this transformation, the extended LLVM bitcode is model-checked against safety and/or liveness properties with our explicit-state model checker DIVINE.
Klasifikace
Druh
D - Stať ve sborníku
CEP obor
IN - Informatika
OECD FORD obor
—
Návaznosti výsledku
Projekt
<a href="/cs/project/GA15-08772S" target="_blank" >GA15-08772S: Analýza korektnosti vícevláknových programů v C a C++</a><br>
Návaznosti
P - Projekt vyzkumu a vyvoje financovany z verejnych zdroju (s odkazem do CEP)
Ostatní
Rok uplatnění
2016
Kód důvěrnosti údajů
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Údaje specifické pro druh výsledku
Název statě ve sborníku
Mathematical and Engineering Methods in Computer Science - 10th International Doctoral Workshop
ISBN
9783319298160
ISSN
0302-9743
e-ISSN
—
Počet stran výsledku
12
Strana od-do
144-155
Název nakladatele
Springer
Místo vydání
Neuveden
Místo konání akce
Telč
Datum konání akce
1. 1. 2015
Typ akce podle státní příslušnosti
CST - Celostátní akce
Kód UT WoS článku
—