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
