llvm/lib
Ali Tamur 40bb371aaf Use a data structure better suited for large sets in SimplificationTracker.
Summary:
D44571 changed SimplificationTracker to use SmallSetVector to keep phi nodes. As a result, when the number of phi nodes is large, the build time performance suffers badly. When building for power pc, we have a case where there are more than 600.000 nodes, and it takes too long to compile.

In this change, I partially revert D44571 to use SmallPtrSet, which does an acceptable job with any number of elements. In the original patch, having a deterministic iteration order was mentioned as a motivation, however I think it only applies to the nodes already matched in MatchPhiSet method, which I did not touch.

Reviewers: bjope, skatkov

Reviewed By: bjope, skatkov

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@346710 91177308-0d34-0410-b5e6-96231b3b80d8
2018-11-12 21:43:43 +00:00
..
Analysis [VectorUtils] add funnel-shifts to the list of vectorizable intrinsics 2018-11-12 15:20:14 +00:00
AsmParser [ThinLTO] Internalize readonly globals 2018-11-10 08:31:21 +00:00
BinaryFormat Revert r343317 2018-09-28 17:01:50 +00:00
Bitcode [ThinLTO] Internalize readonly globals 2018-11-10 08:31:21 +00:00
CodeGen Use a data structure better suited for large sets in SimplificationTracker. 2018-11-12 21:43:43 +00:00
DebugInfo NFC: DebugInfo: Reduce scope of DebugOffset to simplify code 2018-11-12 18:53:28 +00:00
Demangle Make initializeOutputStream() return false on error and true on success. 2018-11-11 10:04:00 +00:00
ExecutionEngine [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
Fuzzer
FuzzMutate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
IR [ThinLTO] Internalize readonly globals 2018-11-10 08:31:21 +00:00
IRReader
LineEditor
Linker [ThinLTO] Internalize readonly globals 2018-11-10 08:31:21 +00:00
LTO [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
MC [WebAssembly] Added WasmAsmParser. 2018-11-12 20:15:01 +00:00
Object [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
ObjectYAML [WebAssembly] Add shared memory support to limits field 2018-11-06 17:27:25 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Passes Add an OptimizerLast EP 2018-11-12 11:17:07 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support [Support] Make error banner optional in logAllUnhandledErrors 2018-11-11 01:46:03 +00:00
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
Target [X86][SSE] Add lowerVectorShuffleAsByteRotateAndPermute (PR39387) 2018-11-12 21:12:38 +00:00
Testing Fix error with SmallString implicit conversion. 2018-09-06 22:47:32 +00:00
ToolDrivers [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Transforms [GC][InstCombine] Fix a potential iteration issue 2018-11-12 20:00:53 +00:00
WindowsManifest
XRay [XRay] Improve FDR trace handling and error messaging 2018-11-09 06:26:48 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
LLVMBuild.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00