written by Nick Shin - [email protected]
this file is licensed under: Unlicense - http://unlicense.org/
and, is from - https://github.com/nickshin/CheatSheets/
The external links list was getting so large, I placed them here.
These are my choice selections - and doubles as my bookmarks for quick reference lookup.
- LLVMLinux: The Linux Kernel with Dragon Wings
- slide 17: see Quick Start Guide below
- git clone http://git.linuxfoundation.org/llvmlinux.git
- The framework consists of scripts and patches
- Automates fetching, patching, and building
- LLVM, Clang,
- Toolchains for cross assembler, linker
- Linux Kernel
- QEMU, and test images
- slide 18: see Project Overview below
- patch management: quilt
- Choice of clang compiler
- From-source, prebuilt, native
- Choice of cross-toolchain (as, ld)
- Codesourcery, Linaro, Android, native
- $ cd targets/vexpress
- $ make CLANG_TOOLCHAIN=prebuilt kernel-build
- $ make CROSS_ARM_TOOLCHAIN=linaro kernel-build
- slide 19: support for various targets
- Versatile Express (QEMU testing mainline)
- X86_64 (mainline)
- Qualcomm MSM (3.4)
- Raspberry-pi (3.2 and 3.6)
- BeagleBone (3.8 in progress)
- Nexus 7 (3.1.10), Galaxy S3 (3.0.59)
- Arm64 (mainline in progress)
- slide 22:
- The kernel can be compiled with Clang 3.3 (with the LLVMLinux kernel patches)
- slide 17: see Quick Start Guide below
- LLVMLinux Project Overview
- building just the kernel with an existing clang toolchain
- Quick Start Guide - LLVMLinux
- Automated Build Framework which builds all the Clang/LLVM, the Linux kernel (with appropriate patches) and testing framework (where possible).
The mother of all LLVM Documentation
- LLVM Design & Overview
- Introduction to the LLVM Compiler: Presentation providing a users introduction to LLVM
- Intro to LLVM: Book chapter providing a compiler hacker's introduction to LLVM
- User Guides
- Getting Started with the LLVM System
- LLVM Tutorial: Table of Contents
- LLVM Command Guide: "man" pages for LLVM tools
- The LLVM Lexicon
- Programming Documentation
- Subsystem Documentation
- Development Process Documentation
For LLVM programming, every item listed under Programming Documentation and Subsystem Documentation are must reads; And the following are also useful:
- User Guides
- Development Process Documentation
Another excellent resource LLVM Developers' Meeting
Note: this list would make more sense if read from bottom -> up
- Apr 7, 2014
-
Custom Alias-analysis in an LLVM-backed region-based Dynamic Binary Translator
-
clang-cl: what it is, how it works, and how to use it (works with Visual Studio!)
-
WORKSHOPS !!!
-
Posters
- Apr 12, 2012
-
WORKSHOPS !!!
- What LLVM can do for you (good howto)
-
The ELLCC Embedded Compiler Collection (cross-compiling)
-
Dagger (decompiling)
-
LLVM PTX Samples (OpenCL)
- Using Clang as a Compiler
- Cross-compilation using Clang
- Cross Compiling LLVM itself
- Cross-compilation using Clang
- Using Clang as a Library
- Using Clang Tools
-
Use and Extension
-
Resources