Content deleted Content added
m Minor fixes and MoS edits |
|||
Line 1:
[[Image:Binary optimizer.png|thumb|180px|A binary optimizer takes the existing output from a compiler and produces a more optimal execution file with the same functionality.]]
An '''object code optimizer''', sometimes also known as a '''post pass optimizer''' or, for small sections of code, [[peephole optimization|'''peephole optimizer''']], takes the output from a source language compile step -
==Examples==
* The "COBOL Optimizer" developed by [[Capex Corporation]] in the mid 1970's for [[COBOL]]. This type of optimizer depended, in this case, upon knowledge of 'weaknesses' in the standard IBM COBOL compiler, and actually replaced (or [[Patch (computing)|patch]]ed) sections of the object code with more efficient code. The replacement code might replace a linear [[Lookup table|table lookup]] with a [[binary search]] for example or sometimes simply replace a relatively 'slow' instruction with a known faster one that was otherwise functionally equivalent within its context. This technique is now known as "[[Strength reduction]]". For example on the [[IBM/360]] hardware the '''CLI''' instruction was, depending on the particular model, between twice and 5 times as fast as a '''CLC''' instruction for single byte comparisons.<ref>http://www.bitsavers.org/pdf/ibm/360/A22_6825-1_360instrTiming.pdf</ref><ref>http://portal.acm.org/citation.cfm?id=358732&dl=GUIDE&dl=ACM</ref>.
|