阅读更多

1顶
0踩

编程语言

转载新闻 LLVM的独特设计和实现

2012-05-30 17:54 by 副主编 MnouW 评论(0) 有4846人浏览
过去五年,LLVM从一个学术研究项目进化成C、C++和Objective C编译器的通用后端。成功的关键是性能和适应能力,两者都得益于LLVM独特的设计和实现。

LLVM项目主要作者Chris Lattner在Dr.Dobb's上刊文讲述了LLVM的设计。他说:
引用
Clang编译器相比GCC编译器具有不少优势,因为LLVM提供了某些独一无二的能力。LLVM区别于其它编译器的主要地方是其内部架构。

从2000年起,LLVM就设计作为一套可复用库,拥有定义明确的接口。而当时开源语言的实现是设计作为特定目的的工具,使用单一可执行文件,如GCC就很难复用静态编译器中的解析器,脚本语言也是如此。

LLVM 是 Low Level Virtual Machine (低级虚拟机)的简称,这个库提供了与编译器相关的支持,可以作为多种语言编译器的后端来使用,能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。

来自: Solidot
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • LLVM 编译器

    编译器和解释器 编译器是一种计算机程序,负责把一种编程语言编写的源码转换成另外一种计算机代码,后者往往是以二进制的形式被称为目标代码(object code)。 解释器是一种计算机程序,它直接执行由编程语言或脚本...

  • LLVM的设计

    其独特的设计与实现 。” 转载请注明: Linux人社区 > 英文资讯翻译专版.编译 英文原文: The design of LLVM posted by Thom Holwerda on Wed 30th May 2012 08:05 UTC "In the last five...

  • 了解 LLVM

    通过允许我们的编译器以 LLVM IR 代码而...是一个免费的开源编译器基础架构,最初是为 C 和 C++ 构建的。本文探讨了基于 LLVM 的编译器的优势及其跨架构功能,并提供了一些基于英特尔 LLVM 的 oneAPI 编译器的示例。

  • LLVM开发者手册

    LLVM开发者手册1. 简介2. 通用信息2.1 C++标准模板库2.2 其他有用的参考资料3. 重要且有用的LLVM APIs3.1 isa&... 和 dyn_cast<>

  • LLVM语言参考手册

    LLVM语言参考手册1. 摘要(Abstract)2. 简介(Introduction)2.1 结构良好性(Well-Formedness)3. 标识符(Identifiers)4. 高级结构(High Level Structure)4.1 模块结构(Module Structure)4.2 链接类型...

  • 【LLVM】内存计算引擎之Llvm

    个人认为Llvm是一个很”酷”的东西,本文主要从几个方面来讲解Llvm相关内容,Llvm是什么、传统编译器的设计、传统编译器的实现、Llvm的编译器如何实现的、LLVM IR是什么、JIT简单的实现原理、业界多领域是如何使用...

  • 编译器LLVM-MLIR-Intrinics-llvm backend-instruction

    编译器LLVM-MLIR-Intrinics-llvm backend-instruction

  • LLVM,一堆积木的故事

    如果我说,C可以像Java一样被虚拟机解释执行,也可以对热点代码使用Just-In-Time(JIT)技术编译,也可以实现“一次编译,到处运行”,你信吗?

  • 基于Obfuscator-LLVM代码混淆工具在Xcode中集成,并记录针对代码混淆方案的实践过程

    Obfuscator-LLVM可以对C、C++和Objective-C等语言的代码进行混淆处理。它采用了多种技术,如控制流平坦化、函数内联、代码替换、字符串加密和虚假代码插入等,以增加代码的复杂性和混淆度。这样一来,即使有人获取了...

  • LLVM Backend技术

    LLVM 是一个编译器基础设施的设计与实现,具有独特的多阶段优化系统。广泛支持过程间和配置文件驱动的优化,同时对于商业编译器系统也十分高效。 LLVM 虚拟指令集把系统作为一个整体关联到一起,使用高级的类型信息...

  • 三段式LLVM编译器

    三、LLVM的三段式实现 四、LLVM’s Code Representation:LLVM IR 1、IR的表现形式 2、IR的格式文件类型 3、IR文件的编译处理流程 4、简单的IR布局 5、Llvm IR 编程 五、LLVM 与 GCC有什么区别 LLVM技术生态之JIT 一...

  • 从LLVM说起,有关CPU架构,JIT等

    文章目录LLVMCPU架构PowerPCARMX86MIPS编译执行和解释执行JIT编译 LLVM LLVM(Low Level Virtual Machine,不过官方为了避免混淆已经弃用该名称,将LLVM作为项目的全名),这是一个用 C++ 编写的开源项目,最开始...

  • Rust编程基础教程:结构体和枚举类型

    Rust 是由 Mozilla Research 开发的一门新兴的现代通用编程语言,它的设计目标是提供高效、可靠和并发的软件。它已经成为 Mozilla Firefox、Google Chrome、Dropbox等知名网站的后台语言,被越来越多的初创公司、...

  • Rust 是一种面向系统编程语言 主要被设计用来解决执行速度、安全性、并发性和可靠性等方面的问题 Rust From First Principles: Building a Minimal Rust

    Rust 是一种面向系统编程语言,主要被设计用来解决执行速度、安全性、并发性和可靠性等方面的问题。Rust 的运行时是单线程的,但是拥有基于垃圾收集(GC)的自动内存管理机制,使得在开发过程中无需手动进行内存分配...

  • The Architecture of Open Source Applications -- llvm

    本文阐述在形成LLVM的过程中所做的一些设计决策, LLVM是一个基金项目,用来解决和开发一套紧密的底层工具链组件(比如:汇编器,编译器,调试器等等),它被设计成可以兼容Unix系统上的现有工具,  *'LLVM'一度是...

  • llvm学习笔记(2)

    llvm是一个由若干工具(汇编器、编译器和调试器等)所组成的工具集合,并被设计为与Unix系统上现有的工具兼容。尽管llvm有很多独特的功能,并且有一些伟大的工具(例如,Clang编译器,在很多方面优于gcc)。但是llvm...

  • 一网打尽:C++远程调试工具和策略全指南

    在软件工程的壮阔画卷中,调试不仅是技术的体现,更像是一场艺术的展演。...而远程调试,这门看似冷冽的技术,实则是现代软件开发中不可或缺的一环,它跨越物理限制,连接着分布在世界各地的开发者和系统。

  • 如何设计一门计算机编程语言

    一、概述计算机编程语言顾名思义,是用来和计算机进行沟通的语言。计算机编程语言伴随着计算机的发明,作为计算机领域各种软件的基础,不断推动着计算机技术的发展。本文中,将主要关注设计开发一种计算机编程语言,...

  • 汇编程序设计与计算机体系结构软件工程师教程笔记:总结

    《汇编程序设计与计算机体系结构: 软件工程师教程》这本书是由Brain R.Hall和Kevin J.Slonka著,由爱飞翔译。中文版是2019年出版的。个人感觉这本书真不错,书中介绍了三种汇编器GAS、NASM、MASM异同,全部示例代码...

  • python入门-30.寻找列表中只出现一次的数字-寻找单身狗.py

    python入门-30.寻找列表中只出现一次的数字——寻找单身狗.py

Global site tag (gtag.js) - Google Analytics