“ compiler-rt”运行时runtime库

编译器-rt项目包括:

  • Builtins-一个简单的库,提供了代码生成和其他运行时runtime组件所需的特定于目标的低级接口。例如,当为32位目标进行编译时,将双精度数转换为64位无符号整数将编译为对“ __fixunsdfdi”函数的运行时runtime调用。内置库以与目标无关的C形式或经过高度优化的程序集的形式提供了此示例和其他低级示例的优化实现。

内建函数为受支持的目标上的libgcc接口提供了全面支持,并为汇编中的常用功能(如__floatundidf)提供了高性能的手动调试实现,这些实现比libgcc实现快得多。通过添加内置目标来支持新目标应该很容易,因为该目标需要添加新的示例。

根据MIT许可证和UIUC许可证(类似于BSD的许可证),compiler-rt项目中的所有代码均具有双重许可

客户群

当前,Clang 和LLVM项目主要将editor -rt用作运行时runtime编译器支持库的实现。有关将C ++编译器与Clang一起使用的更多信息,请参见Clang 入门 文档。

平台支援

已知buildin可在以下平台上工作:

  • 硬件架构:i386,X86-64,SPARC64,ARM,PowerPC,PowerPC 64。
  • 操作系统:AuroraUX,DragonFlyBSD,FreeBSD,NetBSD,Linux,Darwin。

大多数sanitizer运行时runtime仅在Linux x86-64上受支持。有关更多详细信息,请参见Clang文档中特定于工具的文档。

源结构

编译器-rt的目录结构的简短说明:

为了进行测试,可以构建通用库和优化库。通过将优化版本覆盖到通用库上来形成优化库。当然,某些体系结构具有附加功能,因此优化库可能具有通用版本中找不到的功能。

  • include /包含可以包含在用户程序中的header(例如,用户可以直接从sanitizer运行时runtime调用某些函数)。
  • lib /包含库实现。
  • lib / builtins是内置示例的通用可移植实现。
  • lib / builtins /(arch)为支持的体系结构优化了某些示例的版本。
  • test /包含用于compile-rt运行时runtime的测试套件。

得到它并参与其中!

通常,需要构建LLVM / Clang才能构建Compiler-rt。可以将其与llvm和clang一起构建,也可以分别构建。

要将其构建在一起,只需将compile-rt添加到-DLLVM_ENABLE_PROJECTS =option to cmake。

要单独构建它,首先分别 构建LLVM 以获得llvm-config二进制文件,然后运行:

  • cd llvm-project
  • mkdir build-compiler-rt
  • cd build-compiler-rt
  • cmake ../compiler-rt -DLLVM_CONFIG_PATH = / path / to / llvm-config
  • make

sanitizer运行时runtime的测试已移植到 llvm-lit,并通过LLVM / Clang / compiler-rt构建树中的make check-all命令运行。

使用LLVM / Clang / compiler-rt或独立的compile-rt构建树中的make install命令将编译器RT库安装到系统中。

compile-rt没有自己的邮件列表,如果有任何疑问,请通过电子邮件发送llvm-dev邮件列表。提交到editor-rt SVN模块的信息将自动发送到 llvm-commits 邮件列表。

最新文章

  1. C#自定义工业控件开发
  2. String类字符串截取示范
  3. Oracle ->> 行转列, 列转行
  4. Xcode 8:在 Active Compilation Conditions 中自定义环境变量
  5. MES生产日报存储过程
  6. 用于主题检测的临时日志(fe4edac1-b4f4-4673-ae87-110cbb7dbb5a - 3bfe001a-32de-4114-a6b4-4005b770f6d7)
  7. 伪元素first-letter(首字母变大)
  8. Android-PullToRefresh下拉刷新库基本用法
  9. Windows台cocos2d-x 3.2下载一个新的项目,创造的过程
  10. 记一下flex弹性布局
  11. fiddler+android抓包工具配置使用
  12. Webpack 2 视频教程 016 - Webpack 2 中生成 SourceMaps
  13. python+flask 分分钟完美解析阿里云日志
  14. Lucene架构
  15. Spring Scheduled定时任务报错 java.lang.IllegalStateException: Encountered invalid @Scheduled method 'xxx': For input string: "2S"
  16. CRM 2016 及 CRM 365 更新地址
  17. Navicat工具、pymysql模块 sql注入
  18. 如果忘记了mysql密码怎么办?
  19. Android开发之getX,getRawX,getWidth,getTranslationX等的区别
  20. BZOJ 百题纪念!

热门文章

  1. php 简易日志函数应用 debug_backtrace()
  2. Python中面向对象和类
  3. Xposed学习二:实现机制
  4. 音视频开发:为什么推荐使用Jetpack CameraX?
  5. pr2019快键键
  6. 获取InputStream对象的方法
  7. RabbitMQ实现延时消息的两种方法
  8. spring.framework 版本从4.1.6.RELEASE升到5.0.20.RELEASE
  9. Windows进程间通讯(IPC)----共享内存
  10. Java_常用类API之一