GameGamer43 + llvm   27

git-clang-format
Script to format code using git
LLVM  Git 
february 2017 by GameGamer43
Building a Compiler in Swift with LLVM, Part 3: Code Generation to LLVM IR - Harlan Haskins
If you've gotten this far in the tutorial, then you'll have built a Lexer and Parser for the Kaleidoscope programming language. If you haven't read those, I'd strongly recommend reading Part 1 and Part 2 first.
Swift  SwiftLang  Apple_Swift  LLVM  Compiler_Programming  Compilers  Harlan_Haskins 
january 2017 by GameGamer43
Building a Compiler in Swift with LLVM, Part 2: AST and the Parser - Harlan Haskins
In Part 1 of this tutorial, we built a lexer in Swift that can tokenize the Kaleidoscope language. Now we're going to write a parser that can turn code from this language into an Abstract Syntax Tree, or AST.
Swift  SwiftLang  Apple_Swift  LLVM  Compiler_Programming  Compilers  Harlan_Haskins 
january 2017 by GameGamer43
Building a Compiler in Swift with LLVM, Part 1: Introduction and the Lexer - Harlan Haskins
Compilers are some of the most fascinating programs because they touch every aspect of Computer Science, from CLI and API design to calling conventions and platform-specific optimizations. Yet, many developers have a fearful reverence for them that makes them seem unapproachable. I think this is unnecessary.
Swift  SwiftLang  Apple_Swift  LLVM  Compiler_Programming  Compilers  Harlan_Haskins 
january 2017 by GameGamer43
A Tourist’s Guide to the LLVM Source Code – Embedded in Academia
In my Advanced Compilers course last fall we spent some time poking around in the LLVM source tree. A million lines of C++ is pretty daunting but I found this to be an interesting exercise and at least some of the students agreed, so I thought I’d try to write up something similar. We’ll be using LLVM 3.9, but the layout isn’t that different for previous (and probably subsequent) releases.
LLVM 
january 2017 by GameGamer43
LLVM Programmer’s Manual
This document is meant to highlight some of the important classes and interfaces available in the LLVM source-base. This manual is not intended to explain what LLVM is, how it works, and what LLVM code looks like. It assumes that you know the basics of LLVM and are interested in writing transformations or otherwise analyzing or manipulating the code.
LLVM 
july 2016 by GameGamer43
No Compiler: On LLVM, using C libraries from Lua, and writing software without a compiler
I’ve been working on a programming language. I make video games, and the languages that exist for this all have drawbacks that get in my way when I’m making stuff, so I decided to make a new one. I made an interpreter, and it works, which is pretty awesome! But it’s too slow. For what I want to be doing, I decided, rather than an interpreter I ought to be writing a compiler. Once I realized this my project stalled out, because I just really did not want to write a compiler. It’s a lot of work, and a lot of things I’ve never done before, and I wasn’t really sure where to start, and I just really really hate writing parsers.
LLVM  C  Lua  Programming 
march 2016 by GameGamer43
How to use LLVM API with Swift
This article shows how to use LLVM C API with Swift. It doesn’t aim to show how to write proper idiomatic Swift. Besides that I omit some good practices for sake of simplicity.
LLVM  Swift  Apple_Swift  SwiftLang 
november 2015 by GameGamer43
bencochran/KaleidoscopeLang
An experimental partial implementation of a parser for the the language described in the LLVM Kaleidoscope tutorial. It uses Madness for tokenizing and parsing.
GitHub_Repos  LLVM 
november 2015 by GameGamer43
LLVM Code Generation in HHVM
One of the most common questions we get about HHVM is why we don’t use LLVM for code generation. The primary reason has always been that while LLVM is great at optimizing C, C++, Objective-C, and other similar statically-typed languages, PHP is dynamically typed. The kinds of optimizations that provide huge performance benefits for static languages tend to be less useful in dynamic languages, or at least overshadowed by all the dynamic dispatching that’s done based on runtime types. We knew that there was probably something to be gained from using LLVM as a backend, but there were many larger opportunities go after first.
LLVM  HHVM  Facebook  HipHopPHP 
october 2015 by GameGamer43
Implementing a JIT Compiled Language with Haskell and LLVM
This is an open source project hosted on Github. Corrections and feedback always welcome.

