Dec 052017
Sally Tpu Peephole Optimizer v1.10. This program lets you produce faster programs with Borland Pascal version 7.0 by optimizing the intermidiate code produced by that compiler.
File SPO110.ZIP from The Programmer’s Corner in
Category Pascal Source Code
Sally Tpu Peephole Optimizer v1.10. This program lets you produce faster programs with Borland Pascal version 7.0 by optimizing the intermidiate code produced by that compiler.
File Name File Size Zip Size Zip Type
HISTORY.TXT 4703 1716 deflated
INT_0405.PAS 6179 1421 deflated
NEED_186.PAS 1142 406 deflated
NEED_286.PAS 1131 397 deflated
NEED_386.PAS 1131 397 deflated
RESULTS.TXT 1881 596 deflated
SPO.DOC 27729 9353 deflated
SPO.EXE 102496 43946 deflated
SPO386.EXE 115712 49437 deflated

Download File SPO110.ZIP Here

Contents of the HISTORY.TXT file

The history of Spo

Jan-Feb 1993 : Version 1,00
All the basic stuff, but crude interface.
Feb 5, 1993 : Wrote some documentation.
Version 1,00 released to Internet via Garbo.

Feb 18, 1993 : Version 1,01 introduced.
Added detection for units compiled by older versions
of TP. These caused a garbled error message. Also
added detection for files that are not units.
Added check for unit larger than 64K which is not handled
by Spo. These caused run time errors. I wasn't even
aware of the possibility. [I guess I have been pointing
out too many bugs in other products...]
Added setting of {$G+} flag when target>=186.
Reduced memory requirements slightly.
Updated the documentation with a list of errors and
warnings with their causes.
Added "/A" option to specify the assembler to use; useful
for Tasmx.Exe only.
Feb 23, 1993 : Added list of optimizations to the documentation.
Feb 25, 1993 : Fixed some bugs in the regular expression search engine.
These bugs should not have been noticed by users of Spo.
Added some string optimizations.
Command line parsing improved. Among other things, the
switch char (normally '/') returned by Dos is now
Feb 26, 1993 : Procedures and segments are now aligned according to
Mar 1, 1993 : Fixed bug in analysis; it didn't follow Loop instructions.
Changed processor directive from "P386N" to "P386" to
allow inlined protected instructions.
Fixed overflow bug that sometimes caused strange assembly
errors and even memory overwrites.
Mar 2, 1993 : Fixed bug that caused spilling of file handles as more and
more units were optimized.
Error message "The unit does not use itself!" changed to
warning. It seems as if a unit is reported as using
another if and if only some fixup depends on that unit.
Improved the capacity significantly by compacting the data
section by a factor of approximately 7.

Mar 6, 1993 : Version 1,10 introduced.
Mar 7, 1993 : Made changes to allow Spo itself to run in protected mode.
Mar 8, 1993 : Changed "Int_0405" to work in protected mode also.
Fixed a bug that caused incorrect code when emulated
8087-instructions used segment override.
Fixed a bug in the above mentioned compaction of the data
Mar 9, 1993 : Efficient Shr/Shl for longints on 86/186/286.
Improved ZUnion, ZDifference, ZIntersect, and ZEqual.
Improved 186->86 conversion.
Allowed "/T" on its own to specify the processor on which
Spo is running.
Mar 11, 1993 : Broke the 32 bit barrier for the assembly buffer (DPMI
version, 386+ only).
Put macros for Op32/Addr32/Pushd/Fnsetpm in the start of
all assembler files.
Wrote units Need_186, Need_286, and Need_386 to check for
processor at run time.
Mar 12, 1993 : Improved some for-loops guaranteed to execute either at
least once or never.
Mar 13, 1993 : Added clearing of {$G+} flag when target is 8086 and no
errors were detected.
Added "/Cx" option to specify target platform.
Implemented searching for units for dos protected mode or
Added the system tables for dos protected mode.
Had my first game of optimized TvChess. Lost.
Increased the starting size of the assembly buffer to 32K
for Spo386.
Mar 14, 1993 : Found very ugly bug in procedure alignment. Affected all
Cpu targets except 486. (I'm glad that didn't make it
to the internet!)
Corrected the FLn replacement under "/NH".
Mar 15, 1993 : Bug in "LongShl 8" found and corrected; misspelling.

 December 5, 2017  Add comments

Leave a Reply