Learn More
We describe two improvements to Chaitin-style graph coloring register allocators. The first, <italic>optimistic coloring</italic>, uses a stronger heuristic to find a <italic>k</italic>-coloring for the interference graph. The second extends Chaitin's treatment of <italic>rematerialization</italic> to handle a larger class of values. These techniques are(More)
Static single assignment (SSA) form is a program representation that is useful for compiler-based code optimization. In this paper, we address three problems that have arisen in our use of SSA form. Two are improvements to the SSA construction algorithms presented by Cytron et al. 10]. The rst improvement is a version of SSA form that we call \semi-pruned"(More)
The ParaScope parallel programming environment, developed to support scientiic programming of shared-memory multiprocessors, includes a collection of tools that use global program analysis to help users develop and debug parallel programs. This paper focuses on ParaScope's compilation system, its parallel program editor, and its parallel debugger. The(More)
The goal of the Grid Application Development Software (GrADS) Project is to provide programming tools and an execution environment to ease program development for the Grid. This paper presents recent extensions to the GrADS software framework: (1) A new approach to scheduling workflow computations, applied to a 3-D image reconstruction application; (2) A(More)
In a compiling system that attempts to improve code for a whole program by optimizing across procedures, the compiler can generate better code for a specific procedure if it knows which variables will have constant values, and what those values will be, when the procedure is invoked. This paper presents a general algorithm for determining for each procedure(More)
SUMMARY The problem of finding the dominators in a control-flow graph has a long history in the literature. The original algorithms suffered from a large asymptotic complexity but were easy to understand. Subsequent work improved the time bound, but generally sacrificed both simplicity and ease of implementation. This paper returns to a simple formulation(More)
This paper presents a fast new algorithm for modeling and reasoning about interferences for variables in a program without constructing an interference graph. It then describes how to use this information to minimize copy insertion for &fgr;-node instantiation during the conversion of the static single assignment (SSA) form into the control-flow graph(More)