3 research outputs found

    Set Constraints for Destructive Array Update Optimization

    No full text
    Destructive array update optimization is critical for writing scientific codes in functional languages. We present set constraints for an interprocedural update optimization that runs in polynomial time. This is a multi-pass optimization, involving interprocedural flow analyses for aliasing and liveness. We characterize and prove the soundness of these analyses using smallstep operational semantics. We also prove that any sound liveness analysis induces a correct program transformation

    Set constraints for destructive array update optimization

    No full text

    Set Constraints for Destructive Array Update Optimization

    No full text
    Destructive array update optimization is critical for writing scientific codes in functional languages. We present set constraints for an interprocedural update optimization that runs in polynomial time. This is a multi-pass optimization, involving interprocedural flow analyses for aliasing and liveness. We characterize the soundness of these analyses using small-step operational semantics. We have also proved that any sound liveness analysis induces a correct program transformation. 1 Introduction In this paper we use set constraints to reformulate an algorithm for interprocedural array update optimization in a call-by-value functional language. As originally presented in [SCA93, SC94], this algorithm's efficiency depended upon a special technique for symbolic computation of a least fixed point [CG92]. The set constraints generated by the reformulated algorithm are easily seen to be data flow inequalities, which can be solved in polynomial time using standard techniques [AKVW93]. We ..
    corecore