Range-Analysis-Based Optimization for SML/NJ
Standard ML is a “safe” language, which helps improve the security and robustness of code at the cost of additional runtime checks. Two examples of such checks are tests for overflow on arithmetic operations and tests for invalid indices into arrays and vectors. In this paper, we describe ongoing work in the SML/NJ system to reduce the overhead of such tests without compromising the safety of the language. Our approach is based on applying a range analysis to SML/NJ’s CPS intermediate representation, the results of which are then used to eliminate overflow and bounds checking when it is sound to do so. the results of which are then used to eliminate overflow bounds checking when it is sound to do so. Some preliminary experiments with by-hand application of these optimizations suggest that the performance benefits can be significant for array-heavy code.
Thu 16 OctDisplayed time zone: Perth change
| 10:30 - 12:15 | |||
| 10:305m Day opening | Welcome ML Family Workshop Sam Westrick New York University | ||
| 10:3530m Talk | MsML: A Proposal for a successor MLRemote ML Family Workshop David MacQueen University of Chicago (Emeritus) | ||
| 11:0530m Talk | Range-Analysis-Based Optimization for SML/NJ ML Family WorkshopPre-print | ||
| 11:3530m Talk | LunarML: From Standard ML to Scripting Languages ML Family Workshop Mizuki Arata NoneFile Attached | ||
