Unboxed values as first class citizens in a non-strict functional language
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Unboxed values and polymorphic typing revisited
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Storage use analysis and its applications
Proceedings of the first ACM SIGPLAN international conference on Functional programming
The quickhull algorithm for convex hulls
ACM Transactions on Mathematical Software (TOMS)
Measuring the cost of storage management
Lisp and Symbolic Computation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
A practical and flexible flow analysis for higher-order languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Control flow analysis: a functional languages compilation paradigm
SAC '95 Proceedings of the 1995 ACM symposium on Applied computing
Representation Analysis for Coercion Placement
SAS '02 Proceedings of the 9th International Symposium on Static Analysis
TIL: a type-directed, optimizing compiler for ML
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Manticore: a heterogeneous parallel language
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Flattening tuples in an SSA intermediate representation
Higher-Order and Symbolic Computation
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Harmonizing classes, functions, tuples, and type parameters in virgil iii
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
The Intel labs Haskell research compiler
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
Compilers for polymorphic languages are required to treat values in programs in an abstract and generic way at the source level. The challenges of optimizing the boxing of raw values, flattening of argument tuples, and raising the arity of functions that handle complex structures to reduce memory usage are old ones, but take on newfound import with processors that have twice as many registers. We present a novel strategy that uses both control-flow and type information to provide an arity raising implementation addressing these problems. This strategy is conservative -- no matter the execution path, the transformed program will not perform extra operations.