Restore lit feature object-emission. Omit DebugInfo/Generic on XCore.

D73568 removed the lit feature object-emission, because it was introduced for a
target which did not support the integrated assembler, and that target no longer
required the feature. XCore still does not support the integrated assembler,
so a build with XCore as the default target fails tests requiring
object-emission. This issue was not publicly visible because there was not a
buildbot for XCore as the default target. We fixed the failures downstream. We
now have builder clang-xcore-ubuntu-20-x64 on the staging buildmaster, which
shows the failures. We would like to make upstream build green.

Omit DebugInfo/Generic on XCore to avoid annotating 70 separate files.

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

GitOrigin-RevId: 23f8993f32d7aaf3e5cf0cbafd087a46acb0a523
diff --git a/test/CodeGen/Generic/dwarf-md5.ll b/test/CodeGen/Generic/dwarf-md5.ll
index 07586ce..2fc25f3 100644
--- a/test/CodeGen/Generic/dwarf-md5.ll
+++ b/test/CodeGen/Generic/dwarf-md5.ll
@@ -1,6 +1,7 @@
 ; MD5 checksums provided by IR should be passed through to asm.
 ; They'll be emitted to an object file only for DWARF 5 or later.
 
+; REQUIRES: object-emission
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
 ; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-5
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=obj -o %t4.o %s
diff --git a/test/CodeGen/Generic/dwarf-source.ll b/test/CodeGen/Generic/dwarf-source.ll
index 74b9fb8..4144111 100644
--- a/test/CodeGen/Generic/dwarf-source.ll
+++ b/test/CodeGen/Generic/dwarf-source.ll
@@ -1,6 +1,7 @@
 ; Source text provided by IR should be passed through to asm.
 ; It is emitted to an object file only for DWARF 5 or later.
 
+; REQUIRES: object-emission
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-4
 ; RUN: %llc_dwarf -dwarf-version 5 -filetype=asm -o - %s | FileCheck %s --check-prefix=ASM-5
 ; RUN: %llc_dwarf -dwarf-version 4 -filetype=obj -o %t4.o %s
diff --git a/test/DebugInfo/Generic/lit.local.cfg b/test/DebugInfo/Generic/lit.local.cfg
index 1eae465..156d7d1 100644
--- a/test/DebugInfo/Generic/lit.local.cfg
+++ b/test/DebugInfo/Generic/lit.local.cfg
@@ -1,2 +1,4 @@
 if not config.target_triple:
     config.unsupported = True
+elif 'xcore' in config.target_triple:
+    config.unsupported = True
diff --git a/test/DebugInfo/cross-cu-scope.ll b/test/DebugInfo/cross-cu-scope.ll
index 7f66334..9c10e03 100644
--- a/test/DebugInfo/cross-cu-scope.ll
+++ b/test/DebugInfo/cross-cu-scope.ll
@@ -1,6 +1,6 @@
 ; RUN: %llc_dwarf %s -filetype=obj -o %t
 ; RUN: llvm-dwarfdump -debug-info %t | FileCheck %s
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 
 ; Reduced test case from PR35212. Two DISubprogram belong to a different CU but
 ; share a scope. Both are declarations and end up in the scope's CU. We want to
diff --git a/test/DebugInfo/debuglineinfo-path.ll b/test/DebugInfo/debuglineinfo-path.ll
index ea32aec..2872d03 100644
--- a/test/DebugInfo/debuglineinfo-path.ll
+++ b/test/DebugInfo/debuglineinfo-path.ll
@@ -3,7 +3,7 @@
 ; On powerpc llvm-nm describes win_func as a global variable, not a function. It breaks the test.
 ; It is not essential to DWARF path handling code we're testing here.
 ; UNSUPPORTED: powerpc
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 ; RUN: %llc_dwarf -O0 -filetype=obj -o %t < %s
 ; RUN: llvm-nm --radix=o %t | grep posix_absolute_func > %t.posix_absolute_func
 ; RUN: llvm-nm --radix=o %t | grep posix_relative_func > %t.posix_relative_func
diff --git a/test/DebugInfo/dwo.ll b/test/DebugInfo/dwo.ll
index 662fd2d..6f23963 100644
--- a/test/DebugInfo/dwo.ll
+++ b/test/DebugInfo/dwo.ll
@@ -1,6 +1,6 @@
 ; RUN: %llc_dwarf %s -filetype=obj -o %t
 ; RUN: llvm-dwarfdump -debug-info %t | FileCheck %s
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 ;
 ; CHECK: DW_TAG_compile_unit
 ; CHECK-NOT: dwo_id
diff --git a/test/DebugInfo/omit-empty.ll b/test/DebugInfo/omit-empty.ll
index 4824dc2..29c8555 100644
--- a/test/DebugInfo/omit-empty.ll
+++ b/test/DebugInfo/omit-empty.ll
@@ -1,5 +1,5 @@
 ; RUN: %llc_dwarf %s -filetype=obj -o - | llvm-objdump -h - | FileCheck %s
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 
 ; CHECK-NOT: .debug_
 
