llvm-project/llvm/test/DebugInfo/COFF
Martin Storsjö 36c64af9d7 [CodeGen] [WinException] Only produce handler data at the end of the function if needed
If we are going to write handler data (that is written as variable
length data following after the unwind info in .xdata), we need to
emit the handler data immediately, but for cases where no such
info is going to be written, skip emitting it right away. (Unwind
info for all remaining functions that hasn't gotten it emitted
directly is emitted at the end.)

This does slightly change the ordering of sections (triggering a
bunch of updates to DebugInfo/COFF tests), but the change should be
benign.

This also matches GCC's assembly output, which doesn't output
.seh_handlerdata unless it actually is needed.

For ARM64, the unwind info can be packed into the runtime function
entry itself (leaving no data in the .xdata section at all), but
that can only be done if there's no follow-on data in the .xdata
section. If emission of the unwind info is triggered via
EmitWinEHHandlerData (or the .seh_handlerdata directive), which
implicitly switches to the .xdata section, there's a chance of the
caller wanting to pass further data there, so the packed format
can't be used in that case.

Differential Revision: https://reviews.llvm.org/D87448
2020-09-21 23:42:59 +03:00
..
AArch64
anonymous-struct.ll
array-odr-violation.ll
asan-module-ctor.ll
asan-module-without-functions.ll
asm.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
big-type.ll
bitfields.ll
build-info.ll Revert "Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record" 2020-08-17 15:49:18 -04:00
class-options-common.ll
comdat.ll
const-unnamed-member.ll
cpp-mangling.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
defer-complete-type.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
dlang.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
enum-co.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
enum.ll
fp-stack.ll
fpo-argsize.ll
fpo-csrs.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
fpo-funclet.ll
fpo-realign-alloca.ll
fpo-realign-vframe.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
fpo-shrink-wrap.ll [X86] Change pentium4 tuning settings and scheduler model back to their values before D83913. 2020-08-26 15:38:12 -07:00
fpo-stack-protect.ll [X86] Change pentium4 tuning settings and scheduler model back to their values before D83913. 2020-08-26 15:38:12 -07:00
frameproc-flags.ll
function-options.ll [DebugInfo] Fix for adding "returns cxx udt" option to functions in CodeView. 2020-03-03 14:00:08 -08:00
global-constants.ll Re-land [Debug][CodeView] Emit fully qualified names for globals 2020-05-18 17:31:00 -07:00
global-dllimport.ll
global-type-hashes.ll Revert "Re-Re-land: [CodeView] Add full repro to LF_BUILDINFO record" 2020-08-17 15:49:18 -04:00
global_visibility.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
globals-discarded.ll
globals.ll Re-land [Debug][CodeView] Emit fully qualified names for globals 2020-05-18 17:31:00 -07:00
inheritance.ll
inlining-files.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
inlining-header.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
inlining-levels.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
inlining-padding.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
inlining-same-name.ll
inlining.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
int8-char-type.ll
lambda.ll
lexicalblock.ll
line-zero.ll
lines-bb-start.ll
lines-difile.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
lit.local.cfg
local-constant.ll
local-variable-gap.ll
local-variables.ll
long-name.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
long-type-name.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
multifile.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
multifunction.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
nested-types.ll
no-cus.ll [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
nrvo.ll
parameter-order.ll
parent-type-scopes.ll Reland "[codeview] Reference types in type parent scopes" 2020-04-16 12:08:52 -07:00
pieces.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
pr28747.ll
pr37492.ll
purge-typedef-udts.ll
register-variables.ll [DebugInfo] Drop location ranges for variables which exist entirely outside the variable's scope 2020-07-22 12:45:21 +01:00
retained-types.ll
scopes.ll
simple.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
static-methods.ll
swift.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
synthetic.ll
tail-call-without-lexical-scopes.ll
thunk.ll
type-quals.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
typedef.ll
types-array-advanced.ll Revert "[SafeStack][DebugInfo] Insert DW_OP_deref in correct location" 2020-02-06 14:41:39 +00:00
types-array-unsized.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
types-array.ll [X86] Change pentium4 tuning settings and scheduler model back to their values before D83913. 2020-08-26 15:38:12 -07:00
types-basic.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
types-calling-conv.ll
types-cvarargs.ll
types-data-members.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
types-empty-member-fn.ll
types-method-ref-qualifiers.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
types-nested-class.ll
types-non-virtual-methods.ll
types-ptr-to-member.ll
types-recursive-struct.ll [CodeGen] [WinException] Only produce handler data at the end of the function if needed 2020-09-21 23:42:59 +03:00
types-recursive-unnamed.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
types-std-nullptr-t.ll
types-this-not-ptr.ll
udts-complete.ll
udts-fixpoint.ll Re-land [Debug][CodeView] Emit fully qualified names for globals 2020-05-18 17:31:00 -07:00
udts.ll
unnamed-nested.ll Reland "[codeview] Reference types in type parent scopes" 2020-04-16 12:08:52 -07:00
unnamed.ll
vframe-csr.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
vframe-fpo.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
vftables.ll
virtual-method-kinds.ll
virtual-methods.ll
vtable-optzn-array.ll