It is frequently needed to compile stack-machine codes into register-machine codes. One important optimization in such compilers is reducing the stack access overhead. But an effective mapping of stack values into registers is not straightforward. In this article, we present a formal yet effective technique of inferring the two types of each stack value. We infer the type of a stack value when it is pushed (push-type) and the type when it is used (pop-type). These two type information is safely estimated across the basic blocks by a global data-flow analysis. Using this type information, we can safely use as many typed registers as possible in storing stack values. We implemented our analysis for a real compiler and its experiments show tha...
Typed intermediate languages and typed assembly languages for optimizing compilers require types to ...
International audienceLightweight bytecode verification uses stack maps to annotate Java bytecode pr...
AbstractThis paper presents a proof-theoretical framework that accounts for the entire process of re...
Compiler design for stack machines, in particular register allocation, is an under researched area. ...
This paper presents an experiment to quantify stack behaviour during execution of a range of complem...
This paper lays a theoretical ground for exploring a type based approach to register allocation for ...
. An interpreter for a virtual stack machine can spend a significant part of its execution time fetc...
In previous work, we presented a Typed Assembly Language (TAL). TAL is sufficiently expressive to se...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
Virtual machines (VMs) are commonly used to distribute programs in an architecture-neutral format, w...
In previous work, we presented Typed Assembly Language (TAL). TAL is sufficiently expressive to serv...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
International audienceInitially present only in functional languages such as OCaml and Haskell, Alge...
We devise a mechanism to verify the safety of machine codes. We design a stack based machine etySECK...
The performance of the memory hierarchy has become one of the most critical elements in the performa...
Typed intermediate languages and typed assembly languages for optimizing compilers require types to ...
International audienceLightweight bytecode verification uses stack maps to annotate Java bytecode pr...
AbstractThis paper presents a proof-theoretical framework that accounts for the entire process of re...
Compiler design for stack machines, in particular register allocation, is an under researched area. ...
This paper presents an experiment to quantify stack behaviour during execution of a range of complem...
This paper lays a theoretical ground for exploring a type based approach to register allocation for ...
. An interpreter for a virtual stack machine can spend a significant part of its execution time fetc...
In previous work, we presented a Typed Assembly Language (TAL). TAL is sufficiently expressive to se...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
Virtual machines (VMs) are commonly used to distribute programs in an architecture-neutral format, w...
In previous work, we presented Typed Assembly Language (TAL). TAL is sufficiently expressive to serv...
A recurring problem in security is reverse engineering binary code to recover high-level language da...
International audienceInitially present only in functional languages such as OCaml and Haskell, Alge...
We devise a mechanism to verify the safety of machine codes. We design a stack based machine etySECK...
The performance of the memory hierarchy has become one of the most critical elements in the performa...
Typed intermediate languages and typed assembly languages for optimizing compilers require types to ...
International audienceLightweight bytecode verification uses stack maps to annotate Java bytecode pr...
AbstractThis paper presents a proof-theoretical framework that accounts for the entire process of re...