llvm-project/llvm/tools/opt
Adrian Prantl 9d2f019fb6 Turn DISubprogram into a variable-length node.
DISubprogram currently has 10 pointer operands, several of which are
often nullptr. This patch reduces the amount of memory allocated by
DISubprogram by rearranging the operands such that containing type,
template params, and thrown types come last, and are only allocated
when they are non-null (or followed by non-null operands).

This patch also eliminates the entirely unused DisplayName operand.

This saves up to 4 pointer operands per DISubprogram. (I tried
measuring the effect on peak memory usage on an LTO link of an X86
llc, but the results were very noisy).

This reapplies r301498 with an attempted workaround for g++.

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

llvm-svn: 301501
2017-04-26 23:59:52 +00:00
..
AnalysisWrappers.cpp [CG] Actually hoist up the generic CallGraphPrinter pass from a weird 2016-03-10 11:08:44 +00:00
BreakpointPrinter.cpp Turn DISubprogram into a variable-length node. 2017-04-26 23:59:52 +00:00
BreakpointPrinter.h
CMakeLists.txt [CMake] opt depends on intrinsics_gen 2016-11-19 03:18:50 +00:00
GraphPrinters.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
NewPMDriver.cpp [PM] Separate the LoopAnalysisManager from the LoopPassManager and move 2017-01-11 09:43:56 +00:00
NewPMDriver.h [opt] Remove an unused argument to runPassPipeline(). 2016-09-07 00:48:47 +00:00
PassPrinters.cpp Fix Clang-tidy readability-redundant-string-cstr warnings 2016-11-02 16:43:50 +00:00
PassPrinters.h
PrintSCC.cpp
opt.cpp [ThinLTO] Add support for emitting minimized bitcode for thin link 2017-03-23 19:47:39 +00:00