llvm/lib/IR
Duncan P. N. Exon Smith 2a5fda92b4 IR: Expose ModuleSlotTracker in Value::print()
Allow callers of `Value::print()` and `Metadata::print()` to pass in a
`ModuleSlotTracker`.  This allows them to pay only once for calculating
module-level slots (such as Metadata).

This is related to PR23865, where there was a huge cost for
`MachineFunction::print()`.  Although I don't have a *particular* user
in mind for this new code, I have hit big slowdowns before when running
`opt -debug`, and I think this will be useful.  Going forward, if
someone hits a big slowdown with `print()` statements, they can create a
`ModuleSlotTracker` and send it through.  Similarly, adding support to
`Value::dump()` and `Metadata::dump()` should be trivial.

I added unit tests to be sure the `print()` functions actually behave
the same way with and without the slot tracker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240867 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-27 00:38:26 +00:00
..
AsmWriter.cpp IR: Expose ModuleSlotTracker in Value::print() 2015-06-27 00:38:26 +00:00
AttributeImpl.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Attributes.cpp Protection against stack-based memory corruption errors using SafeStack 2015-06-15 21:07:11 +00:00
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt
Comdat.cpp
ConstantFold.cpp Refix a use of explicit pointer types in GEP constant folding 2015-06-12 18:22:03 +00:00
ConstantFold.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantRange.cpp
Constants.cpp Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
ConstantsContext.h
Core.cpp Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
DataLayout.cpp
DebugInfo.cpp
DebugInfoMetadata.cpp
DebugLoc.cpp
DiagnosticInfo.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DiagnosticPrinter.cpp MIR Serialization: Connect the machine function analysis pass to the MIR parser. 2015-06-15 20:30:22 +00:00
DIBuilder.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Dominators.cpp
Function.cpp [CallGraph] Teach the CallGraph about non-leaf intrinsics. 2015-06-18 19:28:26 +00:00
GCOV.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Globals.cpp Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp Devirtualize Instruction::clone_impl 2015-06-24 20:22:23 +00:00
Instructions.cpp Devirtualize Instruction::clone_impl 2015-06-24 20:22:23 +00:00
IntrinsicInst.cpp
IRBuilder.cpp IRBuilder: Allow globals to be constructed in a specific address space 2015-06-19 02:12:07 +00:00
IRPrintingPasses.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegacyPassManager.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LLVMBuild.txt
LLVMContext.cpp Silence an MSVC warning about not all control paths returning a value; NFC. 2015-06-16 13:14:59 +00:00
LLVMContextImpl.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LLVMContextImpl.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Makefile
Mangler.cpp Remove unused arguments and move ManglerPrefixTy to the implementation. 2015-06-23 14:11:09 +00:00
MDBuilder.cpp
Metadata.cpp Tweak wording of alignment static_assert messages. 2015-06-17 13:53:12 +00:00
MetadataImpl.h
MetadataTracking.cpp
Module.cpp
module.modulemap
Operator.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Pass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PassManager.cpp
PassRegistry.cpp
Statepoint.cpp
SymbolTableListTraitsImpl.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Type.cpp
TypeFinder.cpp Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
Use.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
User.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Value.cpp Devirtualize Constant::replaceUsesOfWithOnConstant. 2015-06-24 18:55:24 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp Minor style cleanup after 240843 [NFC] 2015-06-26 22:21:52 +00:00