12.06.2013 Views

Software Development on Quest

Software Development on Quest

Software Development on Quest

SHOW MORE
SHOW LESS

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>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!