[all-commits] [llvm/llvm-project] 992e21: [DebugInfo][InstrRef] Fix over-droppage of locatio...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Tue Aug 24 02:24:38 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 992e21eeeef101b4fd68053d5f6a19d21b655288
      https://github.com/llvm/llvm-project/commit/992e21eeeef101b4fd68053d5f6a19d21b655288
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2021-08-24 (Tue, 24 Aug 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86FloatingPoint.cpp
    M llvm/test/DebugInfo/MIR/InstrRef/x86-fp-stackifier-drop-locations.mir

  Log Message:
  -----------
  [DebugInfo][InstrRef] Fix over-droppage of locations in X86FloatingPoint

Over in D105657, we started dropping instruction numbers (that become
variable locations) from call instructions, as we can't correctly represent
the x87 FP stack. Unfortunately, it turns out that the "special FP
instructions" that this pass transforms includes "every call instruction"
[0]. Thus, we've ended up dropping all return values from all calls. Ouch.

This patch adds a filter: only drop instruction numbers from calls if they
return something on the FP stack. Seeing how LLVM only allows a single
return value, this should drop instruction numbers on anything that returns
a float, and nothing else.

Rather than writing a new test, I've modified the original one to have a
positive and negative case: drop instruction number on a call with an
FP-stack modification, keep it on a plain call.

Differential Revision: https://reviews.llvm.org/D108580




More information about the All-commits mailing list