LLVM Directory Layout

本文详细介绍了LLVM项目的目录布局,包括`clang`、`compiler-rt`、`libunwind`、`lld`、`lldb`等子项目,以及LLVM核心目录中的`include`、`lib`、`tools`等组件,提供了编译器、运行时库、链接器、调试器等关键部分的源码组织结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LLVM Directory Layout

Source-code of llvm-project clone with git:https://github.com/llvm/llvm-project.git

HEAD detached at llvmorg-9.0.0

After the source-code is downloaded, a directory named ‘llvm-project’ appears and the directory listing is as follows:

The following is a brief introduction to code layout.

llvm-project/clang

Clang is an “llvm native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles (e.g. about 3x faster than GCC when compiling Objective-C code in a debug configuration), extremely useful error and warning messages and to provide a platform for building great source level tools. The Clang Static Analyzer is a tool that automatically finds bugs in your code, and is great example of the sort of tool that can be built using the Clang frontend as library to parse C/C++ code.

llvm-project/clang-tools-extra

​ This repository holds tools that are developed as a part of the LLVM compiler infrastructure project and the Clang frontend. The tools are kept in a separate “extra” repository to allow lighter weight checkouts of the core Clang codebase.

​ This repository is only intended to be checked out inside of a full LLVM+Clang tree, and in the ‘tool/extra’ subdirectory of the Clang checkout.

​ All discussing regarding Clang, Clang-based tools, and code in this repository should be held using the standard Clang mailing lists: http://lists.llvm.org/mailman/listinfo/cfe-dev

llvm-project/compiler-rt

​ The compiler-rt project provides highly tuned implementations of the low-level code generator support routines like “__fixunsdfdi” and other calls generated when a target doesn’t have a short sequence of native instructions to implement a core IR operation. It also provides implementations of run-time libraries for dynamic testing tools such as AdressSanitizer, ThreadSanitizer, MemorySanitizer, and DataFlowSanitizer

llvm-project/debuginfo-tests

​ This is a collection of tests to check debugging information generated by compiler. This test suite can be checked out inside clang/test folder. This will enable ‘make test’ for clang to pick up these tests. Typically, test cases included here includes debugger commands and intended debugger output as comments in source file using DEBUGGER: and CHECK: as prefixes respectively:

​ For example:

define i32 @f1(i32 %i) nounwing ssp{
	; DEBUGGER: break f1
	; DEBUGGER: r
	; DEBUGGER: p i
	; CHECK: $1 = 42
	entry:
}

is a testcase where the debugger is asked to break at function ‘f1’ and print value of argument ‘i’. The expected value of ‘i’ is 42 in this case.

llvm-project/libclc

​ The

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值