1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/test/DebugInfo/COFF
OCHyams 9d1808f4ad [DebugInfo] Drop location ranges for variables which exist entirely outside the variable's scope
Summary:
This patch reduces file size in debug builds by dropping variable locations a
debugger user will not see.

After building the debug entity history map we loop through it. For each
variable we look at each entry. If the entry opens a location range which does
not intersect any of the variable's scope's ranges then we mark it for removal.
After visiting the entries for each variable we also mark any clobbering
entries which will no longer be referenced for removal, and then finally erase
the marked entries. This all requires the ability to query the order of
instructions, so before this runs we number them.

Tests:
Added llvm/test/DebugInfo/X86/trim-var-locs.mir

Modified llvm/test/DebugInfo/COFF/register-variables.ll
  Branch folding merges the tails of if.then and if.else into if.else. Each
  blocks' debug-locations point to different scopes so when they're merged we
  can't use either. Because of this the variable 'c' ends up with a location
  range which doesn't cover any instructions in its scope; with the patch
  applied the location range is dropped and its flag changes to IsOptimizedOut.

Modified llvm/test/DebugInfo/X86/live-debug-variables.ll
Modified llvm/test/DebugInfo/ARM/PR26163.ll
  In both tests an out of scope location is now removed. The remaining location
  covers the entire scope of the variable allowing us to emit it as a single
  location.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D82129
2020-07-22 12:45:21 +01:00
..
AArch64 [AArch64][WinCFI] Do not pair callee-save instructions in LoadStoreOptimizer 2019-08-07 12:41:38 +00:00
anonymous-struct.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
array-odr-violation.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
asan-module-ctor.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
asan-module-without-functions.ll [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
asm.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
big-type.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
bitfields.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
build-info.ll Revert "Re-land [CodeView] Add full repro to LF_BUILDINFO record" 2020-07-10 19:46:16 -04:00
class-options-common.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
comdat.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
const-unnamed-member.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08: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 [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
enum.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
fp-stack.ll Changing representation of .cv_def_range directives in Codeview debug info assembly format for better readability 2019-08-05 14:16:58 +00:00
fpo-argsize.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
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 Migrate function attribute "no-frame-pointer-elim-non-leaf" to "frame-pointer"="non-leaf" as cleanups after D56351 2019-12-24 16:05:15 -08:00
fpo-realign-alloca.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
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 [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
fpo-stack-protect.ll [X86] Change the scheduler model for 'pentium4' to SandyBridgeModel. 2020-07-16 22:04:29 -07:00
frameproc-flags.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
function-options.ll [DebugInfo] Fix for adding "returns cxx udt" option to functions in CodeView. 2020-03-03 14:00:08 -08:00
global_visibility.ll Re-land [Debug][CodeView] Emit fully qualified names for globals 2020-05-18 17:31:00 -07: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-land [CodeView] Add full repro to LF_BUILDINFO record" 2020-07-10 19:46:16 -04: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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
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 Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
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 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
lambda.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
lexicalblock.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
line-zero.ll [codeview] Try to avoid emitting .cv_loc with line zero 2019-10-10 01:06:01 +00:00
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
local-variable-gap.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
local-variables.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
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 Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
parameter-order.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
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 Removing block comments from CodeView records in assembly files & related code cleanup 2019-08-25 01:09:11 +00:00
purge-typedef-udts.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
scopes.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
simple.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
static-methods.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
swift.ll [llvm-readobj] Update tests because of changes in llvm-readobj behavior 2020-07-20 10:39:04 +01:00
synthetic.ll Removing block comments from CodeView records in assembly files & related code cleanup 2019-08-25 01:09:11 +00:00
tail-call-without-lexical-scopes.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
thunk.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
type-quals.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
typedef.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
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 the tuning settings for pentium4 to be more modern since its the default 32-bit cpu in clang 2020-07-16 12:51:25 -07:00
types-basic.ll Revert "Re-land [CodeView] Add full repro to LF_BUILDINFO record" 2020-07-10 19:46:16 -04:00
types-calling-conv.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-cvarargs.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-data-members.ll Revert "Re-land [CodeView] Add full repro to LF_BUILDINFO record" 2020-07-10 19:46:16 -04:00
types-empty-member-fn.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-method-ref-qualifiers.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-nested-class.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-non-virtual-methods.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-ptr-to-member.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-recursive-struct.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08: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 [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
types-this-not-ptr.ll [DebugInfo] Combine Trivial and NonTrivial flags 2019-04-11 20:25:10 +00:00
udts-complete.ll [DebugInfo] Combine Trivial and NonTrivial flags 2019-04-11 20:25:10 +00:00
udts-fixpoint.ll Re-land [Debug][CodeView] Emit fully qualified names for globals 2020-05-18 17:31:00 -07:00
udts.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
unnamed-nested.ll Reland "[codeview] Reference types in type parent scopes" 2020-04-16 12:08:52 -07:00
unnamed.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
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 Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
virtual-method-kinds.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
virtual-methods.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
vtable-optzn-array.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00