diff --git a/test/DebugInfo/skeletoncu.ll b/test/DebugInfo/skeletoncu.ll
index d018aba..c05b34d 100644
--- a/test/DebugInfo/skeletoncu.ll
+++ b/test/DebugInfo/skeletoncu.ll
@@ -3,7 +3,7 @@
 ; CHECK: DW_TAG_compile_unit
 ; CHECK: DW_AT_GNU_dwo_id {{.*}}abcd
 ; CHECK: DW_AT_GNU_dwo_name {{.*}}"my.dwo"
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
  
 !llvm.dbg.cu = !{!0}
 !llvm.module.flags = !{!3, !4}
diff --git a/test/Linker/subprogram-linkonce-weak.ll b/test/Linker/subprogram-linkonce-weak.ll
index 7d52e89..4bf69d7 100644
--- a/test/Linker/subprogram-linkonce-weak.ll
+++ b/test/Linker/subprogram-linkonce-weak.ll
@@ -86,6 +86,7 @@
 !5 = !DISubroutineType(types: !{})
 
 ; Crasher for llc.
+; REQUIRES: object-emission
 ; RUN: %llc_dwarf -filetype=obj -O0 %t1 -o %t1.o
 ; RUN: llvm-dwarfdump %t1.o --all | FileCheck %s -check-prefix=DWLW -check-prefix=DW
 ; RUN: %llc_dwarf -filetype=obj -O0 %t2 -o %t2.o
diff --git a/test/Linker/type-unique-odr-a.ll b/test/Linker/type-unique-odr-a.ll
index eef622f..5df2e4d 100644
--- a/test/Linker/type-unique-odr-a.ll
+++ b/test/Linker/type-unique-odr-a.ll
@@ -1,4 +1,4 @@
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 ;
 ; RUN: llvm-link %s %p/type-unique-odr-b.ll -S -o - \
 ; RUN:   | %llc_dwarf -dwarf-linkage-names=All -filetype=obj -O0 \
diff --git a/test/Linker/type-unique-simple-a.ll b/test/Linker/type-unique-simple-a.ll
index 61155c6..bff3325 100644
--- a/test/Linker/type-unique-simple-a.ll
+++ b/test/Linker/type-unique-simple-a.ll
@@ -1,4 +1,4 @@
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 
 ; RUN: llvm-link %s %p/type-unique-simple-b.ll -S -o %t
 ; RUN: cat %t | FileCheck %s -check-prefix=LINK
diff --git a/test/Linker/type-unique-simple2-a.ll b/test/Linker/type-unique-simple2-a.ll
index 15d7dec..9965547 100644
--- a/test/Linker/type-unique-simple2-a.ll
+++ b/test/Linker/type-unique-simple2-a.ll
@@ -1,4 +1,4 @@
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 ;
 ; RUN: llvm-link %s %p/type-unique-simple2-b.ll -S -o - | %llc_dwarf -filetype=obj -O0 | llvm-dwarfdump -v -debug-info - | FileCheck %s
 ;
diff --git a/test/Linker/type-unique-simple2.ll b/test/Linker/type-unique-simple2.ll
index 6c921626..8696ac4 100644
--- a/test/Linker/type-unique-simple2.ll
+++ b/test/Linker/type-unique-simple2.ll
@@ -1,4 +1,4 @@
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 
 ; RUN: llvm-link %S/Inputs/type-unique-simple2-a.ll %S/Inputs/type-unique-simple2-b.ll -S -o %t
 ; RUN: cat %t | FileCheck %S/Inputs/type-unique-simple2-a.ll -check-prefix=LINK
diff --git a/test/Linker/type-unique-type-array-a.ll b/test/Linker/type-unique-type-array-a.ll
index 81e5151..4f0cc44 100644
--- a/test/Linker/type-unique-type-array-a.ll
+++ b/test/Linker/type-unique-type-array-a.ll
@@ -1,4 +1,4 @@
-; REQUIRES: default_triple
+; REQUIRES: default_triple, object-emission
 ;
 ; RUN: llvm-link %s %p/type-unique-type-array-b.ll -S -o - | %llc_dwarf -filetype=obj -O0 | llvm-dwarfdump -v -debug-info - | FileCheck %s
 ;
diff --git a/test/lit.cfg.py b/test/lit.cfg.py
index 32793d3..db94537 100644
--- a/test/lit.cfg.py
+++ b/test/lit.cfg.py
@@ -269,6 +269,10 @@
 if config.libcxx_used:
     config.available_features.add('libcxx-used')
 
+# Direct object generation
+if not 'xcore' in config.target_triple:
+    config.available_features.add('object-emission')
+
 # LLVM can be configured with an empty default triple
 # Some tests are "generic" and require a valid default triple
 if config.target_triple: