Learn More
In the past decade, processor speed has become significantly faster than memory speed. Small, fast cache memories are designed to overcome this discrepancy, but they are only effective when programs exhibit <italic>data locality</italic>. In the this article, we present compiler optimizations to improve data locality based on a simple yet accurate cost(More)
In the past decade, processor speed has become significantly faster than memory speed. Small, fast cache memories are designed to overcome this discrepancy, but they are only effective when programs exhibit <italic>data locality</italic>. In this paper, we present compiler optimizations to improve data locality based on a simple yet accurate cost model. The(More)
Over the past decade, microprocessor design strategies have focused on increasing the computational power on a single chip. Because computations often require more data from cache per floating-point operation than a machine can deliver and because operations are pipelined, idle computational cycles are common when scientific applications are executed. To(More)
Most conventional compilers fail to allocate array elements to registers because standard dataflow analysis treats arrays like scalars, making it impossible to analyze the definitions and uses of individual array elements. This deficiency is particularly troublesome for floating-point registers, which are most often used as temporary repositories for(More)
Over the past decade, microprocessor design strategies have focused on increasing the computational power on a single chip. Unfortunately, memory speeds haue not kept pace. The result is an imbalance between computation speed and memory speed. Thts tmbal~ ante is leading machine destgners to use more complicated memory haerarchzes. In turn, programmers are(More)
To assess the occurrence and fate of nitrosodimethylamine (NDMA) and its precursors in wastewater treatment plants, samples from wastewater treatment plants and industrial sources were analyzed for NDMA, total NDMA precursors, and dimethylamine (DMA). The median concentration of NDMA in untreated wastewater was approximately 80 ng/L, with maximum(More)
Feedback-directed optimization has become an increasingly important tool in designing and building optimizing compilers as it provides a means to analyze complex program behavior that is not possible using traditional static analysis. Feedback-directed optimization offers the compiler opportunities to analyze and optimize the memory behavior of programs(More)
In compilers for machines with instruction-level parallelism, the phases of register assignment and instruction scheduling can be antagonistic. Whichever phase is executed first can have negative effects on the other’s performance. This paper describes a framework, called CRAIG (Combining Register Assignment Interference Graphs), that combines register(More)
Modern architectural trends in instruction-level parallelism (ILP) are to increase the computational power of microprocessors significantly. As a result, the demands on memory have increased. Unfortunately, memory systems have not kept pace. Even hierarchical cache structures are ineffective if programs do not exhibit cache locality. Because of this(More)