cvs commit: fptools/ghc/compiler/codeGen CgCase.lhs
simonmar at glass.cse.ogi.edu
Mon Aug 9 09:19:34 EDT 2004
simonmar 2004/08/09 06:19:33 PDT
Allow case-of-unsafe-ccall to compile to straight-line code, like it
used to. This has already been fixed on the backend-hacking-branch,
but I'm doing it here so that it can be merged into the STABLE branch,
where it will help to work around a bug.
The bug is in CgExpr.lhs:primRetUnboxedTuple, which picks temporaries
to assign the result of a ccall to. The Cg monad doesn't have a uniq
supply (in the HEAD), so we always pick the same temporaries. This
leads to clashes in complex function with multiple ccalls. Again,
this is already fixed in the backend-hacking-branch. I don't see an
easy fix for this bug.
The compilation of case-of-unsafe-ccall doesn't suffer from this
problem, and it will help work around some cases of the bug, so I'm
going to merge this onto the STABLE branch after some testing.
Revision Changes Path
1.67 +36 -24 fptools/ghc/compiler/codeGen/CgCase.lhs
More information about the Cvs-ghc