If end of interval for overlap utility is a use which has tied-def we
should not split interval on this instruction due to in this case use
and def may have different registers and it breaks tied-def property.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Could you add dedicated test case?
It is unclear from the test change that this is covering what you've just added.
llvm/test/CodeGen/X86/statepoint-invoke-ra1.ll | ||
---|---|---|
2 ↗ | (On Diff #338458) | Please use an autogen test here to check the output and put a comment here explaining the two things this is testing. I think the comment will probably address Quentin's concerns as well, though he should confirm. |
llvm/lib/CodeGen/SplitKit.cpp | ||
---|---|---|
822 | Generally, we cannot set end of OpenIdx to End if it is a statepoint instruction and register represents tied-def on this instructions. Setting end we split tied-use and tied-def in different live intervals allowing to assign them to different registers breaking the tied-ness property. |
Comment Actions
LGTM w/comment addressed
llvm/test/CodeGen/X86/statepoint-invoke-ra.mir | ||
---|---|---|
2–3 | This comment is now stale, please update. |
Generally, we cannot set end of OpenIdx to End if it is a statepoint instruction and register represents tied-def on this instructions.
Setting end we split tied-use and tied-def in different live intervals allowing to assign them to different registers breaking the tied-ness property.