- concentrate on expression evaluation, other things to make faster - explain new expression evaluation + reasoning - performance numbers - what's JITing - what's LLVM - IR / Bitcode - Modules - explain how basic expression JITing looks like - performance numbers - things to think about: - syncing struct/type definitions - resource management - planning consideration - comments welcome - function reuse - next step: function calls - function call overhead - function inlining - reuse clang -emit-llvm - extensibility? - next step: expressify more - aggregate transitions - hash agg/join hash computations? - next step: deforming - skip deforming if not necessary - planner support / executor structure - access columns at constant offsets directly, skip deforming if only access - JIT deforming - Order: - profiling support of JITed functions - how to name the damned things - LLVM infrastructure / resource management integration - plain expression JITing - function / operator inlining - direct access to deformed columns - JITing deforming - memory-lifetime hints - code generation improvements Issues for others: - cacheability of JITing