Pagini
Workshops
Parteneri
LLVM is an open-source compiler infrastructure used in many commercial and academic projects . It is written in C++ and it has a very modular design which allows all sorts of tools to be built on top of it: compilers, interpreters, static analyzers and so on.
We intend to introduce you to the world of compilers and related tools by using LLVM as a case study.
At the end of this workshop, you will know:
The phases of the compilation process
The general structure of LLVM
Compiler-based tools
C tips & tricks
You can use these forms to tell us what you thought about the content presented each day, what you did or didn't understand, what you'd like us to discuss again the following day etc. Any suggestions or comments are more than welcome.
Mihnea Dobrescu-Balaur |
Adrian Nitu |
Gabriel Florentin Balaban |
Radu Stoenescu |
Ionel Popescu |
Dan-Stefan Dragan |
Andrei Preda |
Nurberdiyev Pudak |
Cristina-Ioana Brinza |
Albert Zaharovits |
Stefan Stamate |
Roxana Istrate |
Roberta Dobrescu |
Calin-Cristian Cruceru |
Cozmin Velciu |
The required software will be installed on the stations in the lab, but in case you want to bring your laptop you should try to install the following:
clang -S -emit-llvm file.c -o file.ll opt -loop-unroll -debug-pass=Structure file.ll -S -o file.ll
You should get an output similar to this:
Pass Arguments: -targetlibinfo -datalayout -notti -basictti -x86tti -domtree -loops -loop-simplify -lcssa -scalar-evolution -loop-simplify -lcssa -loop-unroll -preverify -verify -print-module Target Library Information Data Layout No target information Target independent code generator's TTI X86 Target Transform Info ModulePass Manager FunctionPass Manager Dominator Tree Construction Natural Loop Information Loop Pass Manager Canonicalize natural loops Loop-Closed SSA Form Pass Scalar Evolution Analysis Loop Pass Manager Canonicalize natural loops Loop-Closed SSA Form Pass Unroll loops Preliminary module verification Module Verifier Print module to stderr
</note>
E-mail: diana.vasile@freescale.com
E-mail: bogdan.ditu@freescale.com
E-mail: rene.palalau@freescale.com