# Formal-Methods-Based Bugfinding for LLVM's AArch64 Backend

DevFeed: [Formal-Methods-Based Bugfinding for LLVM's AArch64 Backend](<https://devfeed.tech/articles/formal-methods-based-bugfinding-for-llvm-s-aarch64-backend-39749.md>)

Original publisher: [Read original article](<https://blog.regehr.org/archives/2265>)

Author: regehr

Published: 2022-06-06T14:58:02Z

Content type: article

Language: en

Sources: [Embedded in Academia](<https://devfeed.tech/sources/embedded-in-academia.md>)

Topics: [Formal methods](<https://devfeed.tech/topics/formal-methods.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [backends](<https://devfeed.tech/topics/backends.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [backend](<https://devfeed.tech/tags/backend.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [formal-methods](<https://devfeed.tech/tags/formal-methods.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [software-correctness](<https://devfeed.tech/tags/software-correctness.md>)

## AI overview

The article explains how Alive2, a formal methods tool, is extended to validate LLVM's AArch64 backend. The approach lifts compiled AArch64 code into Alive2 IR and checks whether the lifted code refines the original LLVM code, helping identify backend correctness violations.

## Source excerpt

[This piece is co-authored by Ryan Berger and Stefan Mada (both Utah CS undergrads), by Nader Boushehri, and by John Regehr.] An optimizing compiler traditionally has three main parts: a frontend that translates a source language into an intermediate representation (IR), a "middle end" that rewrites IR into better IR, and then a backend that [...]