This post discusses the use of formal methods to find and report defects in LLVM compiler's middle end optimizers and extending the work to cover one of LLVM's backends. It explores the refinement relation, the process of lifting compiled AArch64 code into Alive2 IR, and the bugs that have been found in the AArch64 backend.
Sort: