[llvm] e05c103 - [DebugInfo] Re-engineer a test to be stricter, add XFails

Jeremy Morse via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 8 02:12:57 PST 2021


Author: Jeremy Morse
Date: 2021-02-08T10:12:33Z
New Revision: e05c10380ce7c18d1a232dcc5baa7c10d8bd2bf6

URL: https://github.com/llvm/llvm-project/commit/e05c10380ce7c18d1a232dcc5baa7c10d8bd2bf6
DIFF: https://github.com/llvm/llvm-project/commit/e05c10380ce7c18d1a232dcc5baa7c10d8bd2bf6.diff

LOG: [DebugInfo] Re-engineer a test to be stricter, add XFails

In the LLVM-IR for this test, the inlined argument "b" in the "a" function
is optimized out on certain architectures, not on others. This hasn't been
reported as a test failure since 93faeecd8fa and ff2073a51 because we would
create a variable that looks like this:

  DW_TAG_formal_parameter
    DW_AT_abstract_origin

With no further information (and no location). With D95617 however, we
stop emitting such variables.

Prior to landing D95617: make this test stricter by checking that the
variable mentioned above has a location. We have to accept that on certain
architectures this goes missing, so add those to the XFail list.

I've run a few experiments, and right now it looks likely only powerpc64
still drops the variable location.

Added: 
    

Modified: 
    llvm/test/DebugInfo/Generic/missing-abstract-variable.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll
index 0cdfe0b7728d..a7742aef1f49 100644
--- a/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll
+++ b/llvm/test/DebugInfo/Generic/missing-abstract-variable.ll
@@ -1,5 +1,10 @@
 ; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump -v -debug-info - | FileCheck %s
 
+; The formal parameter 'b' for Function 'x' when inlined within 'a' is lost on
+; powerpc64 (and on x86_64 at at least -O2). Presumably this is a SelectionDAG
+; issue.
+; XFAIL: powerpc64
+
 ; Build from the following source with clang -O2.
 
 ; The important details are that 'x's abstract definition is first built during
@@ -78,6 +83,7 @@
 ; fastisel succeeds).
 ; CHECK:     DW_TAG_formal_parameter
 ; CHECK-NOT: DW_TAG
+; CHECK:       DW_AT_location
 ; CHECK:       DW_AT_abstract_origin {{.*}} "b"
 
 ; CHECK-NOT: {{DW_TAG|NULL}}


        


More information about the llvm-commits mailing list