1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/lib/IR
Teresa Johnson 5b4ceacd72 [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 index-based WPD will be sent as a follow-on.

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: 351453
2019-01-17 15:49:03 +00:00
..
AsmWriter.cpp [ThinLTO] Add summary entries for index-based WPD 2019-01-17 15:49:03 +00:00
AttributeImpl.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
Attributes.cpp [Inliner] Modify the merging of min-legal-vector-width attribute to better handle when the caller or callee don't have the attribute. 2018-11-29 07:27:38 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp [EH] Rename llvm.x86.seh.recoverfp intrinsic to llvm.eh.recoverfp 2019-01-16 00:37:13 +00:00
BasicBlock.cpp [IR] Add Instruction::isLifetimeStartOrEnd, NFC 2018-12-21 21:49:40 +00:00
CMakeLists.txt [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Comdat.cpp [LLVM-C] [bindings/go] Add C and Golang bindings for COMDAT 2018-03-14 18:33:53 +00:00
ConstantFold.cpp Revert patches 348835 and 348571 because they're 2019-01-04 16:39:10 +00:00
ConstantFold.h
ConstantRange.cpp [IR] Strip trailing whitespace. NFC 2018-07-03 12:39:52 +00:00
Constants.cpp [opaque pointer types] Remove some calls to generic Type subtype accessors. 2019-01-10 16:07:20 +00:00
ConstantsContext.h [IR] Add a dedicated FNeg IR Instruction 2018-11-13 18:15:47 +00:00
Core.cpp [opaque pointer types] Update GetElementPtr creation APIs to 2019-01-14 21:39:35 +00:00
DataLayout.cpp [BasicAA] Support arbitrary pointer sizes (and fix an overflow bug) 2019-01-02 16:28:09 +00:00
DebugInfo.cpp llvm-dwarfdump: Improve/fix pretty printing of array dimensions 2018-12-19 19:34:24 +00:00
DebugInfoMetadata.cpp [llvm] API for encoding/decoding DWARF discriminators. 2018-12-21 22:48:50 +00:00
DebugLoc.cpp [IR] Add a boolean field in DILocation to know if a line must covered or not 2018-09-20 08:53:06 +00:00
DiagnosticHandler.cpp Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DiagnosticInfo.cpp Add vtable anchor to classes. 2018-12-29 02:02:13 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp Rename DIFlagFixedEnum to DIFlagEnumClass. NFC 2019-01-08 17:52:29 +00:00
Dominators.cpp [TI removal] Make variables declared as TerminatorInst and initialized 2018-10-15 10:04:59 +00:00
DomTreeUpdater.cpp [Dominators] Refine the logic of recalculate() in the DomTreeUpdater 2018-08-03 06:51:35 +00:00
Function.cpp [CallSite removal] Move the rest of IR implementation code away from 2019-01-07 07:31:49 +00:00
Globals.cpp [IR] Allow increasing the alignment of dso-local globals. 2018-10-31 23:03:58 +00:00
GVMaterializer.cpp
InlineAsm.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Instruction.cpp [IR] Add Instruction::isLifetimeStartOrEnd, NFC 2018-12-21 21:49:40 +00:00
Instructions.cpp [opaque pointer types] Update LoadInst creation APIs to consistently 2019-01-14 21:37:53 +00:00
IntrinsicInst.cpp [FPEnv] Add constrained CEIL/FLOOR/ROUND/TRUNC intrinsics 2018-11-05 15:59:49 +00:00
IRBuilder.cpp [IRBuilder] Fixup CreateIntrinsic to allow specifying Types to Mangle. 2018-10-08 10:32:33 +00:00
IRPrintingPasses.cpp Print newline after banner for ModulePass 2018-11-14 10:05:28 +00:00
LegacyPassManager.cpp [New PM][PassInstrumentation] IR printing support for New Pass Manager 2018-09-24 16:08:15 +00:00
LLVMBuild.txt
LLVMContext.cpp Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
LLVMContextImpl.cpp [LLVMContext] Detecting leaked instructions with metadata 2018-06-29 20:13:13 +00:00
LLVMContextImpl.h [DebugInfo] DISubprogram flags get their own flags word. NFC. 2018-11-19 18:29:28 +00:00
Mangler.cpp [IR] Avoid the need to prefix MS C++ symbols with '\01' 2018-03-16 20:13:32 +00:00
MDBuilder.cpp [Metadata] Replace a SmallVector with an array; NFC 2018-08-15 22:15:35 +00:00
Metadata.cpp Use llvm::copy. NFC 2018-11-17 01:44:25 +00:00
MetadataImpl.h
Module.cpp Extend Module::getOrInsertGlobal to control the construction of the 2019-01-02 15:41:47 +00:00
ModuleSummaryIndex.cpp [ThinLTO] Fix comment. NFC 2018-11-19 14:19:37 +00:00
Operator.cpp
OptBisect.cpp [NFC] OptPassGate extracted from OptBisect 2018-03-27 16:57:20 +00:00
Pass.cpp Rename DEBUG macro to LLVM_DEBUG. 2018-05-14 12:53:11 +00:00
PassInstrumentation.cpp [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
PassManager.cpp
PassRegistry.cpp
PassTimingInfo.cpp [NewPM] fixing asserts on deleted loop in -print-after-all 2018-12-11 19:05:35 +00:00
ProfileSummary.cpp [ProfileSummary] Move a vector we're about to destroy anyway; NFC 2018-04-12 20:54:05 +00:00
SafepointIRVerifier.cpp [opaque pointer types] Remove some calls to generic Type subtype accessors. 2019-01-10 16:07:20 +00:00
Statepoint.cpp
SymbolTableListTraitsImpl.h Remove trailing space 2018-07-30 19:41:25 +00:00
Type.cpp IR: Optimize StructType::get to perform one hash lookup instead of two, NFCI 2018-10-25 13:38:07 +00:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp [CallSite removal] Move the rest of IR implementation code away from 2019-01-07 07:31:49 +00:00
ValueSymbolTable.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
Verifier.cpp Allow FP types for atomicrmw xchg 2019-01-17 10:49:01 +00:00