1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/include/llvm/IR
Keno Fischer 8675f668b9 [Cloning] Take another pass at properly cloning debug info
Summary:
In rL302576, DISubprograms gained the constraint that a !dbg attachments to functions must
have a 1:1 mapping to DISubprograms. As part of that change, the function cloning support
was adjusted to attempt to enforce this invariant during cloning. However, there
were several problems with the implementation. Part of these were fixed in rL304079.
However, there was a more fundamental problem with these changes, namely that it
bypasses the matadata value map, causing the cloned metadata to be a mix of metadata
pointing to the new suprogram (where manual code was added to fix those up) and the
old suprogram (where this was not the case). This mismatch could cause a number of
different assertion failures in the DWARF emitter. Some of these are given at
https://github.com/JuliaLang/julia/issues/22069, but some others have been observed
as well. Attempt to rectify this by partially reverting the manual DI metadata fixup,
and instead using the standard value map approach. To retain the desired semantics
of not duplicating the compilation unit and inlined subprograms, explicitly freeze
these in the value map.

Reviewers: dblaikie, aprantl, GorNishanov, echristo

Reviewed By: aprantl

Subscribers: llvm-commits

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

llvm-svn: 304226
2017-05-30 18:28:30 +00:00
..
Argument.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
AssemblyAnnotationWriter.h
Attributes.h [IR] Switch AttributeList to use an array for O(1) access 2017-05-23 17:01:48 +00:00
Attributes.td Add speculatable function attribute 2017-04-28 20:25:27 +00:00
AutoUpgrade.h Fix auto-upgrade of TBAA tags in Bitcode Reader 2016-09-14 22:29:59 +00:00
BasicBlock.h [IR] Add an iterator and range accessor for the PHI nodes of a basic 2017-05-26 03:10:00 +00:00
CallingConv.h [MSP430] Generate EABI-compliant libcalls 2017-05-11 19:56:14 +00:00
CallSite.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
CFG.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
CMakeLists.txt IR: Rename the tablegen'd Attributes file to .gen 2016-09-29 03:35:19 +00:00
Comdat.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Constant.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
ConstantFolder.h [IR] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 22:25:16 +00:00
ConstantRange.h [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.h SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
DataLayout.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
DebugInfo.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
DebugInfoFlags.def Revert "Debug Info: Add basic support for external types references." 2017-03-13 22:56:14 +00:00
DebugInfoMetadata.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-15 21:57:41 +00:00
DebugLoc.h [Cloning] Take another pass at properly cloning debug info 2017-05-30 18:28:30 +00:00
DerivedTypes.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
DerivedUser.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
DiagnosticInfo.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-15 21:57:41 +00:00
DiagnosticPrinter.h [IR] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 22:25:16 +00:00
DIBuilder.h Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
Dominators.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
Function.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
GetElementPtrTypeIterator.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
GlobalAlias.h De-virtualize GlobalValue 2017-05-11 21:14:29 +00:00
GlobalIFunc.h De-virtualize GlobalValue 2017-05-11 21:14:29 +00:00
GlobalIndirectSymbol.h [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
GlobalObject.h De-virtualize GlobalValue 2017-05-11 21:14:29 +00:00
GlobalValue.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
GlobalVariable.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
GVMaterializer.h [IR] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 22:25:16 +00:00
InlineAsm.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
InstIterator.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
InstrTypes.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Instruction.def [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Instruction.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Instructions.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
InstVisitor.h [IR/Analysis] Defend against getting slightly wrong template arguments 2017-02-07 03:17:30 +00:00
IntrinsicInst.h Add constrained intrinsics for some libm-equivalent operations 2017-05-25 21:31:00 +00:00
Intrinsics.h Support arbitrary address space pointers in masked gather/scatter intrinsics. 2017-05-03 12:28:54 +00:00
Intrinsics.td Add constrained intrinsics for some libm-equivalent operations 2017-05-25 21:31:00 +00:00
IntrinsicsAArch64.td [AArch64] Add support for lowering bitreverse to the rbit instruction. 2017-01-10 17:20:33 +00:00
IntrinsicsAMDGPU.td Resubmit r303859 with test fixed. 2017-05-26 20:38:26 +00:00
IntrinsicsARM.td [ARM] ACLE Chapter 9 intrinsics 2017-05-04 07:31:28 +00:00
IntrinsicsBPF.td
IntrinsicsHexagon.td [Hexagon] Add intrinsics for masked vector stores 2017-02-22 21:23:09 +00:00
IntrinsicsMips.td
IntrinsicsNVVM.td [NVPTX] Add intrinsics to support named barriers. 2017-01-28 16:38:15 +00:00
IntrinsicsPowerPC.td [PPC] Lower load acquire/seq_cst trailing fence to cmp + bne + isync. 2017-05-16 20:18:06 +00:00
IntrinsicsSystemZ.td [SystemZ] Support floating-point control register instructions 2016-12-02 18:21:53 +00:00
IntrinsicsWebAssembly.td [WebAssembly] Update grow_memory's return type. 2017-01-18 01:02:45 +00:00
IntrinsicsX86.td [X86][LWP] Add llvm support for LWP instructions (reapplied). 2017-05-03 15:51:39 +00:00
IntrinsicsXCore.td
IRBuilder.h Introduce experimental generic intrinsics for horizontal vector reductions. 2017-05-09 10:43:25 +00:00
IRPrintingPasses.h [PM] Re-instate r279227 and r279228 with a fix to the way the templating 2016-08-19 18:36:06 +00:00
LegacyPassManager.h [LTO] Print time-passes information at conclusion of LTO codegen 2017-05-16 09:43:21 +00:00
LegacyPassManagers.h Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
LegacyPassNameParser.h Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
LLVMContext.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
Mangler.h Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
MDBuilder.h Add function importing info from samplepgo profile to the module summary. 2017-02-28 18:09:44 +00:00
Metadata.def [IR] Remove the DIExpression field from DIGlobalVariable. 2016-12-20 02:09:43 +00:00
Metadata.h DebugInfo: Do not emit empty CUs 2017-05-26 18:52:56 +00:00
Module.h Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
ModuleSlotTracker.h
ModuleSummaryIndex.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
ModuleSummaryIndexYAML.h 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
NoFolder.h [IR] Fix some Clang-tidy modernize-use-default, modernize-use-equal-delete and Include What You Use warnings; other minor fixes (NFC). 2016-11-23 22:25:16 +00:00
OperandTraits.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Operator.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
OptBisect.h Remove opt-bisect support for "cases" in favor of debug counters 2017-03-11 01:41:03 +00:00
PassManager.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
PassManagerInternal.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
PatternMatch.h [InstSimplify] Make m_Not work for xor -1, X 2017-05-18 20:27:32 +00:00
PredIteratorCache.h Make PredIteratorCache size() logically const. Do not require copying predecessors to get size. 2017-03-14 11:25:45 +00:00
ProfileSummary.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
Statepoint.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
SymbolTableListTraits.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
TrackingMDRef.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
Type.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
TypeBuilder.h
TypeFinder.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
Use.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
UseListOrder.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
User.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Value.def [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Value.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
ValueHandle.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
ValueMap.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
ValueSymbolTable.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-10 23:41:30 +00:00
Verifier.h [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00