1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/IR
Teresa Johnson e45131dbf7 [ThinLTO] Add summary entries for index-based WPD
Summary:
If LTOUnit splitting is disabled, the module summary analysis computes
the summary information necessary to perform single implementation
devirtualization during the thin link with the index and no IR. The
information collected from the regular LTO IR in the current hybrid WPD
algorithm is summarized, including:
1) For vtable definitions, record the function pointers and their offset
within the vtable initializer (subsumes the information collected from
IR by tryFindVirtualCallTargets).
2) A record for each type metadata summarizing the vtable definitions
decorated with that metadata (subsumes the TypeIdentiferMap collected
from IR).

Also added are the necessary bitcode records, and the corresponding
assembly support.

The follow-on index-based WPD patch is D55153.

Depends on D53890.

Reviewers: pcc

Subscribers: mehdi_amini, Prazek, inglorion, eraman, steven_wu, dexonsmith, arphaman, llvm-commits

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

llvm-svn: 364960
2019-07-02 19:38:02 +00:00
..
AbstractCallSite.cpp
AsmWriter.cpp [ThinLTO] Add summary entries for index-based WPD 2019-07-02 19:38:02 +00:00
AttributeImpl.h Reapply: IR: add optional type to 'byval' function parameters 2019-05-30 18:48:23 +00:00
Attributes.cpp [Attr] Add "willreturn" function attribute 2019-06-27 15:51:40 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp Change semantics of fadd/fmul vector reductions. 2019-06-11 08:22:10 +00:00
BasicBlock.cpp [NFC] BasicBlock: generalize replaceSuccessorsPhiUsesWith(), take Old bb 2019-05-05 18:59:45 +00:00
CMakeLists.txt Reland "[Remarks] Refactor remark diagnostic emission in a RemarkStreamer" 2019-03-06 15:20:13 +00:00
Comdat.cpp
ConstantFold.cpp Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantFold.h Add FNeg IR constant folding support 2019-05-05 16:07:09 +00:00
ConstantRange.cpp [ConstantRange] Add sdiv() support 2019-06-03 18:19:54 +00:00
Constants.cpp [Constants] Simplify type checking switch in ConstantExpr::get. 2019-05-05 17:19:16 +00:00
ConstantsContext.h
Core.cpp [LLVM-C] Deprecate the LLVMValueRef-returning metadata creation functions 2019-04-24 17:05:08 +00:00
DataLayout.cpp Cleanup: llvm::bsearch -> llvm::partition_point after r364719 2019-06-30 11:19:56 +00:00
DebugInfo.cpp [DebugInfo] Delete TypedDINodeRef 2019-05-07 02:06:37 +00:00
DebugInfoMetadata.cpp [DebugInfo] Avoid adding too much indirection to pointer-valued variables 2019-07-01 09:38:23 +00:00
DebugLoc.cpp
DiagnosticHandler.cpp
DiagnosticInfo.cpp [Remarks][NFC] Move the serialization to lib/Remarks 2019-05-30 21:45:59 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp [DebugInfo] Delete TypedDINodeRef 2019-05-07 02:06:37 +00:00
Dominators.cpp
Function.cpp Cleanup: llvm::bsearch -> llvm::partition_point after r364719 2019-06-30 11:19:56 +00:00
Globals.cpp Add IR support, ELF section and user documentation for partitioning feature. 2019-05-29 03:29:01 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp [NFC] Instruction: introduce replaceSuccessorWith() function, use it 2019-05-05 18:59:22 +00:00
Instructions.cpp Silenced a warning "implicit conversion turns string literal into bool" introduced in r362473 2019-06-04 09:31:07 +00:00
IntrinsicInst.cpp [IR] Add SaturatingInst and BinaryOpIntrinsic classes 2019-05-28 18:08:06 +00:00
IRBuilder.cpp Improve reduction intrinsics by overloading result value. 2019-06-13 09:37:38 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp ftime-trace: Trace the name of the currently active pass as well. 2019-04-20 23:22:45 +00:00
LLVMBuild.txt [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
LLVMContext.cpp Reland "[Remarks] Refactor remark diagnostic emission in a RemarkStreamer" 2019-03-06 15:20:13 +00:00
LLVMContextImpl.cpp
LLVMContextImpl.h Revert r363658 "[SVE][IR] Scalable Vector IR Type with pr42210 fix" 2019-06-27 13:55:02 +00:00
Mangler.cpp
MDBuilder.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
Metadata.cpp Use llvm::stable_sort 2019-04-23 14:51:27 +00:00
MetadataImpl.h
Module.cpp [PGO] Context sensitive PGO (part 2) 2019-02-28 19:55:07 +00:00
ModuleSummaryIndex.cpp [ThinLTO] Auto-hide prevailing linkonce_odr only when all copies eligible 2019-05-10 20:08:24 +00:00
Operator.cpp
OptBisect.cpp Fix IR/Analysis layering issue with OptBisect 2019-02-28 04:00:55 +00:00
Pass.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
PassInstrumentation.cpp
PassManager.cpp
PassRegistry.cpp
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] Extend -fsave-optimization-record to specify the format 2019-06-17 16:06:00 +00:00
SafepointIRVerifier.cpp SafepointIRVerifier port to new Pass Manager 2019-03-31 10:15:39 +00:00
Statepoint.cpp [CallSite removal] Migrate the statepoint GC infrastructure to use the 2019-02-11 07:42:30 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Revert r363658 "[SVE][IR] Scalable Vector IR Type with pr42210 fix" 2019-06-27 13:55:02 +00:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp Introduce Value::stripPointerCastsSameRepresentation 2019-06-04 20:21:46 +00:00
ValueSymbolTable.cpp
Verifier.cpp [Attr] Add "willreturn" function attribute 2019-06-27 15:51:40 +00:00