Codegen'd code currently has certain operator-specific constants baked into it. E.g. the HashTableCtx address. This limits flexibility if we want to e.g. cache codegen'd objects or share codegen'd objects between different fragment instances.
I attached a proof-of-concept codegen caching implementation based on the LLVM bitcode generated by the operators. It's interesting because a cache hit implies that the codegen'd module content was identical.