Live Range Splitting

I saw in one of Evan's recent commits the comment that live range splitting is
"coming soon."

Evan, can you describe a bit what you're planning? Is it going to be an
independent pass or integrated with the register allocator? What, if any,
publications are you basing it on?

Thanks.

                                               -Dave

I saw in one of Evan's recent commits the comment that live range splitting is
"coming soon."

Evan, can you describe a bit what you're planning? Is it going to be an
independent pass or integrated with the register allocator? What, if any,
publications are you basing it on?

I am taking baby steps. :slight_smile: The first step is to split a live intervals at basic block boundaries so it's being spilled. One of the common issue that we are seeing is multiple reloads of a spilled value when it is being used multiple times. This often happens even when it's clear scratch registers are available in the basic block.

It's based on crazy thoughts in my head, not any paper. :slight_smile:

Evan