Fix a bug in stack layout with safe foreign calls (#8083)
[ghc.git] / compiler / nativeGen / NOTES
1 TODO in new NCG
2 ~~~~~~~~~~~~~~~
3
4 - Are we being careful enough about narrowing those out-of-range CmmInts?
5
6 - Register allocator:
7     - fixup code
8     - keep track of free stack slots
9
10     Optimisations:
11
12     - picking the assignment on entry to a block: better to defer this
13       until we know all the assignments.  In a loop, we should pick
14       the assignment from the looping jump (fixpointing?), so that any
15       fixup code ends up *outside* the loop.  Otherwise, we should
16       pick the assignment that results in the least fixup code.
17
18 - splitting?
19
20 -- -----------------------------------------------------------------------------
21 -- x86 ToDos
22
23 - x86 genCCall needs to tack on the @size for stdcalls (might not be in the
24   foreignlabel).
25
26 - x86: should really clean up that IMUL64 stuff, and tell the code gen about
27   Intel imul instructions.
28
29 - x86: we're not careful enough about making sure that we only use
30   byte-addressable registers in byte instructions.  Should we do it this
31   way, or stick to using 32-bit registers everywhere?
32
33 - Use SSE for floating point, optionally.
34
35 ------------------------------------------------------------------------------
36 -- Further optimisations:
37
38 - We might be able to extend the scope of the inlining phase so it can
39   skip over more statements that don't affect the value of the inlined
40   expr.
41