Purely out of curiosity, would it be more efficient for GHC to use the new built-in exception handling instructions in LLVM?
http://blog.llvm.org/2011/11/llvm-30-exception-handling-redesign.html
Cheers,
Greg