Peek: A Formally Verified Peephole Optimization Framework for x86

نویسندگان

  • Eric Mullen
  • Zachary Tatlock
  • Dan Grossman
چکیده

Peek is a first step toward adding support for assembly-level program analyses, transformations, and optimizations in CompCert. Currently, Peek focuses on x86 peephole transformations implemented and verified in Coq. Peek is designed to provide a modular interface requiring that each peephole optimization satisfy only local correctness properties. Our primary result establishes that, assuming the C calling convention, any peephole optimization satisfying these local properties preserves global program meaning.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Generic Speci cation for Verifying Peephole Optimizations

In this paper a generic speci cation for verifying local optimizations on machine code peephole optimization using the speci cation and veri ca tion system PVS is presented The scheme which provides useful de nitions basic properties and user de ned proof strategies abstracts from the speci c instruction set of a machine as well as from its semantics In addition we formally represent a stack ma...

متن کامل

A Formally Verified SSA-Based Middle-End - Static Single Assignment Meets CompCert

CompCert is a formally verified compiler that generates compact and efficient PowerPC, ARM and x86 code for a large and realistic subset of the C language. However, CompCert foregoes using Static Single Assignment (SSA), an intermediate representation that allows for writing simpler and faster optimizers, and is used by many compilers. In fact, it has remained an open problem to verify formally...

متن کامل

A CompCertTSO: A Verified Compiler for Relaxed-Memory Concurrency

In this paper, we consider the semantic design and verified compilation of a C-like programming language for concurrent shared-memory computation on x86 multiprocessors. The design of such a language is made surprisingly subtle by several factors: the relaxed-memory behavior of the hardware, the effects of compiler optimization on concurrent code, the need to support high-performance concurrent...

متن کامل

Binary Translation Using Peephole Superoptimizers

We present a new scheme for performing binary translation that produces code comparable to or better than existing binary translators with much less engineering effort. Instead of hand-coding the translation from one instruction set to another, our approach automatically learns translation rules using superoptimization techniques. We have implemented a PowerPC-x86 binary translator and report r...

متن کامل

ProverBot9000: Neural Networks for Proof Assistance

We introduce ProverBot9000, a state-of-the-art tool for proof automation and assistance. ProverBot9000 examines partially finished Coq proofs and proposes tactics to make progress on the proof. It generates these tactics using a neural network-based language model of Ltac. ProverBot9000 is trained on human-generated proofs so it suggests tactics that human experts are likely to use in a given p...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2014