Jonas Devlieghere
  • Home
  • About
  • Talks
  • Github
  • C++
  • LLVM

Jonas Devlieghere

LLVM

Statistics in dsymutil

To make incremental builds fast on macOS, the static linker (ld) ignores the debug information. It can easily be a magnitude bigger than the rest of the program and slow down link time. Instead the linker emits a debug map which contains the location

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 17 May 2020 • 2 min read
lldb

LLDB Column Breakpoints

If you've ever used the debugger, chances are you've used a file and line number to set a breakpoint. Most of the time this provides enough granularity. Sometimes, though, more fine grained control would be helpful. Consider the following example: 1 int foo() { 2

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 19 Feb 2020 • 3 min read
LLVM

Lua Scripting in LLDB

LLDB is the debugger developed as part of the LLVM project. It is probably most known as the debugger in Xcode, but many use it as an alternative to GDB. Scripting in LLDBOne thing that makes LLDB really powerful is how scriptable it is.

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 22 Dec 2019 • 2 min read
Python

Sanitizing C++ Python Modules

Python has great interoperability with C and C++ through extension modules. There are many reasons to do this, such as improving performance, accessing APIs not exposed by the language, or interfacing with libraries written in C or C++. Unlike Python however, C and C+

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 20 Dec 2019 • 4 min read
Python

Calling Into C or C++ Code From Python

Recently I wanted to call some C code from Python to check who was sending a particular signal. Apparently this functionality is only available as of Python 3 so I decided to write a custom module. Doing so is relatively easy but all the

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 5 Dec 2018 • 2 min read
C++

Using LSP & clangd in Vim

After having used YouCompleteMe, I finally decided to give one of the Language Server Protocol (LSP) implementations a spin. As an LLVM developer I've been following clangd's development and wanted to try it out. When writing this blog post, there's several LSP implementations for

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 22 Apr 2018 • 2 min read
git

Finding Reviewers for Your Patch

Finding the right people to review your patch can be tough. I see the question "who should I add as reviewer for this patch?" popping up on IRC quite regularly and not something I'm unfamiliar with myself. Not every project has a

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 16 Dec 2017 • 1 min read
C++

Reference Counting PIMPL Idiom

The pointer to implementation or PIMPL idiom is a popular C++ idiom for decoupling the representation and implementation of a class. It reduces compilation times and enables a stable API while allowing the internals to change. Reference counting is another ubiquitous programming technique, used

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 8 Aug 2017 • 1 min read
Exposing Containers of Unique Pointers
C++

Exposing Containers of Unique Pointers

The std::unique_ptr is probably one of my favorite and most used features in modern C++. The unique pointer is as powerful as it is simple, and assuming you've

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 17 Apr 2017 • 5 min read
One Year At GuardSquare
LLVM

One Year At GuardSquare

Today marks my one year anniversary at GuardSquare. On the one hand it feels like yesterday (as cliché as that might sound) but on the other hand it feels like

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 6 Mar 2017 • 4 min read
Building a Workstation

Building a Workstation

January 2017 marks the sixth birthday of my desktop computer. When I purchased my trusty Intel Core i5-2500K, I would've never guessed that I'd use it for that long. However,

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 13 Jan 2017 • 2 min read
Escape Analysis & Capture Tracking in LLVM
LLVM

Escape Analysis & Capture Tracking in LLVM

Pointer analysis is an important topic in compiler optimization. One interesting aspect is the dynamic scope of pointers. LLVM differentiates between two situations: Pointer Capture: A pointer value is captured

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 8 Jan 2017 • 2 min read
C++

Order Your Members

The C++ standard guarantees that the members of a class or struct appear in memory in the same order as they are declared. Nonstatic data members of a (non-union) class with the same access control are allocated so that later members have higher addresses

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 4 Jan 2017 • 7 min read
C++

Guaranteed Copy Elision

The new C++17 standard brings many exciting new features. A smaller, more subtle improvement it brings is guaranteed copy elision. The keyword is guaranteed, as copy elision itself has always been part of the standard. Although it might not be a change as

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 21 Nov 2016 • 5 min read
bitcode

LibEBC & ebcutil

In a previous blog post I wrote about bitcode. Embedding it was already possible for quite some time with Apple's fork of LLVM that ships with Xcode. Recently, Apple upstreamed (parts of) their implementation making it possible to do the same with the open

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 13 Oct 2016 • 3 min read
LLVM

Embedded Bitcode

Little over a year ago, Apple announced at WWDC 2015 the ability to embed bitcode in Mach-O files. Bitcode is the intermediate representation used by the LLVM compiler and contains all the information required to recompile an application. Having the bitcode present, in addition

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 21 Jun 2016 • 5 min read
Android

MAsCOT

Self-Adaptive Opportunistic Offloading for Cloud-Enabled Smart Mobile Applications with Probabilistic Graphical Models at Runtime I'm proud to announce that the paper summarizing the findings in my master's thesis (Intelligent Offloading Decisions for Mobile Cloud Applications) will be presented at the 49th Hawaii International Conference

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 4 Jan 2016 • 1 min read
Understanding the Clang AST
clang

Understanding the Clang AST

Clang is everywhere; It is the core of my favorite Vim plugin YouCompleteMe, it recently got supported by Microsoft Visual Studio, it is mentioned in numerous episodes of CppCast and

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 31 Dec 2015 • 10 min read
C++

A better YouCompleteMe Config

If you're like me and have (1) been using Vim for a while and (2) have been programming in C++, you've likely heard about YouCompleteMe. YCM is an awesome auto-completion engine for Vim. For C++ and other C-based languages it uses the libclang under

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 26 Jul 2015 • 3 min read
latex

Packages I Wish I Knew When Starting LaTeX

I've been using LaTeX for almost a decade now. Even after that much time, I keep running into new problems that require a solution I wasn't aware of. LaTeX has a great community and usually there's someone that already faced your problem. Every time

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 11 Jun 2015 • 6 min read
Word Search Solver
Haskell

Word Search Solver

When browsing the Medium homepage I came across this post about #wordsearchwednesday. Although I enjoy a puzzle as much as the next guy, I immediately thought that this was something

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 13 Feb 2015 • 1 min read
Arduino Display
Java

Arduino Display

As I already mentioned in a previous post, I recently purchased a 4 line LCD display to play around with. It provides an I2C Bus which means that it can

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 28 Dec 2014 • 1 min read
Proper Printing with HD44780 LCD
Arduino

Proper Printing with HD44780 LCD

I recently purchased a very simple, Hitachi HD44780 compatible LCD screen for an Arduino project. It's a 20x4 I2C display, which apparently is constructed as a combination of 2 two-line

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 25 Dec 2014 • 1 min read
Course Notes & Summaries
Computer Science

Course Notes & Summaries

For some of the courses I took during my studies in computer science at the University of Leuven, I've combined the course material, typically with the help of others, into

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 23 Dec 2014 • 1 min read
LooCI

Burglar Alarm: IoT Course

For the Internet of Things (IoT) assignment for the course Capita Selecta: Distributed Systems we were supposed to create a burglar alarm. A passive infrared sensor (IR) detects movements, which triggers a 60 second timer. If the correct code is not entered using a

  • Jonas Devlieghere
    Jonas Devlieghere
Jonas Devlieghere 17 Dec 2014 • 3 min read
Jonas Devlieghere
  • Home
  • About
  • Talks
  • Github
  • C++
  • LLVM
Jonas Devlieghere © 2021
Latest Posts Twitter Ghost