[LLVMdev] History of register allocator and more

Fernando Magno Quintao Pereira fernando at CS.UCLA.EDU
Sat Jul 7 22:52:41 PDT 2007


Guys, I have two questions. The first is mostly to Alkis, Evan and Chris. 
I am writing a talk about register allocators, and I wish I could know a 
little of the history of LLVM's RA. If you guys are fine with that, I will 
add it to the talk. Basically, I wish I could have information like when 
was it made, how long did it take to complete the first release, how much 
it has been changed since the first release, how many people worked in the 
code, did it have anything that was innovative for the time of release, 
etc.

Second question: I am trying to implement swaps of floating point 
registers, but I do not know how to do it. I am basically trying something 
like:

     // r1 and r2 are unsigned of either class X86::FR32RegClass
     // or X86::FR64RegClass
     unsigned Opc = X86::FXCH;
     BuildMI(mbb, mi, Opc, 1).addReg(r1);
     BuildMI(mbb, mi, Opc, 1).addReg(r2);
     BuildMI(mbb, mi, Opc, 1).addReg(r1);

This produces code like: "fxch %xmm0", that gcc does not compile. Could 
some generous soul shed some light on my misery?

best,

Fernando



More information about the llvm-dev mailing list