[Colloq] Master's Thesis Defense - Louis Bloom - April 14, 11am, 366 - Structured Intermediate Representation Modification in the LLVM Compiler Infrastructure
Jessica Biron
bironje at ccs.neu.edu
Fri Apr 11 14:27:31 EDT 2014
Louis Bloom
Type : Masters
Title : Structured Intermediate Representation Modification in the LLVM Compiler Infrastructure
Date : 14 April
Time : 11:00 a.m.
Location : 366 WVH
Abstract : In this thesis we propose a new approach for modifying programs expressed
in an intermediate representation (IR) that leverages the many-to-one relationship
between source languages and IR and also supports modifying code
emitted from binary-to-IR decompilers. The open source LLVM Compiler
Infrastructure offers a semantically well-defined IR and supports a variety
of popular source languages and target instruction set architectures (ISAs).
LLVM currently supports program modification by translating source
code into LLVM IR and performing a fixed set of transformations on the
IR. This functionality is part of the LLVM optimizer and exists in order
to improve a program’s execution performance while preserving its visible
behavior.
We improve LLVM’s techniques for systematic program modification
by introducing structured methods for behavior alteration. The targets for
modification are programs written in LLVM IR. First, this work presents a
call graph transformation algebra which allows for call graph manipulation
while preserving structural validity of a target graph. Second, this thesis
explores the implementation of a structured IR editor based on this transformation
algebra that allows users to modify a target program in terms of its
call graph. Finally, we demonstrate the usefulness of our IR editor through
an example in which we retrofit security features into the OpenSSH codebase.
More information about the Colloq
mailing list