LLVM Debugging Tips and Tricks
03 August 2015
LLVM is a fantastic tool for anyone interested in developing languages, optimizing their code, or even developing first-order architectural simulations. Part of what makes it so great is the wealth of great tools that come with it to help develop and debug passes. Unfortunately not all of them are very well-documented and many are not widely known. In this post I'll describe a few that I stumbled upon which may prove useful — things like printing all the basicblocks/instructions of a function, or inspecting successor/predecessor chains from the debugger (lldb).
03 May 2015
Using weak consistency models is tough, but sometimes necessary for scaling. Many apps can tolerate some inconsistency, but it's difficult to ensure the parts that need to be correct stay consistent. Disciplined inconsistency aims to help programmers choose where and how much they can tolerate inconsistency, but there's more than one way of looking at error tolerance, depending on what your application needs.
Musings from PaPoC
29 April 2015
I had the privilege of presenting some of my work to many similarly-minded researchers at the PaPoC workshop last week. I got some great ideas from hearing about other relevant ongoing work and from insightful conversations with people there.
Scholarly markdown (with R) for fun and (non-monetary) profit
24 February 2015
We need ways to lower the barrier to writing up in-progress research, making it easier to explore data in the process of sharing your findings. I've pulled together some tools that use Markdown for writing and generate plots inline to make it easy to generate both webpages and conference submissions.
Simulating an interactive Twitter workload
18 February 2015
My latest project has led me to try to simulate workloads from real-world social networks. Starting from Graph500's Kronecker graph and integrating with Retwis, with a sprinkle of my own retweet behavior, I came up with something that works for me that I thought I'd share.
A plan for un-crashing CrashPlan
13 November 2014
Some tricks for fixing CrashPlan's "unable to connect to backup service" error on Yosemite.
Distilling C++ into high-performance Grappa
16 August 2014
One of the hardest parts about writing distributed applications is locality — this compiler analysis automatically transforms threads to migrate to the data they access, minimizing communication and improving overall performance.
12 February 2014
Ever screw up a rebase and lose your branch? Ever wish you could easily undo that nightmare of a merge? This trick will let you undo the worst kind of errors: version control mess-ups.
Quick LLVM Tricks
30 January 2014
Reiterating a trick I learned for registering LLVM passes automatically with Clang, and some other gems.
LLVM Command line options
30 January 2014
LLVM trick bonus round — command-line options. Admittedly dull-sounding but some serious C++ magic.
Building LLVM on OSX
29 January 2014
Notes from how I've built LLVM to be most useful for me (and maybe for you, too).
Brandon Holt —
Computer Science & Engineering
University of Washington