|  | 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 |