My workplace

Curriculum vitae

(as PDF)

Fabian Gruber

Inria CORSE & Université Grenoble Alpes

I am a PhD student at the Inria team CORSE (Compiler Optimization and Runtime SystEms) and the Université Grenoble Alpes.

I work on performance debugging, that is analysing an applications performance and finding hotspots and bottlenecks.

The main focus of my work has been on:

  • Disassembling optimized binaries & re-constructing higher-level information.
  • Program instrumentation using dynamic binary translation with tools such as QEMU and DynamoRIO.
  • Performance evaluation of modern x86 & ARM CPUs, as well as reverse engineering parts of their instruction pipelines.
  • Work with the machine description system of the LLVM compiler infrastructure (tablegen).


Inria / Université Grenoble Alpes

Winter Semester 2018

Teaching assistant

class: Programming Language Semantics and Compiler Design for Yliès Falcone

Colorado State University


Visiting researcher

Worked on using techniques from polyhedral compilation to give optimization feedback to progammers.

PPoPP 2018 conference

Colorado State University

10.2017 - 11.2017

Visiting researcher

Worked on reverse engineering performance aspects of modern OoO x86 & ARM CPUs with Louis-Noel Pouchet.

Inria / Université Grenoble Alpes

Winter Semester 2016

Teaching assistant

class INF 302: Langages & Automates (formal languages & automata) for Yliès Falcone

10.2016 - current

PhD student in the CORSE team

Advisor: Fabrice Rastello
Co-advisor: Ylies Falcone

Work on performance debugging & performance analysis.

Work with a dynamic binary instrumentation framework on top of the QEMU CPU emulator for re-constructing call graphs & inter-procedural loop forests from optimized binaries as well as tracking data dependencies. Using this information code transformations are proposed using a polyhedral optimizer.


10.2014 - 09.2016

Research Engineer in the CORSE team

Worked on the TIREX project, a machine-code level compiler IR exchange format.
Wrote LLVM based tools for instruction level code analysis & hybrid (both static & dynamic/instrumentation based) alias analysis.


Summer 2010

Internship at Christian Doppler Laboratory SE-Flex-AS

Software Development & Quality Assurance

10.2006 - 06.2007

Civil service at nursing home “Bezirksalten- und Pflegeheim Ried im Innkreis”

Nurse & custodial duties


Runtime pointer disambiguation

Péricles Alves, Fabian Gruber, Johannes Doerfert, Alexandros Lamprineas, Tobias Grosser, Fabrice Rastello, and Fernando Magno Quintão Pereira.


Technical University of Vienna

08.2011 - 08.2014

Master programme Software & Information Engineering (graduated with distinction)

Thesis: “Invokedynamic for the CACAO JVM” with advisor Andreas Krall.
Implemented JSR-292 (Supporting Dynamically Typed Languages on the Java Platform) on the CACAO JVM.

09.2007 - 08.2011

Bachelor programme Software & Information Engineering


C/C++, x86 assembly (& disassembly), Python, Java, Haskell, bash

fluent English & French, native German. Basic knowledge of Italian and Korean.


Hiking, cooking, video games (playing & making them), currently trying to learn Korean