diff options
author | Jeremy Morse <jeremy.morse@sony.com> | 2021-07-19 14:57:34 +0100 |
---|---|---|
committer | Jeremy Morse <jeremy.morse@sony.com> | 2021-07-19 15:08:27 +0100 |
commit | f46321207f7d28f21d0dfb3635933d1bd84b5e05 (patch) | |
tree | 2f1a6c62eaca59f1bff642e73d4ad231ac647c59 /clang/test/OpenMP/parallel_codegen.cpp | |
parent | 73840f9f81413f21d3c8fab0ed85917aca2b5d34 (diff) | |
download | llvm-f46321207f7d28f21d0dfb3635933d1bd84b5e05.zip llvm-f46321207f7d28f21d0dfb3635933d1bd84b5e05.tar.gz llvm-f46321207f7d28f21d0dfb3635933d1bd84b5e05.tar.bz2 |
[InstrRef][X86] Drop debug instruction numbers from x87 instructions
Avoid a crash when using instruction referencing if x87 floating point
instructions are used. These instructions are significantly mutated when
they're rewritten from referring to registers, to referring to
floating-point-stack positions. As a result, their operands are re-ordered,
and (InstrRef) LiveDebugValues asserts when it sees a DBG_INSTR_REF
referring to a non-reg non-def register operand.
To fix this, drop the instruction numbers, and thus variable locations.
This patch adds a helper utility do do that.
Dropping the variable locations is sub-optimal, but applying DBG_VALUEs to
the $fp0 and similar registers is dropped on emission too. It seems we've
never done well at describing variables that live in x87 registers, at all.
Differential Revision: https://reviews.llvm.org/D105657
Diffstat (limited to 'clang/test/OpenMP/parallel_codegen.cpp')
0 files changed, 0 insertions, 0 deletions