Changes

Jump to: navigation, search

Fall 2015 SPO600 Compiler Options Presentation

1,833 bytes added, 19:42, 6 October 2015
Topics: Added resource links
== Assignment ==
# Select two of the <u>unrelated</u> compiler optoinsoptions, below, by placing your name in the "Student" column (first come, first served - one student per topic).# During week 3, research the topic topics and prepare a '''3- to 5-minute''' presentation to teach the class.
# Be prepared to teach this presentation during week 4. You may want to draw whiteboard diagrams, use presentation slides, or have a 1-page handout. Please avoid taking more than 5 minutes in total for your presentation.
== Deadlines ==
* Topic selection: '''111:40 am30 pm, Tuesday, September 22''' (End of the scheduled Tuesday class in Week 3)* Presentation ready: '''11:40 am, Tuesday, September 29''' (You must be prepared to present before the scheduled Tuesday class in Week 64)
== FAQ ==
* Q: '''How much detail should the presentation include?'''
** A: Each of these topics is pretty small and straightforward. Provide some type of resource for future reference -- a link to an existing web resource, a 1-page handout, or a blog post or wiki page about the topic. Your presentation should include:
**# The Option: The compiler option as described in the gcc documentation - What it is and why programmers write code in this way. Include a short example of actual codeit is provided.
**# The Impact: Write and compile code that is impacted by this particular compiler option. Identify the characteristics that must be present in the source code in order to benefit from this compiler option (for example: double-precision math, use of arrays, pointer math). Describe the effect of the option on performance, code size, and code readability. If there are any problems or dangers with this option, identify them.
**# Recommendation: Make a recommendation on when this compiler option should be used and when it should not be used.
* Q: '''What resources should I use?'''
** A: Use the [https://gcc.gnu.org/onlinedocs/ gcc documentation]** A: There . Also, there are resources on the web as well as on this wiki (for example, see the [[:Category:Assembly Language|Assembly Language category]] on this wiki).
* Q: '''Are there any classes scheduled during Week 3?'''
{|class="wikimedia sortable" border="1" cellpadding="5" cellspacing="0"
!CategoryCompiler Option!!TopicPresenter Name!!Presenter Name(Leave blank)!!Links to resources (Wiki page, handout, web resources)!!Link to blog post on this topic
|-
| -faggressive-loop-optimizations|| || || ||
|-
| -fassociative-math|| Kevin Paiva || || ||
|-
| -fauto-inc-dec|| || || ||
| -fconserve-stack|| || || ||
|-
| -fcompare-elim|| Kevin Paiva || || ||
|-
| -fcprop-registers|| || || ||
| -fcse-follow-jumps|| || || ||
|-
| -fcse-skip-blocks|| Joseph Jaku || || ||[http://jjakuseneca.blogspot.ca/2015/10/compiler-optimization-options.html Blog Post]
|-
| -fdce|| Joseph Jaku || || ||[http://jjakuseneca.blogspot.ca/2015/10/compiler-optimization-options.html Blog Post]
|-
| -fdelayed-branch|| || || ||
|-
| -fdelete-null-pointer-checks|| Joel Aro || || [https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html GCC Optimize Options] ||
|-
| -fdevirtualize|| Suk-Joong Han || || https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html ||
|-
| -fdevirtualize-speculatively|| || || ||
| -ffat-lto-objects|| || || ||
|-
| -ffast-math|| Miguel Dizon || || https://gcc.gnu.org/wiki/FloatingPointMath ||
|-
| -ffinite-math-only|| || || ||
| -findirect-inlining|| || || ||
|-
| -finline-functions|| Kirill Lepetinskiy|| || [https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html GCC Docs] ||[http://klepetinskiy.blogspot.ca/2015/09/finline-functions.html Blog Post]
|-
| -finline-functions-called-once|| || || ||
| -finline-limit=n|| || || ||
|-
| -finline-small-functions|| Yehoshua Ghitis|| || ||
|-
| -fipa-cp|| || || ||
| -flive-range-shrinkage|| || || ||
|-
| -floop-block|| Dmytro Yegorov || || [http://www.cc.gatech.edu/~bader/COURSES/UNM/ece637-Fall2003/papers/KW03.pdf -floop-block]||[https://dyegorov.wordpress.com/2015/10/02/gcc-floop-block-and-floop-interchange/ Blog Post]
|-
| -floop-interchange|| Dmytro Yegorov || || [https://en.wikipedia.org/wiki/Loop_interchange -floop-interchange]||[https://dyegorov.wordpress.com/2015/10/02/gcc-floop-block-and-floop-interchange/ Blog Post]
|-
| -floop-strip-mine|| || || ||
| -fmodulo-sched-allow-regmoves|| || || ||
|-
| -fmove-loop-invariants|| Gaurav Patel || || https://en.wikipedia.org/wiki/Loop-invariant_code_motion ||
|-
| -fno-branch-count-reg|| || || ||
|-
| -fno-defer-pop|| Andy Cooc || || ||
|-
| -fno-function-cse|| Andy Cooc || || ||
|-
| -fno-guess-branch-probability|| || || ||
|-
| -fno-inline|| Donald Nguyen || || ||
|-
| -fno-math-errno|| || || ||
| -fno-sched-spec|| || || ||
|-
| -fno-signed-zeros|| Suk-Joong Han || || https://en.wikipedia.org/wiki/Signed_zero ||
|-
| -fno-toplevel-reorder|| || || ||
| -fpartial-inlining|| || || ||
|-
| -fpeel-loops|| James Shin|| || ||
|-
| -fpredictive-commoning|| || || ||
|-
| -fprefetch-loop-arrays|| Jayme Laso-Barros|| || [https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Optimize-Options.html GCC 5.2 Manual: Section 3.10]||
|-
| -fprofile-report|| || || ||
| -fprofile-generate=path|| || || ||
|-
| -fprofile-use|| Ramanan Manokaran || || ||
|-
| -fprofile-use=path|| || || ||
| -frename-registers|| || || ||
|-
| -freorder-blocks|| Ramanan Manokaran|| || ||
|-
| -freorder-blocks-and-partition|| || || ||
|-
| -freorder-functions|| Jayme Laso-Barros|| || [https://gcc.gnu.org/onlinedocs/gcc-5.2.0/gcc/Optimize-Options.html GCC 5.2 Manual: Section 3.10]||
|-
| -frerun-cse-after-loop|| || || ||
| -fsplit-ivs-in-unroller|| || || ||
|-
| -fsplit-wide-types|| Shirwa Egal || || ||
|-
| -fstack-protector / -fstack-protector-all / -fstack-protector-strong|| || || ||
| -ftree-copyrename|| || || ||
|-
| -ftree-dce|| Gaurav Patel || || https://en.wikipedia.org/wiki/Dead_code_elimination||
|-
| -ftree-dominator-opts|| || || ||
|-
| -ftree-dse|| Shirwa Egal|| || ||
|-
| -ftree-forwprop|| || || ||
| -ftree-fre|| || || ||
|-
| -ftree-loop-if-convert|| Donald Nguyen || || ||
|-
| -ftree-loop-if-convert-stores|| Kirill Lepetinskiy|| || [https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html GCC Docs] [http://www.rcollins.org/p6/opcodes/CMOV.html On CMOV] ||[http://klepetinskiy.blogspot.ca/2015/09/ftree-loop-if-convert-stores.html Blog Post]
|-
| -ftree-loop-im|| || || ||
| -ftree-phiprop|| || || ||
|-
| -ftree-loop-distribution|| Nitish Bajaj|| || ||
|-
| -ftree-loop-distribute-patterns|| || || ||
| -ftree-vectorize|| || || ||
|-
| -ftree-vrp|| Nitish Bajaj|| || ||
|-
| -funit-at-a-time|| || || ||
|-
| -funroll-all-loops|| Yehoshua Ghitis|| || ||
|-
| -funroll-loops|| Joel Aro || || [https://en.wikipedia.org/wiki/Loop_unrolling Loop Unrolling] ||
|-
| -funsafe-loop-optimizations|| || || ||
|-
| -funsafe-math-optimizations|| James Shin || || ||
|-
| -funswitch-loops|| Miguel Dizon || || ||
|-
| -fvariable-expansion-in-unroller|| || || ||

Navigation menu