[LLVMdev] allocating registers less "sparingly"

Pertti Kellomäki pertti.kellomaki at tut.fi
Tue Nov 6 03:40:27 PST 2007

Evan Cheng wrote
 > What you want is to remove anti-dependency before post-allocation
 > scheduling. Alas, there is nothing in current LLVM implementation
 > that deals with this. There are quite a few papers on this topic,
 > e.g. http://citeseer.ist.psu.edu/calland97removal.html

Much of the work (like the one you cited) deals with arrays,
and the dependences are "real" in the sense that they exist
in the original program. Dealing with antidependences introduced
by register allocation is different in that the variables involved
are scalars. The dependences may also be an artefact of the choices
made by the register allocator, that is, the dependences may not
be present in the original program.

What this means is that the problem should hopefully be simpler
as only scalars are involved. But I guess it might also mean
reverse-engineering some information that was lost when the
register allocator decided to place distinct variables in the same
physical register.

More information about the llvm-dev mailing list