“ 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 邮件列表。

“ compiler-rt”运行时runtime库的更多相关文章

  1. iOS运行时Runtime浅析

    运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行.例如[target doSomething];会被转化成objc)msgSend(target,@select ...

  2. CUDA运行时 Runtime(一)

    CUDA运行时 Runtime(一)             一. 概述 运行时在cudart库中实现,该库通过静态方式链接到应用程序库cudart.lib和libcudart.a,或动态通过cuda ...

  3. Deep Learning部署TVM Golang运行时Runtime

    Deep Learning部署TVM Golang运行时Runtime 介绍 TVM是一个开放式深度学习编译器堆栈,用于编译从不同框架到CPU,GPU或专用加速器的各种深度学习模型.TVM支持来自Te ...

  4. CUDA运行时 Runtime(四)

    CUDA运行时 Runtime(四) 一.     图 图为CUDA中的工作提交提供了一种新的模型.图是一系列操作,如内核启动,由依赖项连接,依赖项与执行分开定义.这允许定义一次图形,然后重复启动.将 ...

  5. CUDA运行时 Runtime(三)

    CUDA运行时 Runtime(三) 一.异步并发执行 CUDA将以下操作公开为可以彼此并发操作的独立任务: 主机计算: 设备计算: 从主机到设备的内存传输: 从设备到主机的存储器传输: 在给定设备的 ...

  6. CUDA运行时 Runtime(二)

    CUDA运行时 Runtime(二) 一. 概述 下面的代码示例是利用共享内存的矩阵乘法的实现.在这个实现中,每个线程块负责计算C的一个方子矩阵C sub,块内的每个线程负责计算Csub的一个元素.如 ...

  7. 【原】iOS动态性(五)一种可复用且解耦的用户统计实现(运行时Runtime)

    声明:本文是本人 编程小翁 原创,转载请注明. 为了达到更好的阅读效果,强烈建议跳转到这里查看文章. iOS动态性是我的关于iOS运行时的系列文章,由浅入深,从理论到实践.本文是第5篇.有兴趣可以看看 ...

  8. iOS 运行时runtime控制私有变量以及私有方法

    OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...

  9. 【原】iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

    OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...

随机推荐

  1. 【工具类】获取请求头中User-Agent工具类

    public class AgentUserKit { private static String pattern = "^Mozilla/\\d\\.\\d\\s+\\(+.+?\\)&q ...

  2. POJ 2752 同一个串的前后串

    题解东北赛回来再补 #include<stdio.h> #include<string.h> int next[500000]; int ans[500000]; char s ...

  3. UVA10341解方程(二分)

    题意:       给你一个方程 F[x] = pe^-x + qsin(x) + rcos(x) + stan(x) + tx^2 + u = 0(0<=p,r<=20,-20<= ...

  4. Python练习3-XML-RPC实现简单的P2P文件共享

    XML-RPC实现简单的P2P文件共享 先来个百度百科: XML-RPC的全称是XML Remote Procedure Call,即XML(标准通用标记语言下的一个子集)远程过程调用.它是一套允许运 ...

  5. 深入浅出带你玩转sqlilabs(五)-布尔/延时盲注与二次注入

    SQL测试-基于布尔,延时盲注 布尔,延时注入常用到的判断语句 regexp regexp '^xiaodi[a-z]' 匹配xiaodi及xiaodi...等 if if(条件,5,0) 条件成立 ...

  6. 【JavaScript】Leetcode每日一题-组合总和4

    [JavaScript]Leetcode每日一题-组合总和4 [题目描述] 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target .请你从 nums 中找出并返回总和为 targ ...

  7. jenkins 下使用ansible 跨服务器控制操作

    例如: A服务器地址:172.16.1.203 B服务器地址:172.16.1.204 当jenkins 在A 服务器并且用户aa,  控制B 服务器的用户bb的操作 (1)B服务器 用ssh-key ...

  8. Hive企业级性能优化

    Hive作为大数据平台举足轻重的框架,以其稳定性和简单易用性也成为当前构建企业级数据仓库时使用最多的框架之一. 但是如果我们只局限于会使用Hive,而不考虑性能问题,就难搭建出一个完美的数仓,所以Hi ...

  9. unapp一键登录

    一.整理思路 un-app官网提供多种实现[一键登录](https://uniapp.dcloud.net.cn/uniCloud/univerify "")的方法,这里的选择是 ...

  10. 引言:CTF新世界

    1. CTF的昨天和今天 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式.CTF起源于1996年DEFCON全球黑客 ...