HomePhabricator

LiveIntervals: Split live intervals on multiple dead defs

Description

LiveIntervals: Split live intervals on multiple dead defs

If there are multiple dead defs of the same virtual register, these
are required to be split into multiple virtual registers with separate
live intervals to avoid a verifier error.

Details

Committed
arsenmSep 11 2019, 10:59 AM
Parents
rL371639: Consolidate swap, swap_ranges, and iter_swap in <type_traits>.
Branches
Unknown
Tags
Unknown

Event Timeline

Hi @arsenm ,

We've seen internal Hexagon test failures revealed by this patch, and here is the PR: https://bugs.llvm.org/show_bug.cgi?id=43302. Are you ok with temporarily rolling back this patch while we are investigating the issue?

Thanks!

Hi @arsenm ,

We've seen internal Hexagon test failures revealed by this patch, and here is the PR: https://bugs.llvm.org/show_bug.cgi?id=43302. Are you ok with temporarily rolling back this patch while we are investigating the issue?

Thanks!

That's fine, it's only one of a series of problems in the testcase I'm trying to fix

That's fine, it's only one of a series of problems in the testcase I'm trying to fix

Reverted at rL371802. Thanks!

That's fine, it's only one of a series of problems in the testcase I'm trying to fix

Reverted at rL371802. Thanks!

Any update on this?

timshen added a comment.EditedOct 2 2019, 1:40 PM

@pranavb is looking at this.

timshen added a subscriber: pranavb.Oct 2 2019, 1:40 PM

Update: This change is affecting the HexagonExpandCondsets pass. I hope to have more updates soon.

There is a bug in HexagonExpandCondsets being exposed by this (valid) change. We are working on a fix as we speak.

While this change is valid in terms of functionality, I think Krzysztof has a point here (http://lists.llvm.org/pipermail/llvm-dev/2019-October/135709.html). Simply computing the live interval for a virtual register should not be changing code. That concern should be handled separately.