Please sign in to comment.
Some fixes to handling of Void args (hackish).
We currently support arguments with "void" representation (such as `State# RealWorld`) by allocating a register for them, but never actually initialising that register. We have to treat void registers as live because otherwise they don't get a register assigned. (We could just assign an arbitrary register to any variable of type Void, but then we have to make sure that such a variable is never assigned to.) We don't treat such variables as live at runtime, though. I.e., GC masks don't treat void registers as live (except in function argument position.) Yeah, it's a big hack, really. But I don't have time to implement it properly, right now.
- Loading branch information...
Showing with 55 additions and 16 deletions.