Register Allocation

I have noticed quite a few changes regarding register allocation. I am
wondering will there be support for radically different data
structures other than the LiveIntervals, Virtual Register Map, etc? I
have build a custom data structure which has it's own intermediate
representation like live-intervals, but much more conducive for my
allocation algorithm. I do not know if LiveIntervals can accurately
describe my data structure, and it would be a huge hack to enforce the
live interval framework.

- Thanks,
Jeff Kunkel

I have noticed quite a few changes regarding register allocation. I am
wondering will there be support for radically different data
structures other than the LiveIntervals, Virtual Register Map, etc?

Not any more than we already have.

If anything, these data structures are going to be simplified. For instance, VirtRegMap's support for deferred insertion of spill code might go away in the future. It is not really needed any longer - InlineSpiller simply inserts spill code directly.

I
have build a custom data structure which has it's own intermediate
representation like live-intervals, but much more conducive for my
allocation algorithm. I do not know if LiveIntervals can accurately
describe my data structure, and it would be a huge hack to enforce the
live interval framework.

So don't. RegAllocFast isn't using LiveIntervals either. It is entirely optional.

/jakob

I have noticed quite a few changes regarding register allocation. I am
wondering will there be support for radically different data
structures other than the LiveIntervals, Virtual Register Map, etc?

Not any more than we already have.

If anything, these data structures are going to be simplified. For instance, VirtRegMap's support for deferred insertion of spill code might go away in the future. It is not really needed any longer - InlineSpiller simply inserts spill code directly.

*might* go away? :slight_smile:

Evan