- 09 Jul, 2010 1 commit
-
-
Simon Marlow authored
-
- 08 Jul, 2010 1 commit
-
-
Simon Marlow authored
As discussed on the libraries/haskell-cafe mailing lists http://www.haskell.org/pipermail/libraries/2010-April/013420.html This is a replacement for block/unblock in the asychronous exceptions API to fix a problem whereby a function could unblock asynchronous exceptions even if called within a blocked context. The new terminology is "mask" rather than "block" (to avoid confusion due to overloaded meanings of the latter). In GHC, we changed the names of some primops: blockAsyncExceptions# -> maskAsyncExceptions# unblockAsyncExceptions# -> unmaskAsyncExceptions# asyncExceptionsBlocked# -> getMaskingState# and added one new primop: maskUninterruptible# See the accompanying patch to libraries/base for the API changes.
-
- 16 Jun, 2010 1 commit
-
-
Simon Marlow authored
-
- 08 Jul, 2010 2 commits
-
-
Sergei Trofimovich authored
I tried to build ghc-6.12.3 and found out FIW part of code does not compile anymore. It uses absent functions under #ifdef. Instead of fixing it I just switched to libffi. Result built successfully and passed 'foreign import wrapper' test I wrote for trac ticket #3516. I didn't try to build -HEAD yet, but this patch only removes code, so it should not make -HEAD worse.
-
Ian Lynagh authored
-
- 07 Jul, 2010 3 commits
-
-
Ian Lynagh authored
-
dterei authored
-
Ian Lynagh authored
-
- 06 Jul, 2010 1 commit
-
-
Ian Lynagh authored
This also means that extsBitmap gets set, whereas is was just being set to 0 before.
-
- 07 Jul, 2010 2 commits
- 06 Jul, 2010 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 05 Jul, 2010 3 commits
-
-
dterei authored
This is already handled by the Cmm code generator so LLVM is simply duplicating work. LLVM also doesn't know which ones are actually live so saves them all which causes a fair performance overhead for C calls on x64. We stop llvm saving them across the call by storing undef to them just before the call.
-
dterei authored
-
dterei authored
Patch from Erik de Castro Lopo <erikd@mega-nerd.com>.
-
- 25 Jun, 2010 1 commit
-
-
amsay@amsay.net authored
'import' syntax is seperate from ':module' syntax
-
- 01 Jul, 2010 1 commit
-
-
Ian Lynagh authored
-
- 02 Jul, 2010 1 commit
-
-
dterei authored
-
- 01 Jul, 2010 1 commit
-
-
dterei authored
-
- 30 Jun, 2010 1 commit
-
-
dterei authored
LLVM supports creating pointers in two ways, firstly through pointer arithmetic (by casting between pointers and ints) and secondly using the getelementptr instruction. The second way is preferable as it gives LLVM more information to work with. This patch changes a lot of pointer related code from the first method to the getelementptr method.
-
- 25 Jun, 2010 1 commit
-
-
Simon Marlow authored
-
- 29 Jun, 2010 1 commit
-
-
benl@ouroborus.net authored
-
- 28 Jun, 2010 5 commits
-
-
dterei authored
Instead of calling the C library for these Cmm functions we use intrinsic functions provided by llvm. LLVM will then either create a compile time constant if possible, or use a cpu instruction or as a last resort call the C library.
-
dterei authored
-
dterei authored
-
dterei authored
-
dterei authored
At the moment this gives a very slight performance boost of around 1 - 2%. Future changes to the generated code though so that pointers are kept as pointers more often instead of being cast to integer types straight away should hopefully improve the benefit this brings.
-
- 25 Jun, 2010 2 commits
-
-
Ian Lynagh authored
-
dterei authored
-
- 24 Jun, 2010 7 commits
-
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
computeLiveness requires the SCCs of blocks to be in reverse dependent order, and if they're not it was silently giving bad liveness info, yielding a bad allocation. Now it complains, loudly.
-
- 23 Jun, 2010 3 commits
-
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-
benl@ouroborus.net authored
-