... | ... | @@ -20,6 +20,8 @@ We now support [TNTC](commentary/compiler/backends/llvm/issues#) using an approa |
|
|
|
|
|
### LLVM Alias Analysis Pass
|
|
|
|
|
|
**Update: This has been implemented, needs more work though**
|
|
|
|
|
|
|
|
|
LLVM doesn't seem to do a very good job of figuring out what can alias what in the code generated by GHC. We should write our own alias analysis pass to fix this.
|
|
|
|
... | ... | @@ -68,6 +70,8 @@ It would be nice to get rid of proc point splitting. This is one of the goals fo |
|
|
|
|
|
### Don't Pass Around Dead STG Registers
|
|
|
|
|
|
**Update: This has been implemented**
|
|
|
|
|
|
|
|
|
At the moment in the LLVM backend we always pass around the pinned STG registers as arguments for every Cmm function. A huge amount of the time though we aren't storing anything in the STG registers, they are dead really. If we can treat the correctly as dead then LLVM will have more free registers and the allocator should do a better job. We need to change the STG -\> Cmm code generator to attach register liveness information at function exit points (e.g calls, jumps, returns).
|
|
|
|
... | ... | |