| David Tarditi. Design and Implementation of Code Optimizations for a TypeDirected Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, 1996. 73 |
....handle Java or Modula 3. The elaboration has application to language implementation as well, as it may be viewed as a reference implementation of a front end for an SML compiler. In particular, we are using this translation as a guide to our re implementation of the TIL ML compiler [HM95, Mor95, Tar96, TMC 96] Compilers for other languages defined by interpretation into the internal language could share the back end of the TIL ML compiler# only a front end need be written for each specific language. There are some disadvantages to our approach. The translation of some SML language ....
David Tarditi. Design and Implementation of Code Optimizations for a TypeDirected Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, 1996. 73
....is as straightforward as possible. However, it should be abstract enough that program transformations and optimizations need not be overly concerned with implementation detail. The intermediate representation we use is similar to the functional intermediate representations used by several groups [1, 5, 18], in which the language retains a similarity 5 binop : j j j= Binary arithmetic relop : j j j j j Binary relations l : string Function label a : j Boolean values j a 1 binop a 2 Binary arithmetic j a 1 relop a 2 Binary relations j R:l Function labels e : let v ....
D. Tarditi. Design and implementation of code optimizations for a type-directed compiler for Standard ML. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1997.
....is as straightforward as possible. However, it should be abstract enough that program transformations and optimizations need not be overly concerned with implementation detail. The intermediate representation we use is similar to the functional intermediate representations used by several groups [1, 5, 18], in which the language retains a similarity to an ML like language where all intermediate values apart from arithmetic expressions are explicitly named. In this form, the IR is partitioned into two main parts: atoms de ne values like numbers, arithmetic, and variables; and expressions de ....
D. Tarditi. Design and implementation of code optimizations for a type-directed compiler for Standard ML. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1997.
....and matching. 10.2 Intermediate Language Optimisation The Kit has an optimiser that transforms a Lambda program into another Lambda program by applying a series of optimisations inspired by [App92, SW95] but extended to apply to the typed setting of the Lambda language (see [TMC 96, Tar96] and implemented using the techniques described in [AJ97] The optimisations include specialisation of recursive functions, function in lining, constant propagation, dead code elimination, minimisation of mutually recursive functions, and record elimination. All of the optimisations are local to ....
David Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213, December 1996.
....lists L1, L2, and L3, as well as for the elements of the tuples manipulated by pfoldr. It is possible for even odd to be a specialized copy of pfoldr that results from in lining the arguments to pfoldr. This sort of in lining can be performed without any fancy flow analysis [App92, TMC 96, Tar96] However, in the presence of non trivial flow patterns, such as the conditional argument to pfoldr in the definition of the function sums that chooses between two predicates, in lining can require more sophisticated flow analyses and transformations. In this case, two options are (1) to in line ....
David Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, Carnegie Mellon University, December 1996.
....that pollution removal allows multiple functions to be inlined at the same call site. In a future study, we plan to compare various heuristics for inlining in our framework (varying fan in, fan out, and fall back strategy) with each other and with classical syntax based inlining techniques (e.g. [2, 38]) to gain insight into the factors that make this strategy e#ective. While pollution removal does not seem very helpful in the context of selecting closed vs. open functions, it may very well be e#ective for other representation decisions. In terms of function representations, we are currently ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
.... memoization, explicit substitutions, and de Bruijn indices to achieve space e#cient implementation of types [SLM98] The TIL compiler achieves type sharing by binding all types to type variables, and then performing dead code elimination, hoisting and common subexpression elimination on the types [Tar96, pp. 217 219] The compiler must then preserve type bindings across transformations, or else repeat the type sharing transformations. Tarditi reports that the representation size increase imposed by using types in TIL averages 5.15 times without this sharing scheme, but only 1.93 times with ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
....has been proposed and applied by, e.g. the IMPACT reseach group at University of Illinois. The simpli cation phase is similar in spirit to what has been used in a long line of functional compilers, ranging from Steele s Rabbit, up to today s Haskell (Santos and Peyton Jones) and SML compilers [1] [7]. To my knowledge, pro le driven optimizations have so far not been applied to functional languages. The results in this paper indicate a substantial opportunity for compiler writers. Pro les were used in an embryonic form while testing HIPE on AXD301: only the functions that were executed ....
D. Tarditi. Design and implementation of code optimizations for a typedirected compiler for Standard ML. Ph.D. thesis, report CMU-CS-97-108, School for Computer Science, Carnegie Mellon, 1997. 13
....that a large part of this difference is owed to the fact that the MLRISC framework does not do sophisticated code layout and jump chaining yet. 8 Related work Most of the literature about compiler optimizations for strict functional languages uses CPS as a representation. Tarditi s thesis [Tar96] is probably the most detailed description of a DS based optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers ....
....Tarditi s thesis [Tar96] is probably the most detailed description of a DS based optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers do not) Kelsey describes a technique for combining functions in a CPS based framework [Kel95] In his framework, he annotates abstractions with either proc, cont, or jump, where jump is used to mark control transfers that occur within the same machine procedure. He ....
Tarditi, D. Design and implementation of code optimizations for a type-directed compiler for Standard ML. Ph.D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1996. Available as Technical Report CMUCS -97-108.
.... memoization, explicit substitutions, and de Bruijn indices to achieve space ecient implementation of types [SLM98] The TIL compiler achieves type sharing by binding all types to type variables, and then performing dead code elimination, hoisting and common subexpression elimination on the types [Tar96, pp. 217 219] The compiler must then preserve type bindings across transformations, or else repeat the type sharing transformations. Tarditi reports that the representation size increase imposed by using types in TIL averages 5.15 times without this sharing scheme, but only 1.93 times with ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
....#) of (# int ; ## ; ## ) # Typerec (### ) of (# int ; ## # ; ## ) # . Clearly this makes typechecking Typerec undecidable. Another serious problem in analyzing quantified types involves both the type level and the term level operators. Typed intermediate languages like FLINT [20] and TIL [24] are based on the calculus F# [5, 17] which has higher order type constructors. In a quantified type, say ## : #. # , the quantified variable # is no longer restricted to a base kind# , but can have an arbitrary kind #. Consider the term level typecase in such a scenario: sub = ##. typecase # ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, Dec. 1996. Tech Report CMU-CS-97-108.
....six les with the names file m n.c 7.5 Recursion Optimization Most optimization research has focused on looping constructs. Architecturecognizant divide and conquer places large emphasis on recursive procedure calls and nding ways to optimize these could prove useful. There has been some work [48] in the functional programming paradigm where standard imperative optimizations (such as common subexpression removal and invariant removal) have been incorporated into functional languages and used on recursive function calls [48] The extension of this work would be useful for ....
....ways to optimize these could prove useful. There has been some work [48] in the functional programming paradigm where standard imperative optimizations (such as common subexpression removal and invariant removal) have been incorporated into functional languages and used on recursive function calls [48]. The extension of this work would be useful for architecture cognizant divideand conquer. Chapter 8 Summary and Conclusions Writing portable high performance programs is not easy, and this thesis gave a framework that helps programmers achieve this elusive goal. This framework is built on the ....
D. Tarditi. Design and Implementation of Code Optimizations for a TypeDirected Compiler for StandardML. PhD thesis, Carnegie Mellon University, 1997.
....workloads is yet to be determined, these preliminary measurements strongly suggest that the LCPS transformation is a useful tool in a DS optimizer. 5 Related work Most of the literature about compiler optimizations for strict functional languages uses CPS as a representation. Tarditi s thesis [Tar96] is probably the most detailed description of a DSbased optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers do ....
....Tarditi s thesis [Tar96] is probably the most detailed description of a DSbased optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers do not) The OCAML system provides for loops over integer intervals as a language feature. These loops are preserved in the IR and result in code that is similar to that produced by a C compiler [Ler97] but the OCAML compiler (Version 3.00) does not flatten nested ....
Tarditi, D. Design and implementation of code optimizations for a type-directed compiler for Standard ML. Ph.D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1996. Available as Technical Report CMU-CS97 -108.
.... memoization, explicit substitutions, and de Bruijn indices to achieve space ecient implementation of types [SLM98] The TIL compiler achieves type sharing by binding all types to type variables, and then performing dead code elimination, hoisting and common subexpression elimination on the types [Tar96, pp. 217 219] The compiler must then preserve type bindings across transformations, or else repeat the type sharing transformations. Tarditi reports that the representation size increase imposed by using types in TIL averages 5.15 times without this sharing scheme, but only 1.93 times with ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
....i, f, n) else k (i, f, n) and k (i, f, n) lp i(i 1, f, n) in lp i (0, f, n) end Figure 6: The applyF function after the LCPS transformation 5 Related work Most of the literature about compiler optimizations for strict functional languages uses CPS as a representation. Tarditi s thesis [Tar96] is probably the most detailed description of a DS based optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers ....
....Tarditi s thesis [Tar96] is probably the most detailed description of a DS based optimizer for strict functional languages, but he does not collapse nested loops. We are not aware of any direct style compiler that implements the LCPS transformation (the OCAML [Ler00] TIL [TMC 96, Tar96] and RML [OT98] compilers do not) The OCAML system provides for loops over integer intervals as a language feature. These loops are preserved in the IR and result in code that is similar to that produced by a C compiler [Ler97] but the OCAML compiler (Version 3.00) does not flatten nested ....
Tarditi, D. Design and implementation of code optimizations for a type-directed compiler for Standard ML. Ph.D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1996. Available as Technical Report CMUCS -97-108.
.... memoization, explicit substitutions, and de Bruijn indices to achieve space ecient implementation of types [SLM98] The TIL compiler achieves type sharing by binding all types to type variables, and then performing dead code elimination, hoisting and common subexpression elimination on the types [Tar96, pp. 217 219] The compiler must then preserve type bindings across transformations, or else repeat the type sharing transformations. Tarditi reports that the representation size increase imposed by using types in TIL averages 5.15 times without this sharing scheme, but only 1.93 times with ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
.... optimizing well typed programs that do not have run time type errors (see Fisher and Reppy [FR99b] for an appropriate type system) We also assume that we produce the IR from SCL as described in Section 4, with the further step of normalizing the terms into a direct style representation [FSDF93,Tar96,OT98] a continuation passing style representation [App92] is also possible) In this IR, all intermediate results are bound to variables, and the right hand side of all bindings involve a single function application or primitive operation applied to atomic arguments (i.e. either variables or ....
Tarditi, D. Design and implementation of code optimizations for a type-directed compiler for Standard ML. Ph.D. dissertation, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, December 1996. Available as Technical Report CMUCS -97-108.
No context found.
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, Carnegie Mellon University, 1996.
....scale well to large programs. And perhaps the biggest problem was that our compiler took an inordinate amount of time to optimize the code. In the end, there wasn t clear evidence that intensional polymorphism was what lead to the performance improvements compared to this whole program optimizer [24, 9] Nonetheless, the TIL compiler showed that, if we were willing to be aggressive in the elimination of polymorphism and other optimizations, we could achieve spectacular speedups, while maintaining accurate type information through to the back end. 3. THE INFLUENCE OF TIL Later SML compiler ....
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, Carnegie Mellon University, 1996.
No context found.
David Tarditi. Design and Implementation of Code Optimizations for a TypeDirected Compiler for Standard ML. PhD thesis, School of Computer Science, Carnegie Mellon University, 1996. 73
No context found.
David Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. PhD thesis, Carnegie Mellon University, 1996.
No context found.
David Tarditi. Design and implementation of code optimizations for a type-directed compiler for Standard ML. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1997.
No context found.
David Tarditi. Design and Implementation of Code Optimizations for a TypeDirected Compiler for Standard ML. PhD thesis, Carnegie Mellon University, 1996. 357
No context found.
D. Tarditi. Design and implementation of code optimizations for a type-directed compiler for Standard ML. PhD thesis, Carnegie Mellon University, Pittsburgh, PA, USA, 1997.
No context found.
D. Tarditi. Design and Implementation of Code Optimizations for a Type-Directed Compiler for Standard ML. Ph.D. thesis, Carnegie Mellon University, Dec. 1996.
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC