About: A sidequest is an optional, not graded, not evaluated in anyway exploration into a topic. Sometimes it is just cool to know what is out there in the world. Sidequests come with a little descritions, presentations, related resources, and a sample code or exercise you can try. Side quests are likely a good area for further independent studies, research project, thesis, etc.

Machine Learning Compiler Optimizations

Figure out the optimal subset of compiler optimizations to apply and/or reapply using LLVM to generate the fastest or smallest possible executable.

Problem Statement

There are many compiler optimizations provided by compilers like GCC, LLVM, MSVC, and Intel. Choosing which set of optimizations maximizes your code performance is challenging, though most compilers present -O1, -O2, -O3 to assist. Otherwise, an option is to run all of the compiler optimzations possible.

Proposed Exercise

Use a compiler (preferably LLVM) and the 'opt' tool to apply a variety of compiler optimizations.

Proposed Evaluation

On a linux machine

Key Resources

(The first resource you should read)

Additional Resources