1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib
Chandler Carruth 4904b56b75 [PM] Port memdep to the new pass manager.
This is a fairly straightforward port to the new pass manager with one
exception. It removes a very questionable use of releaseMemory() in
the old pass to invalidate its caches between runs on a function.
I don't think this is really guaranteed to be safe. I've just used the
more direct port to the new PM to address this by nuking the results
object each time the pass runs. While this could cause some minor malloc
traffic increase, I don't expect the compile time performance hit to be
noticable, and it makes the correctness and other aspects of the pass
much easier to reason about. In some cases, it may make things faster by
making the sets and maps smaller with better locality. Indeed, the
measurements collected by Bruno (thanks!!!) show mostly compile time
improvements.

There is sadly very limited testing at this point as there are only two
tests of memdep, and both rely on GVN. I'll be porting GVN next and that
will exercise this heavily though.

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

llvm-svn: 263082
2016-03-10 00:55:30 +00:00
..
Analysis [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
AsmParser [AsmParser] Expose an API to parse a string starting with a type. 2016-03-08 00:37:07 +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 [IR] Provide an API to skip the details of a structured type when printed. 2016-03-07 22:32:42 +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 libLTO: add a ThinLTOCodeGenerator on the model of LTOCodeGenerator. 2016-03-09 01:37:22 +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 [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +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