llvm-project/llvm/lib/IR
Reid Kleckner 05da2fe521 Sink all InitializePasses.h includes
This file lists every pass in LLVM, and is included by Pass.h, which is
very popular. Every time we add, remove, or rename a pass in LLVM, it
caused lots of recompilation.

I found this fact by looking at this table, which is sorted by the
number of times a file was changed over the last 100,000 git commits
multiplied by the number of object files that depend on it in the
current checkout:
  recompiles    touches affected_files  header
  342380        95      3604    llvm/include/llvm/ADT/STLExtras.h
  314730        234     1345    llvm/include/llvm/InitializePasses.h
  307036        118     2602    llvm/include/llvm/ADT/APInt.h
  213049        59      3611    llvm/include/llvm/Support/MathExtras.h
  170422        47      3626    llvm/include/llvm/Support/Compiler.h
  162225        45      3605    llvm/include/llvm/ADT/Optional.h
  158319        63      2513    llvm/include/llvm/ADT/Triple.h
  140322        39      3598    llvm/include/llvm/ADT/StringRef.h
  137647        59      2333    llvm/include/llvm/Support/Error.h
  131619        73      1803    llvm/include/llvm/Support/FileSystem.h

Before this change, touching InitializePasses.h would cause 1345 files
to recompile. After this change, touching it only causes 550 compiles in
an incremental rebuild.

Reviewers: bkramer, asbirlea, bollu, jdoerfert

Differential Revision: https://reviews.llvm.org/D70211
2019-11-13 16:34:37 -08:00
..
AbstractCallSite.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AsmWriter.cpp [AArch64][SVE] Spilling/filling of SVE callee-saves. 2019-11-11 09:03:19 +00:00
AttributeImpl.h [Alignment][NFC] Attributes use Align/MaybeAlign 2019-10-22 09:51:06 +00:00
Attributes.cpp [Alignment][NFC] Use MaybeAlign in AttrBuilder 2019-10-22 11:57:52 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp [ObjC][ARC] Check whether the return and parameter types of the old and 2019-10-24 13:08:50 -07:00
BasicBlock.cpp [FastISel] Fix insertion of unconditional branches during FastISel 2019-09-20 13:22:59 +00:00
CMakeLists.txt Link libpthread into LLVMCore.so 2019-08-15 18:06:30 +00:00
Comdat.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ConstantFold.cpp [IR] Redefine Freeze instruction 2019-11-12 10:49:00 +09:00
ConstantFold.h Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantRange.cpp [NFC] ConstantRange::subWithNoWrap(): fixup comment 2019-11-08 17:52:43 +03:00
Constants.cpp Mark llvm::ConstantExpr::getAsInstruction as const 2019-11-12 14:24:12 +01:00
ConstantsContext.h Fix cppcheck variable shadow warning. NFCI. 2019-09-25 13:45:36 +00:00
Core.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
DIBuilder.cpp Do a sweep of symbol internalization. NFC. 2019-08-23 19:59:23 +00:00
DataLayout.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
DebugInfo.cpp Second attempt to add iterator_range::empty() 2019-10-07 18:14:24 +00:00
DebugInfoMetadata.cpp [DebugInfo] Fix for DW_OP_LLVM_fragment in DIExpression::isImplicit() 2019-11-03 17:37:49 +01:00
DebugLoc.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DiagnosticHandler.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
DiagnosticInfo.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
DiagnosticPrinter.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Dominators.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
Function.cpp Keep import function list for inlinee profile update 2019-11-06 18:36:00 -08:00
GVMaterializer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Globals.cpp [Alignment][NFC] Remove dependency on GlobalObject::setAlignment(unsigned) 2019-10-15 11:24:36 +00:00
IRBuilder.cpp [Alignment] Migrate Attribute::getWith(Stack)Alignment 2019-10-15 12:56:24 +00:00
IRPrintingPasses.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
InlineAsm.cpp [SVE][Inline-Asm] Add constraints for SVE predicate registers 2019-09-16 09:45:27 +00:00
Instruction.cpp [IR] Redefine Freeze instruction 2019-11-12 10:49:00 +09:00
Instructions.cpp [IR] Redefine Freeze instruction 2019-11-12 10:49:00 +09:00
IntrinsicInst.cpp [FPEnv] Add constrained intrinsics for lrint and lround 2019-10-07 13:20:00 +00:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp Add Windows Control Flow Guard checks (/guard:cf). 2019-10-28 15:19:39 +00:00
LLVMContextImpl.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
LLVMContextImpl.h Scalable Vector IR Type with further LTO fixes 2019-07-05 12:48:16 +00:00
LegacyPassManager.cpp [LegacyPassManager] Fixed "null check after derefencing" warning 2019-11-02 20:14:29 +01:00
MDBuilder.cpp Reland "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2019-09-11 16:19:50 +00:00
Mangler.cpp Standardize on MSVC behavior for triples with no environment 2019-07-08 21:05:20 +00:00
Metadata.cpp Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
MetadataImpl.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Module.cpp IR. Change strip* family of functions to not look through aliases. 2019-08-22 19:56:14 +00:00
ModuleSummaryIndex.cpp ThinLTO : Import always_inline functions irrespective of the threshold 2019-11-08 17:02:01 -08:00
Operator.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OptBisect.cpp Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
PassInstrumentation.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassManager.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassRegistry.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
PassTimingInfo.cpp [Legacy][TimePasses] allow -time-passes reporting into a custom stream 2019-03-22 23:11:08 +00:00
ProfileSummary.cpp [PGO] Context sensitive PGO (part 2) 2019-02-28 19:55:07 +00:00
RemarkStreamer.cpp [Remarks] Emit the remarks section by default for certain formats 2019-10-28 12:50:46 -07:00
SafepointIRVerifier.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
Statepoint.cpp [CallSite removal] Migrate the statepoint GC infrastructure to use the 2019-02-11 07:42:30 +00:00
SymbolTableListTraitsImpl.h [ADT] Notify ilist traits about in-list transfers 2019-01-23 22:59:52 +00:00
Type.cpp [SVE][IR] Scalable Vector size queries and IR instruction support 2019-10-08 12:53:54 +00:00
TypeFinder.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Use.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
User.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Value.cpp [Alignment][NFC] Value::getPointerAlignment returns MaybeAlign 2019-10-15 13:58:22 +00:00
ValueSymbolTable.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Verifier.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00