Software Development on Quest
Software Development on Quest
Software Development on Quest
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Ideal for large codes,<br />
with many branches,<br />
which are less<br />
computati<strong>on</strong>ally<br />
intensive<br />
Ideal for codes<br />
c<strong>on</strong>taining short loops<br />
which are executed<br />
regularly<br />
Stuck? Need help?<br />
quest-help@northwestern.edu<br />
Optimizati<strong>on</strong> level O(n)<br />
ref: Intel optimizati<strong>on</strong> manual<br />
• -O0: no optimizati<strong>on</strong>s, use for debugging.<br />
• -O1: optimize for speed, but disable optimizati<strong>on</strong>s which<br />
increase code size.<br />
o Algebraic identity removal<br />
o Comm<strong>on</strong> subexpressi<strong>on</strong> eliminati<strong>on</strong><br />
o C<strong>on</strong>stant folding<br />
o Redundant load and store eliminati<strong>on</strong><br />
• -O2: perform optimizati<strong>on</strong>s that the compilers c<strong>on</strong>siders the<br />
best combinati<strong>on</strong> for compilati<strong>on</strong> speed and runtime<br />
performance. example: software pipelining.<br />
o Inlining<br />
o C<strong>on</strong>stant propagati<strong>on</strong><br />
o Loop unrolling<br />
o Vectorizati<strong>on</strong><br />
o Strength reducti<strong>on</strong><br />
o Dead code eliminati<strong>on</strong><br />
o Global register allocati<strong>on</strong>