Multiple improvements to CPS algorithm.
authorMichael D. Adams <t-madams@microsoft.com>
Mon, 2 Jul 2007 08:42:21 +0000 (08:42 +0000)
committerMichael D. Adams <t-madams@microsoft.com>
Mon, 2 Jul 2007 08:42:21 +0000 (08:42 +0000)
commita2d5d3c9677a740ace920a976d03dfbd82f7697b
tree577508b8b12a0ee43c48a19ec54e1b1ee28de166
parent603bf8c5496b9ac71552e7097eb88ad97db15e70
Multiple improvements to CPS algorithm.
These include:
 - Stack size detection now includes function arguments.
 - Stack size detection now avoids stack checks just because of
   the GC block.
 - A CmmCall followed by a CmmBranch will no longer generate an extra
   continuation consisting just of the brach.
 - Multiple CmmCall/CmmBranch pairs that all go to the same place
   will try to use the same continuation.  If they can't (because
   the return value signature is different), adaptor block are built.
 - Function entry statements are now in a separate block.
   (Fixed bug with branches to the entry block having unintended effects.)
 - Other changes that I can't recall right now.
compiler/cmm/Cmm.hs
compiler/cmm/CmmBrokenBlock.hs
compiler/cmm/CmmCPS.hs
compiler/cmm/CmmProcPoint.hs
compiler/codeGen/ClosureInfo.lhs