Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering 2017
DOI: 10.1145/3106237.3106243
|View full text |Cite
|
Sign up to set email alerts
|

Thread-modular static analysis for relaxed memory models

Abstract: We propose a memory-model-aware static program analysis method for accurately analyzing the behavior of concurrent software running on processors with weak consistency models such as x86-TSO, SPARC-PSO, and SPARC-RMO. At the center of our method is a unified framework for deciding the feasibility of inter-thread interferences to avoid propagating spurious data flows during static analysis and thus boost the performance of the static analyzer. We formulate the checking of interference feasibility as a set of Da… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
14
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5
2

Relationship

3
4

Authors

Journals

citations
Cited by 18 publications
(14 citation statements)
references
References 79 publications
0
14
0
Order By: Relevance
“…Abstract interpretation [14] is a static analysis framework that considers all paths and inputs to obtain a sound overapproximation of the state at every program location [31,32,52]. For efficiency reasons, the state is kept abstract and often represented by a set of constraints in a certain abstract domain.…”
Section: Abstract Interpretationmentioning
confidence: 99%
“…Abstract interpretation [14] is a static analysis framework that considers all paths and inputs to obtain a sound overapproximation of the state at every program location [31,32,52]. For efficiency reasons, the state is kept abstract and often represented by a set of constraints in a certain abstract domain.…”
Section: Abstract Interpretationmentioning
confidence: 99%
“…Leveraging our Method in Production. For realistic production-ready analyses, one should likely couple this analysis with a less precise, more scalable one, such as a non-relational or flow-insensitive one [11,14]. The precise one should be used on the small difficult parts of the programs, typically when synchronisation happens and precision is needed to model the interaction between threads.…”
Section: Improvements On Scalingmentioning
confidence: 99%
“…Kusano et al [11] propose a thread-modular analysis for relaxed memory models, including TSO and PSO. They rely on quickly generating imprecise interference sets and leverage a Datalog solver to remove interferences combinations that can be proved impossible.…”
Section: Related Workmentioning
confidence: 99%
“…In this work, we assume sequential consistency but Datalog is capable of handling weaker memory models [31] as well.…”
Section: Rules For Intra-thread Dependencymentioning
confidence: 99%
“…Our method relies on the Datalog-based declarative program analysis framework, which previously has been applied to both sequential and concurrent programs as well as web applications [10, 15, 17, 19-22, 25, 34, 36, 40, 44, 47, 53]. In the context of static analysis of concurrent programs, for example, Kusano and Wang [30,31] used Datalog in a thread-modular abstract interpretation to check the feasibility of inter-thread data-flow edges on sequentially consistent and weaker memory models. Sung et al [45] used a similar technique for modeling preemption scheduling of interrupts and thus improving the accuracy of static analysis for interrupt-driven programs.…”
Section: Related Workmentioning
confidence: 99%