[PATCH] D29105: Fix regalloc assignment of overlapping registers

Alexander via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 25 07:15:51 PST 2017


alex-t added inline comments.


================
Comment at: lib/CodeGen/SplitKit.cpp:535
+          if (TRI.getSubRegIndexLaneMask(I) == LM) {
+            SubIdx = I;
+            break;
----------------
alex-t wrote:
> What if in parent LiveInterval there are more then one subrange (i.e. several not adjacent lanes are in use) ?  Let's say we copy sub0 and sub2.
> LaneMask will be 1010 and the condition "TRI.getSubRegIndexLaneMask(I) == LM" will never met.
> Given the assert below this, why this never expected to happen?
Oops... forget it )  I missed that getSubRegIndexLaneMask and setSubreg treat the parameter as a plane integer...


Repository:
  rL LLVM

https://reviews.llvm.org/D29105





More information about the llvm-commits mailing list