Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Things that are hard about compiling to x86

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

Name: Anonymous 2015-08-05 23:26

>>44
Once you set up a problem as a constraint satisfaction problem, you can try to solve it with brute force. If the constraints are not satisfiable, you can try solving it with looser constraints by allowing one or a few of the variables to spill. Doing it this way it's easy to express the weird register constraint with mul and div. Brute force might not be so bad since the number of registers is small.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List