Publication | Open Access
Storage use analysis and its applications
44
Citations
24
References
1996
Year
Unknown Venue
EngineeringCompiler TechnologyStorage ManagementComputer ArchitectureSoftware EngineeringStorage StructureSoftware AnalysisStack AllocationData IntegrationParallel ComputingData ManagementMemory ManagementDynamic CompilationStorage Use AnalysisCompiler SupportComputer EngineeringComputer ScienceOptimizing CompilerProgram AnalysisFormal MethodsParallel ProgrammingCps TransformationStorage System ModelingSystem Software
In this paper we present a new program analysis method which we call Storage Use Analysis. This analysis deduces how objects are used by the program and allows the optimization of their allocation. This analysis can be applied to both statically typed languages (e.g. ML) and latently typed languages (e.g. Scheme). It handles side-effects, higher order functions, separate compilation and does not require CPS transformation. We show the application of our analysis to two important optimizations: stack allocation and unboxing. The first optimization replaces some heap allocations by stack allocations for user and system data storage (e.g. lists, vectors, procedures). The second optimization avoids boxing some objects. This analysis and associated optimitations have been implemented in the Bigloo Scheme/ML compiler. Experimental results show that for many allocation intensive programs we get a significant speedup. In particular, numerically intensive programs are almost 20 times faster because floating point numbers are unboxed and no longer heap allocated.
| Year | Citations | |
|---|---|---|
Page 1
Page 1