Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sesiuni:compiler [2014/07/12 19:55]
apicus [Required software]
sesiuni:compiler [2014/07/15 08:07] (current)
freescale [Required software]
Line 35: Line 35:
 == Prerequisites == == Prerequisites ==
 * Good knowledge of C/C++ * Good knowledge of C/C++
 +
 +== Agenda ==
 +* [[sesiuni:​compiler:​intro| Introduction]]
 +* [[sesiuni:​compiler:​layout| The LLVM Directory Layout]]
 +* [[sesiuni:​compiler:​libtooling | Clang LibTooling]]
 +* [[sesiuni:​compiler:​ast | The Clang AST]]
 +* [[sesiuni:​compiler:​highlighting | C Syntax Highlighting]]
 +* [[sesiuni:​compiler:​ir | The LLVM IR]]
 +* [[sesiuni:​compiler:​opt | The LLVM Optimization Engine]]
 +* C Tips & Tricks
 +
 +== Feedback ==
 +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.  ​
 +* [[https://​docs.google.com/​forms/​d/​1kpgT56cChl-44F7uPGRwV8rc76ADmLjnPwmnKkeLCjM/​viewform?​usp=send_form | Feedback Day 1]]
 +* [[https://​docs.google.com/​forms/​d/​1LKtL6GH-sVQwwYkXPHwSqSObeevL7LDoMzjEd3iu17A/​viewform?​usp=send_form | Feedback Day 2]]
 +* [[https://​docs.google.com/​forms/​d/​1fZRGdToeOVUnvK3r6nyrjxUUnBlFcXG279qdOvuRHp4/​viewform?​usp=send_form | Feedback Day 3]]
 +* [[https://​docs.google.com/​forms/​d/​1qzxeN7UfuMxgOuUPIgHkrQkOpfQKrDxXNtWETINAGSo/​viewform?​usp=send_form | Feedback Day 4]]
 +* [[https://​docs.google.com/​forms/​d/​1eIsIcot03bUlHzdv31MWEVOGwrG462q98ojoc-bVPGU/​viewform?​usp=send_form | Feedback Day 5]]
 +
  
 == Participants == == Participants ==
Line 59: Line 78:
 * An IDE is recommended * An IDE is recommended
 * Nice to have: LLVM IR syntax highlighting - alternatives include [[http://​amishne.github.io/​llvm-ir-editor/​|this Eclipse plugin]], the vim plugin in the llvm/​utils/​vim directory and respectively the Emacs plugin in llvm/​utils/​emacs * Nice to have: LLVM IR syntax highlighting - alternatives include [[http://​amishne.github.io/​llvm-ir-editor/​|this Eclipse plugin]], the vim plugin in the llvm/​utils/​vim directory and respectively the Emacs plugin in llvm/​utils/​emacs
 +<note warning>​You should use a Debug build of LLVM. If you're not sure, try to run
 +<code bash>
 +clang -S -emit-llvm file.c -o file.ll
 +opt -loop-unroll -debug-pass=Structure file.ll -S -o file.ll
 +</​code>​
  
 +You should get an output similar to this:
 +<​code>​
 +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
 +</​code>​
 +</​note>​
 == Organizers == == Organizers ==
 ==== Diana Vasile ==== ==== Diana Vasile ====
sesiuni/compiler.1405184129.txt.gz · Last modified: 2014/07/12 19:55 by apicus