llvm/lib/IR
Adrian Prantl 28bd5d128c Make it illegal for two Functions to point to the same DISubprogram
As recently discussed on llvm-dev [1], this patch makes it illegal for
two Functions to point to the same DISubprogram and updates
FunctionCloner to also clone the debug info of a function to conform
to the new requirement. To simplify the implementation it also factors
out the creation of inlineAt locations from the Inliner into a
general-purpose utility in DILocation.

[1] http://lists.llvm.org/pipermail/llvm-dev/2017-May/112661.html
<rdar://problem/31926379>

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302469 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-08 21:17:08 +00:00
..
AsmWriter.cpp AMDGPU: Add AMDGPU_HS calling convention 2017-05-02 15:41:10 +00:00
AttributeImpl.h Make getSlotAttributes return an AttributeSet instead of a wrapper list 2017-04-24 22:25:02 +00:00
Attributes.cpp [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
BasicBlock.cpp [IR] Share implementation for pairs of const and non-const methods using const_cast. NFCI 2017-03-27 05:46:58 +00:00
CMakeLists.txt
Comdat.cpp [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
ConstantFold.cpp ConstantFold: Handle gep nonnull, undef as well 2017-05-08 17:37:33 +00:00
ConstantFold.h
ConstantRange.cpp [ConstantRange][SimplifyCFG] Add a helper method to allow SimplifyCFG to determine if a ConstantRange has more than 8 elements without requiring an allocation if the ConstantRange is 64-bits wide. 2017-05-07 22:22:11 +00:00
Constants.cpp [Constants] simplify get true/false code; NFCI 2017-04-16 17:00:21 +00:00
ConstantsContext.h
Core.cpp Prefer addAttr(Attribute::AttrKind) over the AttributeList overload 2017-04-19 17:28:52 +00:00
DataLayout.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
DebugInfo.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
DebugInfoMetadata.cpp Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
DebugLoc.cpp Make it illegal for two Functions to point to the same DISubprogram 2017-05-08 21:17:08 +00:00
DiagnosticInfo.cpp [Stack Protection] Add diagnostic information for why stack protection was applied to a function 2017-02-28 16:02:37 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
Dominators.cpp Revert "Do not verify dominator tree if it has no roots" 2017-01-25 17:15:48 +00:00
Function.cpp [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
GCOV.cpp [gcov] Sort file info before printing it 2017-04-26 00:16:10 +00:00
Globals.cpp [IR] Implement pairs of non-const and const methods using the const version instead of the non-const version. NFCI 2017-03-27 05:47:03 +00:00
GVMaterializer.cpp
InlineAsm.cpp [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Instruction.cpp Update VP prof metadata during inlining. 2017-05-05 00:47:34 +00:00
Instructions.cpp [IR] Abstract away ArgNo+1 attribute indexing as much as possible 2017-05-03 18:17:31 +00:00
IntrinsicInst.cpp Add intrinsics for constrained floating point operations 2017-01-26 23:27:59 +00:00
IRBuilder.cpp Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
IRPrintingPasses.cpp Implement getPassName() for IR printing passes. 2017-03-10 07:09:20 +00:00
LegacyPassManager.cpp
LLVMBuild.txt
LLVMContext.cpp Add !associated metadata. 2017-03-17 22:17:24 +00:00
LLVMContextImpl.cpp Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
LLVMContextImpl.h [APInt] Give the value union a name so we can remove assumptions on VAL being the larger member 2017-05-03 15:46:24 +00:00
Mangler.cpp Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
MDBuilder.cpp Add function importing info from samplepgo profile to the module summary. 2017-02-28 18:09:44 +00:00
Metadata.cpp [Metadata] Fix typos in comments. NFC 2017-04-27 05:48:29 +00:00
MetadataImpl.h
Module.cpp Module::getOrInsertFunction is using C-style vararg instead of variadic templates. 2017-04-11 15:01:18 +00:00
ModuleSummaryIndex.cpp Re-apply r302108, "IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI." 2017-05-04 18:03:25 +00:00
Operator.cpp [IR] Remove some unneeded includes from Operator.h and fix cpp files that were transitively depending on it. NFC 2017-03-20 05:08:41 +00:00
OptBisect.cpp Remove opt-bisect support for "cases" in favor of debug counters 2017-03-11 01:41:03 +00:00
Pass.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
PassManager.cpp
PassRegistry.cpp
ProfileSummary.cpp
Statepoint.cpp Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
SymbolTableListTraitsImpl.h
Type.cpp [IR] Inline Type::getScalarType() by using isVectorTy() and getVectorElementType() that were already available inline. 2017-04-08 05:47:09 +00:00
TypeFinder.cpp [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Use.cpp
User.cpp
Value.cpp Add a new WeakVH value handle; NFC 2017-05-01 17:07:54 +00:00
ValueSymbolTable.cpp [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
ValueTypes.cpp
Verifier.cpp Make it illegal for two Functions to point to the same DISubprogram 2017-05-08 21:17:08 +00:00