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:30 5mDay opening | Welcome ML Family Workshop Sam Westrick New York University | ||
10:35 30mTalk | MsML: A Proposal for a successor MLRemote ML Family Workshop David MacQueen University of Chicago (Emeritus) | ||
11:05 30mTalk | Range-Analysis-Based Optimization for SML/NJ ML Family Workshop Pre-print | ||
11:35 30mTalk | LunarML: From Standard ML to Scripting Languages ML Family Workshop Mizuki Arata None File Attached | ||