aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorMomchil Velikov <momchil.velikov@arm.com>2023-11-11 19:43:14 +0000
committerGitHub <noreply@github.com>2023-11-11 19:43:14 +0000
commite8209b2486d8fa1a5314af0fe896b9628effa471 (patch)
treee27e516fd92a50619ed3ff1fd15db9a42bacaeeb /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent215bacb5dc6e7027402434a14e1153e687a4a1cf (diff)
downloadllvm-e8209b2486d8fa1a5314af0fe896b9628effa471.zip
llvm-e8209b2486d8fa1a5314af0fe896b9628effa471.tar.gz
llvm-e8209b2486d8fa1a5314af0fe896b9628effa471.tar.bz2
[MachineSink] Drop debug info for instructions deleted by sink-and-fold (#71443)
After performing sink-and-fold over a COPY, the original instruction is replaced with one that produces its output in the destination of the copy. Its value is still available (in a hard register), so if there are debug instructions which refer to the (now deleted) virtual register they could be updated to refer to the hard register, in principle. However, it's not clear how to do that, moreover in some cases the debug instructions may need to be replicated proportionally to the number of the COPY instructions replaced and in some extreme cases we can end up with quadratic increase in the number of debug instructions, e.g: int f(int); void g(int x) { int y = x + 1; int t0 = y; f(t0); int t1 = y; f(t1); }
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
0 files changed, 0 insertions, 0 deletions