[PATCH] D35985: Skip live range segment verification for reserved physregs

Stefan Maksimovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 5 07:55:56 PST 2017


smaksimovic added a comment.

It seems that at some places mentioned above I have erroneously acquired for the register unit's live range. The method which I used was `getRegUnit()` which computes ranges if they are missing, which I have somehow overlooked.
Looking at `RegisterCoalescer::joinReservedPhysReg(CoalescerPair &CP)` in `RegisterCoalescer.cpp` there exists a statement

  if (RHS.overlaps(LIS->getRegUnit(*UI)))

Checking inside this specific call it can be seen that the live range for this register unit is computed, i.e. it didn't exist up to this point.
By using `LIS->getCachedRegUnit(*UI)` instead and conditionally calling `getRegUnit()` in the following if statement I was able to get the test to pass, and found that no live range information was present for the register unit in question this time.

Would this method be preferable to the one I suggested above?


https://reviews.llvm.org/D35985





More information about the llvm-commits mailing list