blob: f4e438258c1c4d90c6106ae97070fcd6d6787a57 [file] [log] [blame]
This is a list of possible improvements to the SSA pass of the compiler.
Optimizations (better compiled code)
------------------------------------
- Reduce register pressure in scheduler
- Make dead store pass inter-block
- If there are a lot of MOVQ $0, ..., then load
0 into a register and use the register as the source instead.
- Allow large structs to be SSAable (issue 24416)
- Allow arrays of length >1 to be SSAable
- If strings are being passed around without being interpreted (ptr
and len fields being accessed) pass them in xmm registers?
Same for interfaces?
- any pointer generated by unsafe arithmetic must be non-nil?
(Of course that may not be true in general, but it is for all uses
in the runtime, and we can play games with unsafe.)
Optimizations (better compiler)
-------------------------------
- Handle signed division overflow and sign extension earlier
Regalloc
--------
- Make liveness analysis non-quadratic