The written text licensed under the LLVM License and is adapted from the original LLVM documentation. The new Haskell source is released under the MIT license.
Compiler_Programming  Compilers  LLVM  JIT  JIT_Compilers 
september 2015 by GameGamer43
LLVM for Grad Students
This is an introduction to doing research with the LLVM compiler infrastructure. It should be enough for a grad student to go from mostly uninterested in compilers to excited to use LLVM to do great work.
LLVM  Programming  Compiler_Programming  Compilers 
august 2015 by GameGamer43
Apple’s Bitcode Telegraphs Future CPU Plans
The biggest announcement at this week’s WWDC is one hardly anyone noticed. During the Platforms State of the Union on Tuesday, Andreas Wendker briefly mentioned Bitcode, describing it as an opportunity for future compiler optimizations to be applied to already-submitted apps. He also mentioned that it allows apps to be future-proofed by letting the store add support for future CPU features without developers having to resubmit.
Apple  Apple_Computers  LLVM 
june 2015 by GameGamer43
Utilizing TableGen for Non-Compiling Processes
When porting any compiler, one of the large pieces of code is the machine description, defining instructions, registers, calling conventions, etc. In LLVM, this is done via TableGen, a simple record based DSL that allows all information about an architecture to be built rapidly and concisely. However, its generality and simple design appears to naturally allow expansion beyond the compilation space to other areas.
LLVM  SSH  OpenSSH 
april 2015 by GameGamer43
My First LLVM Compiler
A walkthrough of writing a basic compiler with LLVM. No prior experience assumed.
LLVM  Programming  Compiler_Programming 
february 2015 by GameGamer43
How to get started with the LLVM C API
I enjoy making toy programming languages to better understand how compilers (and, ultimately, the underlying machine) work and to experiment with techniques that aren’t in my repertoire. LLVM is great because I can tinker, and then wire it up as the backend to have it generate fast code that runs on most platforms. If I just wanted to see my code execute, I could get away with a simple hand-rolled interpreter, but having access to LLVM’s JIT, suite of optimizations, and platform support is like having a superpower — your little toy can perform impressively well. Plus, LLVM is the foundation of things like Emscripten and Rust, so I like developing intuition about how new technologies I’m interested in are implemented.
LLVM  C  Programming  Compiler_Programming 
january 2015 by GameGamer43
Let's Write an LLVM Specializer for Python!
This is the followup to my talk LLVM Optimized Python at the Harvard-Smithsonian Center for Astrophysics, we'll do the deep dive that I didn't have time for. We're going to build a single module Numba-like compiler for Python. It won't be nearly as featureful or complete, but should demonstrate how you can go about building your own little LLVM specializer for a subset of Python or your own custom DSL expression compiler; and integrating it with the standard NumPy/SciPy stack for whatever scientific computing domain you work. The full source for this project is available on Github and comes in at 1000 lines for the whole specializer, very tiny!
Python  Compiler_Programming  LLVM  Programming 
january 2015 by GameGamer43
Deobfuscation: recovering an OLLVM-protected program
We recently looked at the Obfuscator-LLVM project in order to test its different protections. Here are our results, and explanations on how we deal with obfuscation.
LLVM  OLLVM  ReverseEngineering  Reverse_Engineering 
december 2014 by GameGamer43
LLVM Bitcode File Format¶
This document describes the LLVM bitstream file format and the encoding of the LLVM IR into it.
LLVM 
december 2014 by GameGamer43
What Every C Programmer Should Know About Undefined Behavior #3/3
In Part 1 of the series, we took a look at undefined behavior in C and showed some cases where it allows C to be more performant than "safe" languages. In Part 2, we looked at the surprising bugs this causes and some widely held misconceptions that many programmers have about C. In this article, we look at the challenges that compilers face in providing warnings about these gotchas, and talk about some of the features and tools that LLVM and Clang provide to help get the performance wins, while taking away some of the surprise.
C  LLVM  Chris_Lattner 
august 2014 by GameGamer43
lld - The LLVM Linker¶
lld is a new set of modular code for creating linker tools.
LLVM 
august 2013 by GameGamer43
1. Kaleidoscope: Tutorial Introduction and the Lexer¶
Welcome to the “Implementing a language with LLVM” tutorial. This tutorial runs through the implementation of a simple language, showing how fun and easy it can be. This tutorial will get you up and started as well as help to build a framework you can extend to other languages. The code in this tutorial can also be used as a playground to hack on other LLVM specific things.
LLVM  Programming_Languages  Compiler_Programming 
august 2013 by GameGamer43
1. Kaleidoscope: Tutorial Introduction and the Lexer¶
Welcome to the “Implementing a language with LLVM” tutorial. This tutorial runs through the implementation of a simple language, showing how fun and easy it can be. This tutorial will get you up and started as well as help to build a framework you can extend to other languages. The code in this tutorial can also be used as a playground to hack on other LLVM specific things.
LLVM 
february 2013 by GameGamer43
Modules - Doug Gregor, Apple
• The fundamental brokenness of headers
• A module system for the C family
• Building better tools
C  Apple_Computers  LLVM 
november 2012 by GameGamer43

Copy this bookmark:



description:


tags: