[PATCH] D119973: RegAllocGreedy: Fix last chance recolor assert in impossible case
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Feb 21 11:25:16 PST 2022
arsenm added a comment.
In D119973#3335832 <https://reviews.llvm.org/D119973#3335832>, @arsenm wrote:
> In D119973#3335710 <https://reviews.llvm.org/D119973#3335710>, @arsenm wrote:
>
>> In D119973#3335190 <https://reviews.llvm.org/D119973#3335190>, @uabelho wrote:
>>
>>> In a failing example we have a bundle like this with heavy register use:
>>>
>>> BUNDLE [...] {
>>> inst1 %234:Aquad
>>> inst1 %235:Aquad
>>> undef %235.sub0:Aquad = inst2 %211:A, %237.sub0:Aquad
>>> undef %235.sub1:Aquad = inst2 %226:A, %237.sub1:Aquad
>>> undef %235.sub2:Aquad = inst2 %229:A, %237.sub0:Aquad
>>> undef %235.sub3:Aquad = inst2 %232:A, %237.sub1:Aquad
>>> }
>>
>> Can you fill out more context with the surrounding instructions + ranges? Theoretically I can reconstruct the same scenario using -stress-regalloc
>
> So far by guessing I've only seen cases that fail to compile either way. However I'm guessing what we need is the assigned register is a strict superset of the interfering register
Does it work if you change regsOverlap to isSuperRegisterEq?
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D119973/new/
https://reviews.llvm.org/D119973
More information about the llvm-commits
mailing list