1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/include/llvm
David Blaikie d02fba9580 Prototype: Reduce llvm-profdata merge memory usage further
The InstrProfWriter already stores the name and hash of the record in
the nested maps it uses for lookup while merging - this data is
duplicated in the value within the maps.

Refactor the InstrProfRecord to use a nested struct for the counters
themselves so that InstrProfWriter can use this nested struct alone
without the name or hash duplicated there.

This work is incomplete, but enough to demonstrate the value (around a
50% decrease in memory usage for a large test case (10GB -> 5GB)).
Though most of that decrease is probably from removing the
SoftInstrProfError as well, but I haven't implemented a replacement for
it yet. (it needs to go with the counters, because the operations on the
counters - merging, etc, are where the failures are - unlike the
name/hash which are totally unused by those counter-related operations
and thus easy to split out)

Ongoing discussion about removing SoftInstrProfError as a field of the
InstrProfRecord is happening on the thread that added it - including
the possibility of moving back towards an earlier version of that
proposed patch that passed SoftInstrProfError through the various APIs,
rather than as a member of InstrProfRecord.

Reviewers: davidxl

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

llvm-svn: 307298
2017-07-06 19:00:12 +00:00
..
ADT [llvm] Separate out reverse iteration flag into its own header 2017-07-06 18:52:16 +00:00
Analysis [Dominators] Reapply r306892, r306893, r306893. 2017-07-01 00:23:01 +00:00
AsmParser
BinaryFormat Revert "Revert "Revert "Replace trivial use of external rc.exe by writing our own .res file.""" 2017-07-05 23:45:50 +00:00
Bitcode Object: Teach irsymtab::read() to try to use the irsymtab that we wrote to disk. 2017-06-27 23:50:24 +00:00
CodeGen [Constants] If we already have a ConstantInt*, prefer to use isZero/isOne/isMinusOne instead of isNullValue/isOneValue/isAllOnesValue inherited from Constant. NFCI 2017-07-06 18:39:47 +00:00
Config [CMake] Introduce LLVM_TARGET_TRIPLE_ENV as an option to override LLVM_DEFAULT_TARGET_TRIPLE at runtime. 2017-06-17 03:19:08 +00:00
DebugInfo [PDB] Fill in "Parent" and "End" fields of scope-like symbol records 2017-07-06 16:39:32 +00:00
Demangle
ExecutionEngine DebugInfo: Generalize LoadedObjectInfoHelper from RuntimeDyld 2017-07-05 15:23:56 +00:00
IR [Constants] If we already have a ConstantInt*, prefer to use isZero/isOne/isMinusOne instead of isNullValue/isOneValue/isAllOnesValue inherited from Constant. NFCI 2017-07-06 18:39:47 +00:00
IRReader
LineEditor
Linker
LTO Add a ThinLTO cache policy for controlling the maximum cache size in bytes. 2017-06-23 17:05:03 +00:00
MC [WebAssembly] Fix types for address taken functions 2017-07-05 20:25:08 +00:00
Object Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library.""" 2017-07-05 23:46:06 +00:00
ObjectYAML [ObjectYAML] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-07-01 01:35:55 +00:00
Option [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
Passes Hook the sample PGO machinery in the new PM 2017-06-29 23:33:05 +00:00
ProfileData Prototype: Reduce llvm-profdata merge memory usage further 2017-07-06 19:00:12 +00:00
Support [llvm] Separate out reverse iteration flag into its own header 2017-07-06 18:52:16 +00:00
TableGen Fix Wdocumentation warning 2017-06-20 12:28:33 +00:00
Target [globalisel][tablegen] Import rules containing intrinsic_wo_chain. 2017-07-06 08:12:20 +00:00
Testing/Support [Testing/Support] Remove the const_cast in TakeExpected 2017-06-22 13:11:50 +00:00
ToolDrivers/llvm-lib Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
Transforms Revert "[GVN] Recommit the patch "Add phi-translate support in scalarpre"." 2017-07-03 12:23:10 +00:00
XRay
CMakeLists.txt
InitializePasses.h [SafepointIRVerifier] Add verifier pass for finding GC relocation bugs 2017-07-05 01:16:29 +00:00
LinkAllIR.h Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
LinkAllPasses.h Remove the BBVectorize pass. 2017-06-30 07:09:08 +00:00
module.modulemap [globalisel][tablegen] Fix the modules build after r307079 2017-07-04 16:29:38 +00:00
module.modulemap.build
Pass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
PassAnalysisSupport.h
PassInfo.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
PassRegistry.h
PassSupport.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00