avr-llvm / llvm

[MERGED UPSTREAM] AVR backend for the LLVM compiler library
220 stars 21 forks source link

WIP: [RegAllocGreedy] Attempt to split unspillable live intervals #224

Closed dylanmckay closed 7 years ago

dylanmckay commented 7 years ago

Previously, when allocating unspillable live ranges, we would never attempt to split. We would always bail out and try last ditch graph recoloring.

This patch changes this by attempting to split all live intervals before performing recoloring.

This fixes issue #1

dylanmckay commented 7 years ago

I want to have this upstreamed and go through the normal LLVM review process. This PR is mostly for visibility.

dylanmckay commented 7 years ago

This passes all tests in the LLVM suite. I will upstream now.

dylanmckay commented 7 years ago

I think that this is okay to merge. It causes no regressions in our code or LLVMs test suite. Even if it didn't get upstreamed, it's still a better fix than the one we currently have.