1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 13:33:37 +02:00
llvm-mirror/lib
Mehdi Amini 96b6ab7056 Add a flag to the LLVMContext to disable name for Value other than GlobalValue
Summary:
This is intended to be a performance flag, on the same level as clang
cc1 option "--disable-free". LLVM will never initialize it by default,
it will be up to the client creating the LLVMContext to request this
behavior. Clang will do it by default in Release build (just like
--disable-free).

"opt" and "llc" can opt-in using -disable-named-value command line
option.

When performing LTO on llvm-tblgen, the initial merging of IR peaks
at 92MB without this patch, and 86MB after this patch,setNameImpl()
drops from 6.5MB to 0.5MB.
The total link time goes from ~29.5s to ~27.8s.

Compared to a compile-time flag (like the IRBuilder one), it performs
very close. I profiled on SROA and obtain these results:

 420ms with IRBuilder that preserve name
 372ms with IRBuilder that strip name
 375ms with IRBuilder that preserve name, and a runtime flag to strip

Reviewers: chandlerc, dexonsmith, bogner

Subscribers: joker.eph, llvm-commits

Differential Revision: http://reviews.llvm.org/D17946

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 263086
2016-03-10 01:28:54 +00:00
..
Analysis [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
AsmParser Add a flag to the LLVMContext to disable name for Value other than GlobalValue 2016-03-10 01:28:54 +00:00
Bitcode Bitcode reader: Inline readAbbreviatedField in readRecord and move the enclosing loop in each case (NFC) 2016-03-07 00:38:09 +00:00
CodeGen [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
DebugInfo [DebugInfo] Dump CIE augmentation data as a list of hex bytes 2016-03-01 18:38:05 +00:00
ExecutionEngine ExecutionEngine: tweak debug log 2016-03-05 20:00:41 +00:00
Fuzzer [libfuzzer] adding std:string to allowed adaptable argument. 2016-03-04 23:18:01 +00:00
IR Add a flag to the LLVMContext to disable name for Value other than GlobalValue 2016-03-10 01:28:54 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver Remove autoconf support 2016-01-26 21:29:08 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker FunctionIndex is not optional for renameModuleForThinLTO(), make it a reference (NFC) 2016-03-09 01:37:14 +00:00
LTO Add a flag to the LLVMContext to disable name for Value other than GlobalValue 2016-03-10 01:28:54 +00:00
MC Don't crash when compiling inline assembler containing .file directives. 2016-03-09 17:32:56 +00:00
Object [lanai] Add ELF enum value and relocations. 2016-03-01 21:21:42 +00:00
ObjectYAML [AMDGPU] add AMDGPU target support to ELFObjectFile.h header 2016-03-09 17:08:19 +00:00
Option Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
Passes [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
ProfileData Use LineLocation instead of CallsiteLocation to index callsite profile. 2016-03-03 18:09:32 +00:00
Support Revert r130657, "Windows/DynamicLibrary.inc: Clean up ELM_Callback. We may check the decl instead of the versions of individual libraries." 2016-03-07 00:13:09 +00:00
TableGen [TableGen] Fix typos in comments. NFC 2016-02-26 06:50:27 +00:00
Target [x86] fix cost model inaccuracy for vector memory ops 2016-03-09 22:23:33 +00:00
Transforms [gvn] Fix more indenting and formatting in regions of code that will 2016-03-10 00:58:20 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00