1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/include/llvm/IR
Teresa Johnson e1affa2f8c [ThinLTO] Support for reference graph in per-module and combined summary.
Summary:
This patch adds support for including a full reference graph including
call graph edges and other GV references in the summary.

The reference graph edges can be used to make importing decisions
without materializing any source modules, can be used in the plugin
to make file staging decisions for distributed build systems, and is
expected to have other uses.

The call graph edges are recorded in each function summary in the
bitcode via a list of <CalleeValueIds, StaticCount> tuples when no PGO
data exists, or <CalleeValueId, StaticCount, ProfileCount> pairs when
there is PGO, where the ValueId can be mapped to the function GUID via
the ValueSymbolTable. In the function index in memory, the call graph
edges reference the target via the CalleeGUID instead of the
CalleeValueId.

The reference graph edges are recorded in each summary record with a
list of referenced value IDs, which can be mapped to value GUID via the
ValueSymbolTable.

Addtionally, a new summary record type is added to record references
from global variable initializers. A number of bitcode records and data
structures have been renamed to reflect the newly expanded scope of the
summary beyond functions. More cleanup will follow.

Reviewers: joker.eph, davidxl

Subscribers: joker.eph, llvm-commits

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

llvm-svn: 263275
2016-03-11 18:52:24 +00:00
..
Argument.h
AssemblyAnnotationWriter.h
Attributes.h AttributeSetImpl: Summarize existing function attributes in a bitset. 2016-01-29 22:25:19 +00:00
Attributes.td [Inliner] Merge the attributes of the caller and callee functions 2016-01-13 06:02:45 +00:00
AutoUpgrade.h
BasicBlock.h
CallingConv.h [AVR] Defnined calling conventions. NFC. 2016-01-20 09:30:01 +00:00
CallSite.h [IR] Add {is,set,setNot}Convergent() functions to CallSite, CallInstr, and InvokeInstr. 2016-02-17 17:46:47 +00:00
CFG.h
CMakeLists.txt
Comdat.h
Constant.h Simplify handleOperandChangeImpl() removing last argument (NFC) 2016-02-10 22:47:15 +00:00
ConstantFolder.h
ConstantRange.h [ConstantRange] Generalize makeGuaranteedNoWrapRegion to work on ranges 2016-03-03 18:31:16 +00:00
Constants.h IR: Add ConstantData, for operand-less Constants 2016-02-21 02:39:49 +00:00
DataLayout.h [IR] Optimize bitfield layout of Value for MSVC 2016-02-26 18:08:59 +00:00
DebugInfo.h Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
DebugInfoFlags.def
DebugInfoMetadata.h Move discriminator assignment to the right place. 2016-02-29 18:59:48 +00:00
DebugLoc.h
DerivedTypes.h don't repeat names in documentation comments; NFC 2016-02-25 15:55:28 +00:00
DiagnosticInfo.h DiagnosticInfoWithDebugLocBase: Appease Twine for now. 2016-02-03 00:09:22 +00:00
DiagnosticPrinter.h
DIBuilder.h
Dominators.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
Function.h Restore "[ThinLTO] Use MD5 hash in function index." with fix 2016-02-10 21:55:02 +00:00
FunctionInfo.h [ThinLTO] Support for reference graph in per-module and combined summary. 2016-03-11 18:52:24 +00:00
GetElementPtrTypeIterator.h [opaque pointer types] [NFC] gep_type_{begin,end} now take source element type and address space. 2016-01-22 01:33:43 +00:00
GlobalAlias.h
GlobalObject.h
GlobalValue.h [IR] Optimize bitfield layout of Value for MSVC 2016-02-26 18:08:59 +00:00
GlobalVariable.h Change hasUniqueInitializer() to call isStrongDefinitionForLinker() instead of !isWeakForLinker() 2015-12-09 16:17:07 +00:00
GVMaterializer.h Rename MDValue* to Metadata* (NFC) 2015-12-29 23:00:22 +00:00
InlineAsm.h
InstIterator.h
InstrTypes.h Fix an issue where fast math flags were dropped during scalarization. 2016-03-01 19:35:52 +00:00
Instruction.def [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
Instruction.h [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
Instructions.h [IR] Add {is,set,setNot}Convergent() functions to CallSite, CallInstr, and InvokeInstr. 2016-02-17 17:46:47 +00:00
InstVisitor.h [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
IntrinsicInst.h don't repeat names in documentation comments; NFC 2016-02-25 15:55:28 +00:00
Intrinsics.h Handle more edge cases in intrinsic name binary search 2016-01-26 22:33:19 +00:00
Intrinsics.td Support arbitrary addrspace pointers in masked load/store intrinsics 2016-03-10 20:39:22 +00:00
IntrinsicsAArch64.td SelectionDAG: Make Properties a field of SDPatternOperator 2016-02-10 18:40:04 +00:00
IntrinsicsAMDGPU.td AMDGPU/SI: add llvm.amdgcn.buffer.load/store.format intrinsics 2016-03-10 18:43:50 +00:00
IntrinsicsARM.td SelectionDAG: Make Properties a field of SDPatternOperator 2016-02-10 18:40:04 +00:00
IntrinsicsBPF.td
IntrinsicsHexagon.td [Hexagon] Hexagon V60 HVX intrinsic defintions 2015-11-26 16:54:33 +00:00
IntrinsicsMips.td
IntrinsicsNVVM.td [NVPTX] Mark nvvm synchronizing intrinsics as convergent. 2016-02-06 19:32:44 +00:00
IntrinsicsPowerPC.td Fix for PR 26193 2016-02-05 14:50:29 +00:00
IntrinsicsSystemZ.td
IntrinsicsWebAssembly.td
IntrinsicsX86.td [LLVM][AVX512] PSRLWI Chnage imm8 to int 2016-03-03 08:54:05 +00:00
IntrinsicsXCore.td
IRBuilder.h Remove PreserveNames template parameter from IRBuilder 2016-03-11 17:15:50 +00:00
IRPrintingPasses.h
LegacyPassManager.h
LegacyPassManagers.h [PassManager] Ensure destructors of cached AnalysisUsage objects are run 2015-12-04 23:48:19 +00:00
LegacyPassNameParser.h
LLVMContext.h Add a flag to the LLVMContext to disable name for Value other than GlobalValue 2016-03-10 01:28:54 +00:00
Mangler.h [ptr-traits] Add one more #include necessary to do strict alignment 2015-12-30 03:56:17 +00:00
MDBuilder.h
Metadata.def Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
Metadata.h Revert "Query the StringMap only once when creating MDString (NFC)" 2016-02-17 02:18:58 +00:00
Module.h Replace GlobalScopeAsm[GlobalScopeAsm.size()-1] with GlobalScopeAsm.back(), NFC. 2016-03-05 16:02:09 +00:00
ModuleSlotTracker.h
NoFolder.h
OperandTraits.h
Operator.h [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
PassManager.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
PassManagerInternal.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
PatternMatch.h
PredIteratorCache.h
Statepoint.h [Statepoints] Refactor GCRelocateOperands into an intrinsic wrapper. NFC. 2016-01-05 04:03:00 +00:00
SymbolTableListTraits.h
TrackingMDRef.h [ptr-traits] Merge the MetadataTracking helpers into the Metadata 2015-12-29 02:14:50 +00:00
Type.h [IR] Provide an API to skip the details of a structured type when printed. 2016-03-07 22:32:42 +00:00
TypeBuilder.h
TypeFinder.h Make more headers self-contained. 2016-01-27 18:03:37 +00:00
Use.h [IR] Move definitions of users of Use::set to Value.h 2016-01-29 12:47:05 +00:00
UseListOrder.h
User.h Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
Value.def IR: Add ConstantData, for operand-less Constants 2016-02-21 02:39:49 +00:00
Value.h [IR] Optimize bitfield layout of Value for MSVC 2016-02-26 18:08:59 +00:00
ValueHandle.h
ValueMap.h
ValueSymbolTable.h
Verifier.h [PM] Rename the CRTP mixin base classes for the new pass manager to 2016-03-11 10:33:22 +00:00