If a tied source operand was undef, it would be replaced but not
update the other tied operand, which would end up using different
virtual registers.
Details
Details
- Reviewers
MatzeB
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Good catch, LGTM.
| lib/CodeGen/RenameIndependentSubregs.cpp | ||
|---|---|---|
| 246–247 | Could you add a comment along the lines of ` | |
| test/CodeGen/AMDGPU/rename-independent-subregs-invalid-mac-operands.mir | ||
| 2–23 | Do you actually need the IR, see also: http://llvm.org/docs/MIRLangRef.html#simplifying-mir-files | |
| test/CodeGen/AMDGPU/rename-independent-subregs-invalid-mac-operands.mir | ||
|---|---|---|
| 2–23 | It complains if I try to remove it entirely. It seems to want the blocks at least | |
| test/CodeGen/AMDGPU/rename-independent-subregs-invalid-mac-operands.mir | ||
|---|---|---|
| 2–23 | You have to use the bb.0 instead of bb.0.bb etc. (the .bb at the end is a reference to the IR block). | |
Could you add a comment along the lines of `
/// Undef use operands are not tracked in the equivalence class but need to be update if they are tied.