NativeJIT: A C++ expression –> x64 JIT
a year ago
- #C++
- #JIT compilation
- #Bing search engine
- NativeJIT 是一个开源、跨平台的高性能即时编译库,专门用于编译涉及C数据结构的表达式。
- 由Bing团队开发,应用于Bing搜索引擎中,根据用户查询对文档进行评分。
- 该库轻量级、运行速度快,除标准C++运行时外无其他依赖,支持Linux、OSX和Windows平台。
- 其通过重点优化寄存器分配来提升生成代码性能,这对大规模吞吐量和低延迟至关重要。
- 专为运行时才能确定表达式、需多次执行以分摊编译开销且要求低编译延迟的场景设计。
- 支持算术/逻辑运算、指针/数组操作、条件判断、结构体字段访问及调用C函数等功能。
- 构建需CMake(2.8.11+)和现代C++编译器(gcc5+/clang3.4+/VC2015+)。
- 提供*nix平台、OSX(Makefile/Xcode)和Windows(Visual Studio 2015)的构建示例脚本。
- 示例代码演示了编译计算圆面积的表达式,并展示生成的汇编代码。