1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/tools/dsymutil
Jonas Devlieghere ef964ac532 [dsymutil] Convert recursion in lookForDIEsToKeep into worklist.
The functions `lookForDIEsToKeep` and `keepDIEAndDependencies` can have
some very deep recursion. This tackles part of this problem by removing
the recursion from `lookForDIEsToKeep` by turning it into a worklist.

The difficulty in doing so is the computation of incompleteness, which
depends on the incompleteness of its children. To compute this, we
insert "continuation markers" into the worklist. This informs the work
loop to (re)compute the incompleteness property of the DIE associated
with it (i.e. the parent of the previously processed DIE).

This patch should generate byte-identical output. Unfortunately it also
has some impact of performance, regressing by about 4% when processing
clang on my machine.

Differential revision: https://reviews.llvm.org/D48899

llvm-svn: 338536
2018-08-01 13:24:39 +00:00
..
BinaryHolder.cpp [dsymutil] Rename conflicting declaration 2018-06-29 17:11:34 +00:00
BinaryHolder.h [dsymutil] Rename conflicting declaration 2018-06-29 17:11:34 +00:00
CFBundle.cpp
CFBundle.h
CMakeLists.txt [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
CompileUnit.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
CompileUnit.h [dsymutil] Emit label at the begin of a CU 2018-07-06 12:49:54 +00:00
DebugMap.cpp [dsymutil] Make the CachedBinaryHolder the default 2018-06-29 16:51:52 +00:00
DebugMap.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DeclContext.cpp [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
DeclContext.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00
dsymutil.cpp [dsymutil] Simplify temporary file handling. 2018-07-29 14:56:15 +00:00
dsymutil.h [dsymutil] Make the CachedBinaryHolder the default 2018-06-29 16:51:52 +00:00
DwarfLinker.cpp [dsymutil] Convert recursion in lookForDIEsToKeep into worklist. 2018-08-01 13:24:39 +00:00
DwarfLinker.h [dsymutil] Convert recursion in lookForDIEsToKeep into worklist. 2018-08-01 13:24:39 +00:00
DwarfStreamer.cpp [dsymutil] Add support for generating DWARF5 accelerator tables. 2018-07-25 23:01:38 +00:00
DwarfStreamer.h [dsymutil] Add support for generating DWARF5 accelerator tables. 2018-07-25 23:01:38 +00:00
LinkUtils.h [dsymutil] Add support for generating DWARF5 accelerator tables. 2018-07-25 23:01:38 +00:00
LLVMBuild.txt
MachODebugMapParser.cpp [dsymutil] Make the CachedBinaryHolder the default 2018-06-29 16:51:52 +00:00
MachOUtils.cpp [dsymutil] Simplify temporary file handling. 2018-07-29 14:56:15 +00:00
MachOUtils.h [dsymutil] Simplify temporary file handling. 2018-07-29 14:56:15 +00:00
NonRelocatableStringpool.cpp
NonRelocatableStringpool.h [dsymutil] Move abstractions into separate files (NFC) 2018-06-27 16:13:40 +00:00