ACM SIGPLAN Notices · 2005 · 13 citations · 26 references
ComputingComputer EngineeringComputer ScienceCompilersFormal MethodsProgramming LanguagesAbstract InterpretationCompiler ConstructionControl-flow AnalysisData-flow AnalysisDataflow ModelingDeductive VerificationCompiler DesignContext-sensitivityCorrectness CheckingDataflow VerificationInterprocedural Dataflow AnalysisSoundnessSoundness ProofsStrength Reduction
We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit dataflow facts manipulated by local propagation and transformation rules. This new style allows Rhodium optimizations to be mutually recursively defined, to be automatically composed, to be interpreted in both flow-sensitive and -insensitive ways, and to be applied interprocedurally given a separate context-sensitivity strategy, all while retaining soundness. Rhodium also supports infinite analysis domains while guaranteeing termination of analysis. We have implemented a soundness checker for Rhodium and have specified and automatically proven the soundness of all of Cobalt's optimizations plus a variety of optimizations not expressible in Cobalt, including Andersen's points-to analysis, arithmetic-invariant detection, loop-induction-variable strength reduction, and redundant array load elimination.
26
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Principles of database and knowledge-base systems
Choice Reviews Online · 1989 · 2.7K citations
George C. Necula · 1997 · 1.8K citations
Systematic design of program analysis frameworks
Patrick Cousot, Radhia Cousot · 1979 · 1.6K citations · Full text
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations