[llvm] [AMDGPU] Prevent hang in SIFoldOperands (PR #82099)

Pierre van Houtryve via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 20 23:28:25 PST 2024


Pierre-vh wrote:

I think it goes like this:
- `defusechain_iterator` works on a given `MachineOperand *`
- We commute operands within an instruction so that pointer stays valid, but now points to a completely different operand
- `defusechain_iterator` keeps going on that operand (basically iterates a different range)
- We keep commuting further and going back and forth between those two ranges

That makes sense I think, and the better fix would be to stop commuting inside that loop, or commute in bulk after the loop.

https://github.com/llvm/llvm-project/pull/82099


More information about the llvm-commits mailing list