C++ Compile Time Polymorphism for Ray Tracing
LLVM: a compilation framework for lifelong program analysis & transformation