overlaps generation, RA crasch


Recently on trunk, the ovlaps list for a register got a dual entry on my target, which caused the RA to crash.



Subreg b


Subreg b

I have a register with two subregs that have subreg b in common. This causes the SuperReg to appear twice in the ovelaps list for Subreg b.

As this causes a register allocator to crasch (it evicts a register, and then inremenets the *AliasI, but the data structure is then not ready to be re-used, so a dual entry is not expected here),

I suggest that TableGen makes the overlaps list a set (each register present only once), as I find at least my model very reasonable, and it has worked before. An alternative might be to change the algorithm in TableGen so that this will not occur…


This should be fixed in r156629.


Thanks, this fixed our problem!