Fernando Magno Quintao Pereira
2006-Jul-30 21:57 UTC
[LLVMdev] SSA virtuals -> Original variables
Dear LLVM'ers, in my register allocator, sometimes I have to spill virtuals that represent the same variable before SSA conversion. I would like to assign the same stack slot to these virtuals. Is there a way to recover this information from one of LLVM data structures? In other words, is it possible to discover which virtuals represent the same variable before SSA conversion by reading one of LLVM data structures? Thanks a lot, Fernando
On Sun, 2006-07-30 at 14:57 -0700, Fernando Magno Quintao Pereira wrote:> Dear LLVM'ers, > > in my register allocator, sometimes I have to spill virtuals that > represent the same variable before SSA conversion. I would like to > assign the same stack slot to these virtuals. Is there a way to > recover this information from one of LLVM data structures? In other > words, is it possible to discover which virtuals represent the same > variable before SSA conversion by reading one of LLVM data structures?That information is lost. What I think you really want is an analysis of the liveness of a stack slot so that you can find spills that don't overlap and compact those to a single stack slot. At least, this is something I would like to see to reduce stack usage. Trying to do this based on "original variable" is not going to work as optimizations may have done a lot of rearranging, including causing two values generated from the original variable to be live at once. Andrew