[all-commits] [llvm/llvm-project] 7561f9: [DebugInfo][CSInfo] Avoid crash when defining supe...
Jeremy Morse via All-commits
all-commits at lists.llvm.org
Tue Apr 25 06:18:45 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 7561f9cd5c841096c8c2f7b10b33d505c1a21b17
https://github.com/llvm/llvm-project/commit/7561f9cd5c841096c8c2f7b10b33d505c1a21b17
Author: Jeremy Morse <jeremy.morse at sony.com>
Date: 2023-04-25 (Tue, 25 Apr 2023)
Changed paths:
M llvm/lib/CodeGen/TargetInstrInfo.cpp
A llvm/test/DebugInfo/MIR/X86/dbgcall-site-partial-describe-subreg.mir
Log Message:
-----------
[DebugInfo][CSInfo] Avoid crash when defining super-regs
In rare situations involving AVX intrinsics, it seems LLVM can be coaxed
into generating copies to arguments that look like this:
$xmm0 = VMOVAPSrr $xmm1, implicit-def $ymm0
CALL64 @something ymm0
This particular form of copy implicitly zeros the upper lanes of ymm0,
hence there's an implicit-def for the register in the copy. The X86
implementation of describeLoadedValue doesn't attempt to describe this sort
of copy which causes the generic implementation in
TargetInstrInfo::describeLoadedValue to fire an assertion saying it
expected the target hook to handle it.
Play it safe in the generic implementation and return the "no location /
value" return value, rather than asserting.
Differential Revision: https://reviews.llvm.org/D148626
More information about the All-commits
mailing list