1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/lib/IR
Arthur Eubanks 4fce57098e [NewPM] Make pass adaptors less templatey
Currently PassBuilder.cpp is by far the file that takes longest to
compile. This is due to tons of templates being instantiated per pass.

Follow PassManager by using wrappers around passes to avoid making
the adaptors templated on the pass type. This allows us to move various
adaptors' run methods into .cpp files.

This reduces the compile time of PassBuilder.cpp on my machine from 66
to 39 seconds. It also reduces the size of opt from 685M to 676M.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D92616
2020-12-04 08:30:50 -08:00
..
AbstractCallSite.cpp
AsmWriter.cpp Adding PoisonValue for representing poison value explicitly in IR 2020-11-25 17:33:51 -07:00
AttributeImpl.h Reapply "OpaquePtr: Add type to sret attribute" 2020-10-16 11:05:02 -04:00
Attributes.cpp [Inline] prevent inlining on stack protector mismatch 2020-12-02 11:00:16 -08:00
AutoUpgrade.cpp [AMDGPU] Set the default globals address space to 1 2020-11-20 15:46:53 +00:00
BasicBlock.cpp [IR] improve code comment/logic in removePredecessor(); NFC 2020-11-30 10:51:30 -05:00
CMakeLists.txt [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] Don't fold and/or i1 poison to poison (NFC) 2020-11-30 22:58:31 +09:00
ConstantFold.h
ConstantRange.cpp [ConstantRange] Introduce getMinSignedBits() method 2020-09-22 21:37:30 +03:00
Constants.cpp [llvm] Fix for failing test from fdbd84c6c819d4462546961f6086c1524d5d5ae8 2020-12-01 15:47:55 -08:00
ConstantsContext.h
Core.cpp Creating a named struct requires only a Context and a name, but looking up a struct by name requires a Module. The method on Module merely accesses the LLVMContextImpl and no data from the module itself, so this patch moves getTypeByName to a static method on StructType that takes a Context and a name. 2020-11-30 11:34:12 -08:00
DataLayout.cpp [DL] Inline getAlignmentInfo() implementation (NFC) 2020-11-30 20:56:15 +01:00
DebugInfo.cpp [Instruction] Add dropLocation and updateLocationAfterHoist helpers 2020-09-24 15:00:04 -07:00
DebugInfoMetadata.cpp [DebugInfo] Support for DW_TAG_generic_subrange 2020-10-29 01:34:15 +05:30
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
DiagnosticPrinter.cpp
DIBuilder.cpp [DebugInfo] Expose Fortran array debug info attributes through DIBuilder. 2020-10-28 13:13:35 -07:00
Dominators.cpp [DomTree] Make assert more precise 2020-10-22 22:40:06 +02:00
FPEnv.cpp
Function.cpp Small improvements to Intrinsic::getName 2020-12-02 16:49:12 -08:00
Globals.cpp Add a default address space for globals to DataLayout 2020-11-20 15:46:52 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp [CSSPGO] IR intrinsic for pseudo-probe block instrumentation 2020-11-20 10:39:24 -08:00
Instructions.cpp [AllocaInst] Update getAllocationSizeInBits to return TypeSize. 2020-11-27 16:39:10 +00:00
IntrinsicInst.cpp [VP][NFC] Rename to HANDLE_VP_TO_OPC 2020-11-16 10:24:18 +01:00
IRBuilder.cpp [RS4GC] NFC. Preparatory refactoring to make GC parseable memcpy 2020-10-21 12:38:20 -07:00
IRPrintingPasses.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
LegacyPassManager.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
LLVMContext.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
LLVMContextImpl.cpp Fix use-of-uninitialized-value in rG75f50e15bf8f 2020-11-26 01:39:22 -07:00
LLVMContextImpl.h [Remarks][1/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:49 -08:00
LLVMRemarkStreamer.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
Mangler.cpp fix symbol printing on windows 2020-10-15 17:14:55 -04:00
MDBuilder.cpp Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
Metadata.cpp [Metadata] Fix layer violation in D91576 2020-12-03 10:58:46 -08:00
MetadataImpl.h
Module.cpp [Remarks][2/2] Expand remarks hotness threshold option support in more tools 2020-11-30 21:55:50 -08:00
ModuleSummaryIndex.cpp
Operator.cpp
OptBisect.cpp
Pass.cpp [LegacyPM] Remove unused undocumented parameter. NFC. 2020-11-27 10:41:38 +00:00
PassInstrumentation.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
PassManager.cpp [NewPM] Make pass adaptors less templatey 2020-12-04 08:30:50 -08:00
PassRegistry.cpp
PassTimingInfo.cpp [NewPM][PassInstrumentation] Add PreservedAnalyses parameter to AfterPass* callbacks 2020-08-21 16:10:42 +07:00
PrintPasses.cpp [NewPM] Support --print-before/after in NPM 2020-12-03 16:52:14 -08:00
ProfileSummary.cpp ProfileSummary.cpp - use auto const& iterator in for-range loop to avoid copies. NFCI. 2020-09-21 16:54:26 +01:00
SafepointIRVerifier.cpp
Statepoint.cpp
StructuralHash.cpp (Expensive) Check for Loop, SCC and Region pass return status 2020-08-28 07:56:35 +02:00
SymbolTableListTraitsImpl.h
Type.cpp Creating a named struct requires only a Context and a name, but looking up a struct by name requires a Module. The method on Module merely accesses the LLVMContextImpl and no data from the module itself, so this patch moves getTypeByName to a static method on StructType that takes a Context and a name. 2020-11-30 11:34:12 -08:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp [IR] Merge metadata manipulation code into Value 2020-10-23 11:08:26 +07:00
ValueSymbolTable.cpp
Verifier.cpp [IR][LoopRotate] remove assertion that phi must have at least one operand 2020-11-30 11:32:42 -05:00