summaryrefslogtreecommitdiffstats
path: root/src/cmd/compile/internal/ssa/TODO
blob: f4e438258c1c4d90c6106ae97070fcd6d6787a57 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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