Skip to content
Call-graph flattening transform for LLVM 2.8
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CGF.cppi
CGF.exports
CGF.h
CGFCallsite.cppi
CGFFunction.cppi
CGFPass.cpp
CMakeLists.txt
Includes.h
Makefile
README.md
Utils.cpp
Utils.h

README.md

Call-graph flattening (CGF) transform for the LLVM compiler framework

This LLVM ModulePass performs call-graph flattening, a IR transformation that gets rid of "functions" and merges all code together. This removes the distinction between IPO and non-IPO transforms and allows other transforms to perform better and more thorough optimizations.

This pilot implementation was written as part of my thesis Compiler optimizations based on call-graph flattening. It is not yet useful for real-world code, mostly because other parts of LLVM (e.g. register allocator, spiller) have to be improved to make the most out of the possibilities empowered by CGF.

You can’t perform that action at this time.