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
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Storage use analysis and its applications
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Principles of Program Analysis
Principles of Program Analysis
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
TIL: a type-directed, optimizing compiler for ML
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Whole-program compilation in MLton
Proceedings of the 2006 workshop on ML
GC-Safe interprocedural unboxing
CC'12 Proceedings of the 21st international conference on Compiler Construction
GC-Safe interprocedural unboxing
CC'12 Proceedings of the 21st international conference on Compiler Construction
Automatic SIMD vectorization for Haskell
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
The Intel labs Haskell research compiler
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Hi-index | 0.00 |
Modern approaches to garbage collection (GC) require information about which variables and fields contain GC-managed pointers. Interprocedural flow analysis can be used to eliminate otherwise unnecessary heap allocated objects (unboxing), but must maintain the necessary GC information. We define a core language which models compiler correctness with respect to the GC, and develop a correctness specification for interprocedural unboxing optimizations. We prove that any optimization which satisfies our specification will preserve GC safety properties and program semantics, and give a practical unboxing algorithm satisfying this specification.