aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2023-09-06 12:51:44 +0100
committerGitHub <noreply@github.com>2023-09-06 12:51:44 +0100
commit11171d81aeafb0c2818f288900423e366a2787fc (patch)
treecd4b97e3a21d3c9b63472706e5d75d36b69c037b /llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
parentd71adebb9fb875a5fd23acdbe0cf0799092fa4ca (diff)
downloadllvm-11171d81aeafb0c2818f288900423e366a2787fc.zip
llvm-11171d81aeafb0c2818f288900423e366a2787fc.tar.gz
llvm-11171d81aeafb0c2818f288900423e366a2787fc.tar.bz2
[AMDGPU] Cope with SelectionDAG::UpdateNodeOperands returning a different SDNode (#65340)
SITargetLowering::adjustWritemask calls SelectionDAG::UpdateNodeOperands to update an EXTRACT_SUBREG node in-place to refer to a new IMAGE_LOAD instruction, before we delete the old IMAGE_LOAD instruction. But in UpdateNodeOperands can do CSE on the fly and return a different EXTRACT_SUBREG node, so the original EXTRACT_SUBREG node would still exist and would refer to the old deleted IMAGE_LOAD instruction. This caused errors like: t31: v3i32,ch = <<Deleted Node!>> # D:1 This target-independent node should have been selected! UNREACHABLE executed at lib/CodeGen/SelectionDAG/InstrEmitter.cpp:1209! Fix it by detecting the CSE case and replacing all uses of the original EXTRACT_SUBREG node with the CSE'd one.
Diffstat (limited to 'llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp')
0 files changed, 0 insertions, 0 deletions