TODO in new NCG ~~~~~~~~~~~~~~~ - Are we being careful enough about narrowing those out-of-range CmmInts? - Register allocator: - fixup code - keep track of free stack slots Optimisations: - picking the assignment on entry to a block: better to defer this until we know all the assignments. In a loop, we should pick the assignment from the looping jump (fixpointing?), so that any fixup code ends up *outside* the loop. Otherwise, we should pick the assignment that results in the least fixup code. - splitting? -- ----------------------------------------------------------------------------- -- x86 ToDos - x86 genCCall needs to tack on the @size for stdcalls (might not be in the foreignlabel). - x86: should really clean up that IMUL64 stuff, and tell the code gen about Intel imul instructions. - x86: we're not careful enough about making sure that we only use byte-addressable registers in byte instructions. Should we do it this way, or stick to using 32-bit registers everywhere? - Use SSE for floating point, optionally. ------------------------------------------------------------------------------ -- Further optimisations: - We might be able to extend the scope of the inlining phase so it can skip over more statements that don't affect the value of the inlined expr.