Precise and efficient dependence tests are essential to the effectiveness of a parallelizing compiler. This paper proposes a dependence testing scheme based on classifying pairs of subscripted variable references. Exa...
详细信息
We describe a general module language integrating abstract data types, specifications and object-oriented concepts. The framework is based on the Standard ML module system, with three main extensions: subtyping, a for...
详细信息
With the emergence of a number of strongly typed languages with very dynamic storage allocation, efficient methods of storage reclamation have become especially important. Even though no type tags are required for typ...
详细信息
ISBN:
(纸本)9780897914284
With the emergence of a number of strongly typed languages with very dynamic storage allocation, efficient methods of storage reclamation have become especially important. Even though no type tags are required for type checking programs written in these languages, current implementations do use tags to support run time garbage collection. This often inflicts a high time and space overhead on program execution. Since the early days of LISP (and Algo168 later on), there have been schemes for performing tag-free garbage collection. In this paper, we describe an improvement of existing methods that leads to more effective storage reclamation in the absence of tags. Garbage collection has also traditionally been viewed as being independent of the particular program being executed. This means that results of compile-time analyses which could increase the effectiveness of garbage collection cannot be incorporated easily into the garbage collection process. This paper describes a method for performing garbage collection 1) in the absence of tagged data, and 2) using compile-time information. This method relies on compiler-generated garbage collection routines specific to the program being executed and incurs no time overhead during execution other then the cost of the garbage collection process itself. We describe tag-free garbage collection methods for monomorphically typed and polymorphically typed languages, and suggest how they might be extended to support parallel languages.
The proceedings contain 29 papers. The topics discussed include: improving register allocation for subscripted variables;profile guided code positioning;fast breakpoints: design and implementation;representing control...
ISBN:
(纸本)0897913647
The proceedings contain 29 papers. The topics discussed include: improving register allocation for subscripted variables;profile guided code positioning;fast breakpoints: design and implementation;representing control in the presence of first-class continuations;register allocation across procedure and module boundaries;graph coloring register allocation for processors with multi-register operands;two-directional record layout for multiple inheritance;fast code generation using automatically-generated decision trees;task granularity analysis in logic programs;how to print floating-point numbers accurately;compilation of Haskell array comprehensions for scientific computing;iterative type analysis and extended message splitting: optimizing dynamically-typed object-oriented programs;type-dependent parameter inference;generators and the replicator control structure in the parallel environment of ALLOY;and higher-order attribute grammars and editing environments.
This conference proceedings contains 30 papers. The main subjects are code generation, code positioning, register allocation, representing control, program optimization, floating-point numbers accurately, optimizing d...
详细信息
ISBN:
(纸本)0897913647
This conference proceedings contains 30 papers. The main subjects are code generation, code positioning, register allocation, representing control, program optimization, floating-point numbers accurately, optimizing dynamically-typed object-oriented programs, higher-order attribute grammars and editing environments, program and data dependence, demand-driven interpretation of imperative languages, analysis of pointers and structures, and compact representations for control dependence.
This paper describes a method for compiling programs using interprocedural register allocation. A strategy for handling programs built from multiple modules is presented, as well as algorithms for global variable prom...
详细信息
ISBN:
(纸本)9780897913645
This paper describes a method for compiling programs using interprocedural register allocation. A strategy for handling programs built from multiple modules is presented, as well as algorithms for global variable promotion and register spill code motion. These algorithms attempt to address some of the shortcomings of previous interprocedural register allocation strategies. Results are given for an implementation on a single register file RISC-based architecture.
FNC-2 is a new attribute grammar processing system aiming at expressive power, efficiency, ease of use and versatility. Its development at INRIA started in 1986, and a first running prototype is available since early ...
详细信息
ISBN:
(纸本)0897913647
FNC-2 is a new attribute grammar processing system aiming at expressive power, efficiency, ease of use and versatility. Its development at INRIA started in 1986, and a first running prototype is available since early 1989. Its most important features are: efficient exhaustive and incremental visit-sequence-based evaluation of strongly (absolutely) non-circular AGs;extensive space optimizations;a specially-designed AG-description language, with provisions for true modularity;portability and versatility of the generated evaluators;complete environment for application development. This paper briefly describes the design and implementation of FNC-2 and its peripherals. Then preliminary experience with the system is reported.
暂无评论