Publication | Closed Access
Practical and Accurate Low-Level Pointer Analysis
59
Citations
18
References
2005
Year
Unknown Venue
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringPointer AnalysisSoftware AnalysisFormal VerificationStatic CheckingParallel ComputingCompilersDynamic CompilationSource CodeCompiler SupportAbstract InterpretationComputer EngineeringComputer ScienceOptimizing CompilerStatic Program AnalysisProgram AnalysisSoftware TestingFormal MethodsParallel ProgrammingIntermediate Representation
Pointer analysis is traditionally performed once, early in the compilation process, upon an intermediate representation (IR) with source-code semantics. However, performing pointer analysis only once at this level imposes a phase-ordering constraint, causing alias information to become stale after subsequent code transformations. Moreover, high-level pointer analysis cannot be used at link time or run time, where the source code is unavailable. This paper advocates performing pointer analysis on a low-level intermediate representation. We present the first context-sensitive and partially flow-sensitive points-to analysis designed to operate at the assembly level. As we will demonstrate, low-level pointer analysis can be as accurate as high-level analysis. Additionally, our low-level pointer analysis also enables a quantitative comparison of propagating high-level pointer analysis results through subsequent code transformations, versus recomputing them at the low level. We show that, for C programs, the former practice is considerably less accurate than the latter.
| Year | Citations | |
|---|---|---|
Page 1
Page 1