Ductape: Optimizing Dynamically Typed Programs using Ahead-of-Time Compilation and(…)
summary
Ductape ahead-of-time compiles TypeScript by building a program-dependence IR, running a Datalog-based pointer analysis and sound fixpoint type inference that distinguishes integers vs floats and infers homogeneous array layouts, then lowers to native code via an LLVM/C++ backend. The prototype handles six Ostrich benchmarks, yields about 5x average speedup over unjitted execution, matches JIT on some array-heavy workloads, and shows slowdowns for general object-heavy code due to a map-based object representation.
AI-written summary · about
chapters (13)
- 0:00Optimizing dynamic programs
- 1:02AOT compilation challenges
- 3:58Why JIT outperforms traditional
- 6:48Can AOT rival JIT?
- 7:56Leveraging toolchains
- 9:01Sound type inference design
- 11:11Introducing Duct IR
- 13:18Type inference over Duct IR
- 15:26Pointer analysis need
- 18:35Duct Tape overview
- 20:03Ostrich benchmarks evaluation
- 22:10Results and improvements
- 22:30Conclusion and Q&A
related talks
52mDotty Linker: Precise Types Bring Performance
01h 04mJust-in-Time Compilation: The Next Big Thing?
01h 39mHands-on Dotty
01h 00mState of Dotty
30mDotty and types: the story so far
01h 01mFaster Compile Times and Better Performance: Bringing Just-in-Time Compilation to C++
40mDomain Specific Type Systems
19mReusing Just-in-Time Compiled Code
