All Projects → f0rki → Mapping High Level Constructs To Llvm Ir

f0rki / Mapping High Level Constructs To Llvm Ir

Licence: other
A guide that explains how high level programming language constructs are mapped to the LLVM intermediate language.

Labels

Projects that are alternatives of or similar to Mapping High Level Constructs To Llvm Ir

llvm-svn
Arch Linux PKGBUILD for LLVM, Clang et al. (latest SVN code)
Stars: ✭ 18 (-94.1%)
Mutual labels:  llvm
bl
Simple imperative programming language created for fun.
Stars: ✭ 57 (-81.31%)
Mutual labels:  llvm
Seahorn
SeaHorn Verification Framework
Stars: ✭ 270 (-11.48%)
Mutual labels:  llvm
qcc
qcc is a small toy C compiler
Stars: ✭ 37 (-87.87%)
Mutual labels:  llvm
libebpf
Experiemental userspace eBPF library
Stars: ✭ 14 (-95.41%)
Mutual labels:  llvm
Ruscall
自作言語処理系のコンパイラ制作
Stars: ✭ 41 (-86.56%)
Mutual labels:  llvm
graph-llvm-ir
Visualization of LLVM IR
Stars: ✭ 43 (-85.9%)
Mutual labels:  llvm
Speedy.js
Accelerate JavaScript Applications by Compiling to WebAssembly
Stars: ✭ 300 (-1.64%)
Mutual labels:  llvm
AliveInLean
Formally verified implementation of Alive in Lean
Stars: ✭ 30 (-90.16%)
Mutual labels:  llvm
Deepc
vendor independent deep learning library, compiler and inference framework microcomputers and micro-controllers
Stars: ✭ 260 (-14.75%)
Mutual labels:  llvm
llvm-brainfuck
Brainfuck compiler based on LLVM API
Stars: ✭ 27 (-91.15%)
Mutual labels:  llvm
clang-format-editor
Clang-Format Editor is a tool that helps you find the best Clang-Format Style for your C++, C#, Java, JavaScript, and Objective-C code.
Stars: ✭ 15 (-95.08%)
Mutual labels:  llvm
kolibrios-llvm
KolibriOS ported to LLVM
Stars: ✭ 31 (-89.84%)
Mutual labels:  llvm
dmr c
dmr_C is a C parser and JIT compiler with LLVM, Eclipse OMR and NanoJIT backends
Stars: ✭ 45 (-85.25%)
Mutual labels:  llvm
Clang Power Tools
Bringing clang-tidy magic to Visual Studio C++ developers.
Stars: ✭ 285 (-6.56%)
Mutual labels:  llvm
snowstar
Here lies the code for the Snow* programming language, currently being rewritten.
Stars: ✭ 31 (-89.84%)
Mutual labels:  llvm
KRFAnalysis
Collection of LLVM passes and triage tools for use with the KRF fuzzer
Stars: ✭ 26 (-91.48%)
Mutual labels:  llvm
Awesome Graal
A curated list of awesome resources for Graal, GraalVM, Truffle and related topics
Stars: ✭ 302 (-0.98%)
Mutual labels:  llvm
Go Ast Book
📚 《Go语法树入门——开启自制编程语言和编译器之旅》(开源免费图书/Go语言进阶/掌握抽象语法树/Go语言AST/凹语言)
Stars: ✭ 4,034 (+1222.62%)
Mutual labels:  llvm
Olifant
A simple programming language targeting LLVM
Stars: ✭ 58 (-80.98%)
Mutual labels:  llvm

Mapping High Level Constructs to LLVM IR

Click here to read the book on readthedocs.org <http://mapping-high-level-constructs-to-llvm-ir.rtfd.io/>__

About

This is a gitbook dedicated to providing a description on how LLVM based compilers map high-level language constructs into the LLVM intermediate representation (IR).

This document targets people interested in how modern compilers work and want to learn how high-level language constructs can be implemented. Currently the books focuses on C and C++, but contributions about other languages targeting LLVM are highly welcome. This document should help to make the learning curve less steep for aspiring LLVM users.

For the sake of simplicity, we'll be working with a 32-bit target machine so that pointers and word-sized operands are 32-bits. Also, for the sake of readability we do not mangle (encode) names. Rather, they are given simple, easy-to-read names that reflect their purpose. A production compiler for any language that supports overloading would generally need to mangle the names so as to avoid conflicts between symbols.

Contributing

The repository for this document is hosted on github <https://github.com/f0rki/mapping-high-level-constructs-to-llvm-ir>. All contributions are welcome. If you find an error file an Issue <https://github.com/f0rki/mapping-high-level-constructs-to-llvm-ir/issues> or fork the repository and create a pull-request <https://github.com/f0rki/mapping-high-level-constructs-to-llvm-ir/pulls>__.

License

UNLESS OTHERWISE NOTED, THE CONTENTS OF THIS REPOSITORY/DOCUMENT ARE LICENSED UNDER THE CREATIVE COMMONS ATTRIBUTION - SHARE ALIKE 4.0 INTERNATIONAL LICENSE

.. figure:: https://i.creativecommons.org/l/by-sa/4.0/88x31.png :alt: https://creativecommons.org/licenses/by-sa/4.0/

https://creativecommons.org/licenses/by-sa/4.0/

.. toctree:: :maxdepth: 1 :caption: Contents:

a-quick-primer/index basic-constructs/index control-structures/index object-oriented-constructs/index exception-handling/index advanced-constructs/index interoperating-with-a-runtime-library/index interfacing-to-the-operating-system/index epilogue/index appendix-a-how-to-implement-a-string-type-in-llvm/index

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].