Difference between revisions of "Winter 2016 SPO600 Compiler Options Presentation"
(→Topics) |
(→Topics) |
||
(21 intermediate revisions by 9 users not shown) | |||
Line 79: | Line 79: | ||
| -fdevirtualize-speculatively|| || || || | | -fdevirtualize-speculatively|| || || || | ||
|- | |- | ||
− | | -fdse|| || || || | + | | -fdse||Giuseppe Ranieri|| || || |
|- | |- | ||
| -fearly-inlining|| || || || | | -fearly-inlining|| || || || | ||
Line 87: | Line 87: | ||
| -ffat-lto-objects|| || || || | | -ffat-lto-objects|| || || || | ||
|- | |- | ||
− | | -ffast-math|| || | + | | -ffast-math|| Yunhao Wang|| || || |
|- | |- | ||
| -ffinite-math-only|| || || || | | -ffinite-math-only|| || || || | ||
Line 121: | Line 121: | ||
| -findirect-inlining|| || || || | | -findirect-inlining|| || || || | ||
|- | |- | ||
− | | -finline-functions|| Gaston Carvallo|| || || | + | | -finline-functions|| Gaston Carvallo|| https://gcarvalloblog.wordpress.com/2016/03/15/gcc-optimization-options/ || || |
|- | |- | ||
| -finline-functions-called-once|| || || || | | -finline-functions-called-once|| || || || | ||
Line 127: | Line 127: | ||
| -finline-limit=n|| || || || | | -finline-limit=n|| || || || | ||
|- | |- | ||
− | | -finline-small-functions|| || || || | + | | -finline-small-functions|| Gaston Carvallo|| || || |
|- | |- | ||
| -fipa-cp|| || || || | | -fipa-cp|| || || || | ||
Line 137: | Line 137: | ||
| -fipa-profile|| || || || | | -fipa-profile|| || || || | ||
|- | |- | ||
− | | -fipa-pure-const|| || || || | + | | -fipa-pure-const||Giuseppe Ranieri || || || |
|- | |- | ||
| -fipa-reference|| || || || | | -fipa-reference|| || || || | ||
Line 169: | Line 169: | ||
| -floop-block|| || || || | | -floop-block|| || || || | ||
|- | |- | ||
− | | -floop-interchange|| || || || | + | | -floop-interchange|| Nina Wip || || http://spo600ninawip.blogspot.ca/2016/03/presentation-topic.html || http://spo600ninawip.blogspot.ca/2016/03/presentation-review.html |
|- | |- | ||
− | | -floop-strip-mine|| || || || | + | | -floop-strip-mine|| Bernard Wouter de Vries Robles || || || |
|- | |- | ||
| -floop-nest-optimize|| || || || | | -floop-nest-optimize|| || || || | ||
Line 189: | Line 189: | ||
| -fmerge-all-constants|| || || || | | -fmerge-all-constants|| || || || | ||
|- | |- | ||
− | | -fmerge-constants|| || || || | + | | -fmerge-constants||Tom Ng|| || || https://tng23spo600.wordpress.com/2016/04/17/on-two-optimizations-fmerge-constants-and-fpeel-loops/ |
|- | |- | ||
| -fmodulo-sched|| || || || | | -fmodulo-sched|| || || || | ||
Line 227: | Line 227: | ||
| -fpartial-inlining|| || || || | | -fpartial-inlining|| || || || | ||
|- | |- | ||
− | | -fpeel-loops|| || || || | + | | -fpeel-loops||Tom Ng|| || || https://tng23spo600.wordpress.com/2016/04/17/on-two-optimizations-fmerge-constants-and-fpeel-loops/ |
|- | |- | ||
| -fpredictive-commoning|| || || || | | -fpredictive-commoning|| || || || | ||
Line 253: | Line 253: | ||
| -freciprocal-math|| || || || | | -freciprocal-math|| || || || | ||
|- | |- | ||
− | | -free|| || || || | + | | -free|| Bernard Wouter de Vries Robles || || || |
|- | |- | ||
− | | -frename-registers|| || || || | + | | -frename-registers|| Vishnu || || || |
|- | |- | ||
| -freorder-blocks|| || || || | | -freorder-blocks|| || || || | ||
Line 303: | Line 303: | ||
| -fsel-sched-pipelining / -fsel-sched-pipelining-outer-loops|| || || || | | -fsel-sched-pipelining / -fsel-sched-pipelining-outer-loops|| || || || | ||
|- | |- | ||
− | | -fshrink-wrap|| || || || | + | | -fshrink-wrap|| Vishnu || || || |
|- | |- | ||
| -fsignaling-nans|| || || || | | -fsignaling-nans|| || || || | ||
Line 321: | Line 321: | ||
| -fthread-jumps|| || || || | | -fthread-jumps|| || || || | ||
|- | |- | ||
− | | -ftracer|| || || || | + | | -ftracer|| Andrei Topala || || || https://andrei600.wordpress.com/2016/03/15/gcc-compiler-options-funsafe-math-optimizations-and-ftracer/ |
|- | |- | ||
| -ftree-bit-ccp|| || || || | | -ftree-bit-ccp|| || || || | ||
Line 351: | Line 351: | ||
| -ftree-loop-if-convert|| || || || | | -ftree-loop-if-convert|| || || || | ||
|- | |- | ||
− | | -ftree-loop-if-convert-stores|| || || || | + | | -ftree-loop-if-convert-stores|| Kenny Nguyen|| || || |
|- | |- | ||
| -ftree-loop-im|| || || || | | -ftree-loop-im|| || || || | ||
Line 387: | Line 387: | ||
| -ftree-switch-conversion|| || || || | | -ftree-switch-conversion|| || || || | ||
|- | |- | ||
− | | -ftree-tail-merge|| || || || | + | | -ftree-tail-merge|| Nina Wip || || http://spo600ninawip.blogspot.ca/2016/03/presentation-topic.html || http://spo600ninawip.blogspot.ca/2016/03/presentation-review.html |
|- | |- | ||
| -ftree-ter|| || || || | | -ftree-ter|| || || || | ||
Line 397: | Line 397: | ||
| -funit-at-a-time|| || || || | | -funit-at-a-time|| || || || | ||
|- | |- | ||
− | | -funroll-all-loops|| || || || | + | | -funroll-all-loops|| Kenny Nguyen|| || || |
|- | |- | ||
− | | -funroll-loops|| Gaston Carvallo|| || || | + | | -funroll-loops|| Gaston Carvallo|| https://gcarvalloblog.wordpress.com/2016/03/15/gcc-optimization-options/ || || |
|- | |- | ||
| -funsafe-loop-optimizations|| || || || | | -funsafe-loop-optimizations|| || || || | ||
|- | |- | ||
− | | -funsafe-math-optimizations|| || || || | + | | -funsafe-math-optimizations|| Andrei Topala || || || https://andrei600.wordpress.com/2016/03/15/gcc-compiler-options-funsafe-math-optimizations-and-ftracer/ |
|- | |- | ||
| -funswitch-loops|| Miguel Dizon || || || | | -funswitch-loops|| Miguel Dizon || || || | ||
Line 411: | Line 411: | ||
| -fvect-cost-model|| || || || | | -fvect-cost-model|| || || || | ||
|- | |- | ||
− | | -fvpt|| || || || | + | | -fvpt|| Yunhao Wang || || || |
|- | |- | ||
| -fweb|| || || || | | -fweb|| || || || |
Latest revision as of 20:29, 16 April 2016
Contents
Assignment
- Select two unrelated compiler options, below, by placing your name in the "Student" column (first come, first served - one student per topic).
- During week 3, research the 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: 9:50 am pm, Tuesday, March 8 (End of the scheduled Tuesday class in Week 8)
- Presentation ready: 9:50 am, Tuesday, March 15 (You must be prepared to present before the scheduled Tuesday class in Week 9)
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 it 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.
- 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:
- Q: How will this be marked?
- A: In week 4, I will ask you to write a short blog post summarizing your presentation.
- Q: Can we work with others preparing our topic?
- A: Yes. In many cases, one topic is complimentary to another topic, and it would be great if you coordinated on your presentations.
- Q: What resources should I use?
- A: Use the gcc documentation. Also, there are resources on the web as well as on this wiki (for example, see the Assembly Language category on this wiki).
- Q: Are there any classes scheduled during Week 8?
- A: No. Your professor will be at Linaro Connect. However, the classroom is reserved for our use, and you're welcome to use it to discuss your presentation ideas with classmates.
Topics
Compiler Option | Presenter Name | (Leave blank) | Links to resources (Wiki page, handout, web resources) | Link to blog post on this topic |
---|---|---|---|---|
-faggressive-loop-optimizations | ||||
-fassociative-math | ||||
-fauto-inc-dec | ||||
-fbranch-probabilities | Yanhao Lei | |||
-fbranch-target-load-optimize | ||||
-fbranch-target-load-optimize2 | ||||
-fbtr-bb-exclusive | ||||
-fcaller-saves | ||||
-fcheck-data-deps | ||||
-fcombine-stack-adjustments | ||||
-fconserve-stack | ||||
-fcompare-elim | ||||
-fcprop-registers | ||||
-fcrossjumping | Yanhao Lei | |||
-fcse-follow-jumps | ||||
-fcse-skip-blocks | ||||
-fdce | ||||
-fdelayed-branch | ||||
-fdelete-null-pointer-checks | ||||
-fdevirtualize | ||||
-fdevirtualize-speculatively | ||||
-fdse | Giuseppe Ranieri | |||
-fearly-inlining | ||||
-fipa-sra | ||||
-ffat-lto-objects | ||||
-ffast-math | Yunhao Wang | |||
-ffinite-math-only | ||||
-ffloat-store | ||||
-fexcess-precision=style | ||||
-fforward-propagate | ||||
-ffp-contract=style | ||||
-ffunction-sections | ||||
-fgcse | ||||
-fgcse-after-reload | ||||
-fgcse-las | ||||
-fgcse-lm | ||||
-fgraphite-identity | ||||
-fgcse-sm | ||||
-fhoist-adjacent-loads | ||||
-fif-conversion | ||||
-fif-conversion2 | ||||
-findirect-inlining | ||||
-finline-functions | Gaston Carvallo | https://gcarvalloblog.wordpress.com/2016/03/15/gcc-optimization-options/ | ||
-finline-functions-called-once | ||||
-finline-limit=n | ||||
-finline-small-functions | Gaston Carvallo | |||
-fipa-cp | ||||
-fipa-cp-clone | ||||
-fipa-pta | ||||
-fipa-profile | ||||
-fipa-pure-const | Giuseppe Ranieri | |||
-fipa-reference | ||||
-fira-algorithm=algorithm | ||||
-fira-region=region | ||||
-fira-hoist-pressure | ||||
-fira-loop-pressure | ||||
-fno-ira-share-save-slots | ||||
-fno-ira-share-spill-slots | ||||
-fira-verbose=n | ||||
-fisolate-erroneous-paths-dereference | ||||
-fisolate-erroneous-paths-attribute | ||||
-fivopts | ||||
-fkeep-inline-functions | ||||
-fkeep-static-consts | ||||
-flive-range-shrinkage | ||||
-floop-block | ||||
-floop-interchange | Nina Wip | http://spo600ninawip.blogspot.ca/2016/03/presentation-topic.html | http://spo600ninawip.blogspot.ca/2016/03/presentation-review.html | |
-floop-strip-mine | Bernard Wouter de Vries Robles | |||
-floop-nest-optimize | ||||
-floop-parallelize-all | ||||
-flto | ||||
-flto-compression-level | ||||
-flto-partition=alg | ||||
-flto-report | ||||
-flto-report-wpa | ||||
-fmerge-all-constants | ||||
-fmerge-constants | Tom Ng | https://tng23spo600.wordpress.com/2016/04/17/on-two-optimizations-fmerge-constants-and-fpeel-loops/ | ||
-fmodulo-sched | ||||
-fmodulo-sched-allow-regmoves | ||||
-fmove-loop-invariants | ||||
-fno-branch-count-reg | ||||
-fno-defer-pop | ||||
-fno-function-cse | ||||
-fno-guess-branch-probability | ||||
-fno-inline | ||||
-fno-math-errno | ||||
-fno-sched-interblock | ||||
-fno-sched-spec | ||||
-fno-signed-zeros | ||||
-fno-toplevel-reorder | ||||
-fno-trapping-math | ||||
-fno-zero-initialized-in-bss | ||||
-fomit-frame-pointer | ||||
-foptimize-sibling-calls | ||||
-fpartial-inlining | ||||
-fpeel-loops | Tom Ng | https://tng23spo600.wordpress.com/2016/04/17/on-two-optimizations-fmerge-constants-and-fpeel-loops/ | ||
-fpredictive-commoning | ||||
-fprefetch-loop-arrays | ||||
-fprofile-report | ||||
-fprofile-correction | ||||
-fprofile-dir=path | ||||
-fprofile-generate | ||||
-fprofile-generate=path | ||||
-fprofile-use | ||||
-fprofile-use=path | ||||
-fprofile-values | ||||
-fprofile-reorder-functions | ||||
-freciprocal-math | ||||
-free | Bernard Wouter de Vries Robles | |||
-frename-registers | Vishnu | |||
-freorder-blocks | ||||
-freorder-blocks-and-partition | ||||
-freorder-functions | ||||
-frerun-cse-after-loop | ||||
-freschedule-modulo-scheduled-loops | ||||
-frounding-math | ||||
-fsched2-use-superblocks | ||||
-fsched-pressure | ||||
-fsched-spec-load | ||||
-fsched-spec-load-dangerous | ||||
-fsched-stalled-insns-dep[=n] | ||||
-fsched-stalled-insns[=n] | ||||
-fsched-group-heuristic | ||||
-fsched-critical-path-heuristic | ||||
-fsched-spec-insn-heuristic | ||||
-fsched-rank-heuristic | ||||
-fsched-last-insn-heuristic | ||||
-fsched-dep-count-heuristic | ||||
-fschedule-insns | ||||
-fschedule-insns2 | ||||
-fsection-anchors | ||||
-fselective-scheduling / -fselective-scheduling-2 | ||||
-fsel-sched-pipelining / -fsel-sched-pipelining-outer-loops | ||||
-fshrink-wrap | Vishnu | |||
-fsignaling-nans | ||||
-fsingle-precision-constant | ||||
-fsplit-ivs-in-unroller | ||||
-fsplit-wide-types | ||||
-fstack-protector / -fstack-protector-all / -fstack-protector-strong | ||||
-fstrict-aliasing | ||||
-fstrict-overflow | ||||
-fthread-jumps | ||||
-ftracer | Andrei Topala | https://andrei600.wordpress.com/2016/03/15/gcc-compiler-options-funsafe-math-optimizations-and-ftracer/ | ||
-ftree-bit-ccp | ||||
-ftree-builtin-call-dce | ||||
-ftree-ccp | ||||
-ftree-ch | ||||
-ftree-coalesce-inline-vars | ||||
-ftree-coalesce-vars | ||||
-ftree-copy-prop | ||||
-ftree-copyrename | ||||
-ftree-dce | ||||
-ftree-dominator-opts | ||||
-ftree-dse | ||||
-ftree-forwprop | ||||
-ftree-fre | ||||
-ftree-loop-if-convert | ||||
-ftree-loop-if-convert-stores | Kenny Nguyen | |||
-ftree-loop-im | ||||
-ftree-phiprop | ||||
-ftree-loop-distribution | ||||
-ftree-loop-distribute-patterns | ||||
-ftree-loop-ivcanon | ||||
-ftree-loop-linear | ||||
-ftree-loop-optimize | ||||
-ftree-loop-vectorize | ||||
-ftree-parallelize-loops=n | ||||
-ftree-pre | ||||
-ftree-partial-pre | ||||
-ftree-pta | ||||
-ftree-reassoc | ||||
-ftree-sink | ||||
-ftree-slsr | ||||
-ftree-sra | ||||
-ftree-switch-conversion | ||||
-ftree-tail-merge | Nina Wip | http://spo600ninawip.blogspot.ca/2016/03/presentation-topic.html | http://spo600ninawip.blogspot.ca/2016/03/presentation-review.html | |
-ftree-ter | ||||
-ftree-vectorize | ||||
-ftree-vrp | Nitish Bajaj | |||
-funit-at-a-time | ||||
-funroll-all-loops | Kenny Nguyen | |||
-funroll-loops | Gaston Carvallo | https://gcarvalloblog.wordpress.com/2016/03/15/gcc-optimization-options/ | ||
-funsafe-loop-optimizations | ||||
-funsafe-math-optimizations | Andrei Topala | https://andrei600.wordpress.com/2016/03/15/gcc-compiler-options-funsafe-math-optimizations-and-ftracer/ | ||
-funswitch-loops | Miguel Dizon | |||
-fvariable-expansion-in-unroller | ||||
-fvect-cost-model | ||||
-fvpt | Yunhao Wang | |||
-fweb | ||||
-fwhole-program |