<ul>
<li>The code executed when a closure is entered is moved adjacent to
that closure's infotable. Moreover, the order of the info table
- entries is reversed.
+ entries is reversed. Also, SRT pointers are removed from closures that
+ don't need them (non-FUN, RET and THUNK ones).
<li>Function prologue and epilogue code is removed. (GHC generated code
manages its own stack and uses the system stack only for return
addresses and during calls to C code.)
instructions that are to be removed or altered is based on a large
number of Perl regular expressions sprinkled over the whole code. These
expressions are rather fragile as they heavily rely on the structure of
- the generated code - in fact, they even rely on the right amount of wide
- space and thus on the formatting of the assembly.
+ the generated code - in fact, they even rely on the right amount of
+ white space and thus on the formatting of the assembly.
<p>
Afterwards, the chunks are reordered, some of them purged, and some
stripped of some useless instructions. Moreover, some instructions are
<p><small>
<!-- hhmts start -->
-Last modified: Wed Aug 8 19:27:22 EST 2001
+Last modified: Sun Feb 17 17:55:47 EST 2002
<!-- hhmts end -->
</small>
</body>