# Portability Analysis for Axiomatic Memory Models. PORTHOS: One Tool for all Models

Research output: Contribution to conference › Paper › Scientific

### Standard

**Portability Analysis for Axiomatic Memory Models. PORTHOS: One Tool for all Models.** / Ponce-de-León, Hernán; Furbach, Florian; Heljanko, Keijo; Meyer, Roland.

Research output: Contribution to conference › Paper › Scientific

### Harvard

### APA

*Portability Analysis for Axiomatic Memory Models. PORTHOS: One Tool for all Models*.

### Vancouver

### Author

### Bibtex - Download

}

### RIS - Download

TY - CONF

T1 - Portability Analysis for Axiomatic Memory Models. PORTHOS: One Tool for all Models

AU - Ponce-de-León, Hernán

AU - Furbach, Florian

AU - Heljanko, Keijo

AU - Meyer, Roland

N1 - Extended version of the published SAS'2017 paper with the same title.

PY - 2017/4/28

Y1 - 2017/4/28

N2 - We present Porthos, the first tool that discovers porting bugs in performance-critical code. Porthos takes as input a program and the memory models of the source architecture for which the program has been developed and the target model to which it is ported. If the code is not portable, Porthos finds a bug in the form of an unexpected execution - an execution that is consistent with the target but inconsistent with the source memory model. Technically, Porthos implements a bounded model checking method that reduces the portability analysis problem to satisfiability modulo theories (SMT). There are two main problems in the reduction that we present novel and efficient solutions for. First, the formulation of the portability problem contains a quantifier alternation (consistent + inconsistent). We introduce a formula that encodes both in a single existential query. Second, the supported memory models (e.g., Power) contain recursive definitions. We compute the required least fixed point semantics for recursion (a problem that was left open in [47]) efficiently in SMT. Finally we present the first experimental analysis of portability from TSO to Power.

AB - We present Porthos, the first tool that discovers porting bugs in performance-critical code. Porthos takes as input a program and the memory models of the source architecture for which the program has been developed and the target model to which it is ported. If the code is not portable, Porthos finds a bug in the form of an unexpected execution - an execution that is consistent with the target but inconsistent with the source memory model. Technically, Porthos implements a bounded model checking method that reduces the portability analysis problem to satisfiability modulo theories (SMT). There are two main problems in the reduction that we present novel and efficient solutions for. First, the formulation of the portability problem contains a quantifier alternation (consistent + inconsistent). We introduce a formula that encodes both in a single existential query. Second, the supported memory models (e.g., Power) contain recursive definitions. We compute the required least fixed point semantics for recursion (a problem that was left open in [47]) efficiently in SMT. Finally we present the first experimental analysis of portability from TSO to Power.

KW - weak memory model

KW - portability

KW - verification

M3 - Paper

ER -

ID: 16859937