A Formally Verified Register Allocation Framework
نویسنده
چکیده
When using formal methods to generate compilers it is desirable for all levels of the compiler to be formally specified. Typically, register allocation has been thought to be equivalent to graph coloring. Since graph coloring is NP-Complete most algorithms for register allocation have been ad-hoc. This paper presents a framework for register allocation that has been formally verified using an inductive theorem prover.
منابع مشابه
Register Allocation with Instruction Scheduling : a New Approach 1
We present a new framework in which considerations of both register allocation and instruction scheduling can be applied uniformly and simultaneously. In this framework an optimal coloring of a graph, called the parallelizable interference graph, provides an optimal register allocation and preserves the property that no false dependences are introduced, thus all the options for parallelism are ...
متن کاملRegister Allocation Aware Instruction Selection
In existing optimization frameworks, compiler passes are not tightly integrated and often work at cross purposes. In this report we describe an integration framework for the key backend compiler optimizations of register allocation and instruction selection: Register Allocation Aware Instruction Selection (RAISE). We discover that the fundamental building block of the RAISE framework, register ...
متن کاملGlobal Stack Allocation – Register Allocation for Stack Machines
Register allocation is a critical part of any compiler, yet register allocation for stack machines has received relatively little attention in the past. We present a framework for the analysis of register allocation methods for stack machines which has allowed us to analyse current methods. We have used this framework to design the first truly procedure-wide register allocation methods for stac...
متن کاملA Framework for End-to-End Verification and Evaluation of Register Allocators
This paper presents a framework for designing, verifying, and evaluating register allocation algorithms. The proposed framework has three main components. The first component is MIRA, a language for describing programs prior to register allocation. The second component is FORD, a language that describes the results produced by the register allocator. The third component is a type checker for th...
متن کاملFormalizing Resourve Allocation in a Compiler
On the basis of an A-normal form intermediate language we formally specify resource allocation in a compiler for a strict functional language. Here, resource is to be understood in the most general sense: registers, temporaries, data representations, etc. All these should be (and can be, but have never been) speciied formally. Our approach employs a non-standard annotated type system for the fo...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Electr. Notes Theor. Comput. Sci.
دوره 82 شماره
صفحات -
تاریخ انتشار 2003