Name: Anonymous 2015-07-30 0:16
It is really hard to compile arithmetic to x86 assembly because:
* (A) add x,y requires at least one of x,y to be a register.
* (B) mul x is predefined to use eax and edx registers.
These make it hard when you're trying to do register allocation because
* (A) What if you spilled x and now need to spill y? You cannot spill both
* (B) This messes with register coloring, you want to precolor the graph but the polytime algorithms (for chordal graphs, which SSA has) break if you precolor.
I'm really stuck, any advice welcome
* (A) add x,y requires at least one of x,y to be a register.
* (B) mul x is predefined to use eax and edx registers.
These make it hard when you're trying to do register allocation because
* (A) What if you spilled x and now need to spill y? You cannot spill both
* (B) This messes with register coloring, you want to precolor the graph but the polytime algorithms (for chordal graphs, which SSA has) break if you precolor.
I'm really stuck, any advice welcome