LLVM supports on demand materialization of the bitcode in a module. This helps reduce the preparation time especially for short running queries. Currently, prepare time is a fixed cost of about 140+ ms on my dev box. Lazy materialization can drive this down to 20ms ~ 50ms. This also reduces the time spent in dead code elimination.