1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/include/llvm/IR
Peter Collingbourne 5b721561aa DI: Reverse direction of subprogram -> function edge.
Previously, subprograms contained a metadata reference to the function they
described. Because most clients need to get or set a subprogram for a given
function rather than the other way around, this created unneeded inefficiency.

For example, many passes needed to call the function llvm::makeSubprogramMap()
to build a mapping from functions to subprograms, and the IR linker needed to
fix up function references in a way that caused quadratic complexity in the IR
linking phase of LTO.

This change reverses the direction of the edge by storing the subprogram as
function-level metadata and removing DISubprogram's function field.

Since this is an IR change, a bitcode upgrade has been provided.

Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is
attached to the PR.

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

llvm-svn: 252219
2015-11-05 22:03:56 +00:00
..
Argument.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
AssemblyAnnotationWriter.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
Attributes.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
AutoUpgrade.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
BasicBlock.h Vectorize: Remove implicit ilist iterator conversions, NFC 2015-10-19 22:06:09 +00:00
CallingConv.h [IR] Limit bits used for CallingConv::ID, update tests 2015-10-27 21:17:06 +00:00
CallSite.h [IR] Add a data_operand abstraction 2015-11-04 21:05:24 +00:00
CFG.h Move BB succ_iterator to be inside TerminatorInst. NFC. 2015-08-05 17:43:01 +00:00
CMakeLists.txt
Comdat.h AsmWriter: Print the argument names in declarations while debugging 2015-09-27 22:38:50 +00:00
Constant.h Reformat blank lines. 2015-09-22 11:14:39 +00:00
ConstantFolder.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantRange.h [IR] Add a makeNoWrapRegion method to ConstantRange 2015-10-22 03:12:57 +00:00
Constants.h [opaque pointer type]: Pass explicit pointee type when building a constant GEP. 2015-08-21 20:16:51 +00:00
DataLayout.h Revert "Add const to a bunch of Type* in DataLayout. NFC." 2015-07-27 17:15:28 +00:00
DebugInfo.h DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DebugInfoFlags.def Debug Info: Add basic support for external types references. 2015-07-15 17:01:41 +00:00
DebugInfoMetadata.h DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DebugLoc.h
DerivedTypes.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
DiagnosticInfo.h StringRef-ify DiagnosticInfoSampleProfile::Filename 2015-11-02 20:01:13 +00:00
DiagnosticPrinter.h Fix -Wextra-semi warnings. 2015-07-22 20:46:11 +00:00
DIBuilder.h DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
Dominators.h [docs] Update DominatorTree docs to clarify expectations around unreachable blocks 2015-09-23 18:39:37 +00:00
Function.h [IR] Limit bits used for CallingConv::ID, update tests 2015-10-27 21:17:06 +00:00
FunctionInfo.h Restore "Support for ThinLTO function importing and symbol linking." 2015-11-03 00:14:15 +00:00
GetElementPtrTypeIterator.h Roll forward r243250 2015-07-26 19:10:03 +00:00
GlobalAlias.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
GlobalObject.h [opaque pointer types] Add an explicit value type to GlobalObject 2015-09-14 21:47:27 +00:00
GlobalValue.h [opaque pointer types] Add an explicit value type to GlobalObject 2015-09-14 21:47:27 +00:00
GlobalVariable.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
GVMaterializer.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InlineAsm.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
InstIterator.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
InstrTypes.h [IR] Add a data_operand abstraction 2015-11-04 21:05:24 +00:00
Instruction.def Reformat blank lines. 2015-09-22 11:14:39 +00:00
Instruction.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
Instructions.h [IR] Add a data_operand abstraction 2015-11-04 21:05:24 +00:00
InstVisitor.h [WinEH] Add cleanupendpad instruction 2015-09-03 09:09:43 +00:00
IntrinsicInst.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Intrinsics.h [TableGen] Allow TokenTy in intrinsic signatures 2015-09-02 13:36:25 +00:00
Intrinsics.td [WinEH] Delete the old landingpad implementation of Windows EH 2015-10-09 23:34:53 +00:00
IntrinsicsAArch64.td Implement __builtin_thread_pointer 2015-07-28 13:03:31 +00:00
IntrinsicsAMDGPU.td AMDGPU: Add MEM_RAT STORE_TYPED. 2015-10-01 17:51:34 +00:00
IntrinsicsARM.td [ARM][NEON] Use address space in vld([1234]|[234]lane) and vst([1234]|[234]lane) instructions 2015-09-30 10:56:37 +00:00
IntrinsicsBPF.td
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td Addition of interfaces the BE to conform to Table A-2 of ELF V2 ABI V1.1 2015-09-29 17:41:53 +00:00
IntrinsicsSystemZ.td
IntrinsicsWebAssembly.td [WebAssembly] Update wasm builtin functions to match spec changes. 2015-11-05 20:16:59 +00:00
IntrinsicsX86.td revert rev. 252153 due to build failure on ubuntu 2015-11-05 08:55:54 +00:00
IntrinsicsXCore.td
IRBuilder.h IR: Remove implicit iterator conversions from lib/IR, NFC 2015-10-08 23:49:46 +00:00
IRPrintingPasses.h IR: Extract a function 'printLLVMNameWithoutPrefix' from 'PrintLLVMName'. NFC. 2015-07-21 16:50:35 +00:00
LegacyPassManager.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegacyPassManagers.h Reformat blank lines. 2015-09-22 11:14:39 +00:00
LegacyPassNameParser.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LLVMContext.h Introduce !align metadata for load instruction 2015-09-28 17:41:08 +00:00
Mangler.h Remove unused arguments and move ManglerPrefixTy to the implementation. 2015-06-23 14:11:09 +00:00
MDBuilder.h add unpredictable metadata type for control flow 2015-09-02 19:06:43 +00:00
Metadata.def DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
Metadata.h Preserve load alignment and dereferenceable metadata during some transformations 2015-11-02 17:53:51 +00:00
MetadataTracking.h
Module.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
ModuleSlotTracker.h IR: Expose the method 'getLocalSlot' in the module slot tracker. 2015-07-27 22:31:04 +00:00
NoFolder.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
OperandTraits.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Operator.h Add support for fast-math flags to the FCmp instruction. 2015-07-10 12:52:00 +00:00
PassManager.h PM: Print the IR unit's name in debug output. NFC 2015-10-30 22:58:15 +00:00
PassManagerInternal.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PatternMatch.h Revert "[PatternMatch] Switch to use ValueTracking::matchSelectPattern" 2015-11-04 08:36:53 +00:00
PredIteratorCache.h
Statepoint.h [RS4GC] Refactoring to make a later change easier, NFCI 2015-10-08 23:18:38 +00:00
SymbolTableListTraits.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
TrackingMDRef.h
Type.h AsmWriter: Print the argument names in declarations while debugging 2015-09-27 22:38:50 +00:00
TypeBuilder.h
TypeFinder.h Reformat comment lines. 2015-09-22 11:14:12 +00:00
Use.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
UseListOrder.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
User.h Support, IR: silence -Wunused-parameter 2015-10-23 05:26:03 +00:00
Value.def Create Value.def helper. NFC. 2015-06-22 23:48:35 +00:00
Value.h AsmWriter: Print the argument names in declarations while debugging 2015-09-27 22:38:50 +00:00
ValueHandle.h Update/correct comment. 2015-08-03 22:33:50 +00:00
ValueMap.h -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-03 22:30:24 +00:00
ValueSymbolTable.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
Verifier.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00