llvm-project/llvm/lib/IR
Manman Ren 60352032bf Debug Info: Use identifier to reference DIType in base type field of
ptr_to_member.

We introduce a new class DITypeRef that represents a reference to a DIType.
It wraps around a Value*, which can be either an identifier in MDString
or an actual MDNode. The class has a helper function "resolve" that
finds the actual MDNode for a given DITypeRef.

We specialize getFieldAs to return a field that is a reference to a
DIType. To correctly access the base type field of ptr_to_member,
getClassType now calls getFieldAs<DITypeRef> to return a DITypeRef.

Also add a typedef for DITypeIdentifierMap and a helper
generateDITypeIdentifierMap in DebugInfo.h. In DwarfDebug.cpp, we keep
a DITypeIdentifierMap and call generateDITypeIdentifierMap to actually
populate the map.

Verifier is updated accordingly.

llvm-svn: 190081
2013-09-05 18:48:31 +00:00
..
AsmWriter.cpp Target/X86: Add explicit Win64 and System V/x86-64 calling conventions. 2013-07-12 06:02:35 +00:00
AsmWriter.h Re-implement DebugIR in a way that does not subclass AssemblyWriter: 2013-05-23 22:34:33 +00:00
AttributeImpl.h Add a AttributeSetImpl::dump function. 2013-08-02 22:34:30 +00:00
Attributes.cpp Add function attribute 'optnone'. 2013-08-23 11:53:55 +00:00
AutoUpgrade.cpp Remove trailing whitespace, fix file path in comment 2013-07-20 17:46:00 +00:00
BasicBlock.cpp
CMakeLists.txt Move TargetTransformInfo to live under the Analysis library. This no 2013-01-07 03:08:10 +00:00
ConstantFold.cpp Respect address space sizes in isEliminableCastPair. 2013-07-30 22:27:10 +00:00
ConstantFold.h
Constants.cpp Don't assert if we can't constant fold extract/insertvalue 2013-07-10 22:51:01 +00:00
ConstantsContext.h Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
Core.cpp Expose the RTDyldMemoryManager through the C API. This allows clients of 2013-05-22 02:46:43 +00:00
DIBuilder.cpp Debug Info: Use identifier to reference DIType in base type field of 2013-09-05 18:48:31 +00:00
DataLayout.cpp Minor code simplification suggested by Duncan 2013-07-27 19:22:28 +00:00
DebugInfo.cpp Debug Info: Use identifier to reference DIType in base type field of 2013-09-05 18:48:31 +00:00
DebugLoc.cpp
Dominators.cpp
Function.cpp Extend 'readonly' and 'readnone' to work on function arguments as well as 2013-07-06 00:29:58 +00:00
GCOV.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
GVMaterializer.cpp
Globals.cpp Introduce non-const overloads for GlobalAlias::{get,resolve}AliasedGlobal. 2013-08-19 23:13:33 +00:00
IRBuilder.cpp
InlineAsm.cpp Add static cast to unsigned char whenever a character classification function is called with a signed char argument, in order to avoid assertions in Windows Debug configuration. 2013-02-12 21:21:59 +00:00
Instruction.cpp Fix a bug in mayHaveSideEffects. Functions that do not return are now considered as instructions with side effects. 2013-02-19 20:02:09 +00:00
Instructions.cpp Add parentheses to silence gcc warning. 2013-07-31 04:07:28 +00:00
IntrinsicInst.cpp
LLVMBuild.txt
LLVMContext.cpp Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. 2013-03-06 17:48:48 +00:00
LLVMContextImpl.cpp Revert "Rename LLVMContext diagnostic handler types and functions." 2013-02-11 05:37:07 +00:00
LLVMContextImpl.h Cache the result of Function::getIntrinsicID() in a DenseMap attached to the LLVMContext. 2013-03-01 18:48:54 +00:00
LeakDetector.cpp
LeaksContext.h
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Metadata.cpp Use SmallVectorImpl& instead of SmallVector to avoid repeating small vector size. 2013-07-14 04:42:23 +00:00
Module.cpp Make these methods const correct. 2013-07-25 02:50:08 +00:00
Pass.cpp Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
PassManager.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-03 15:07:05 +00:00
PassRegistry.cpp Use an RWMutex instead of a Mutex in PassRegistry. 2013-07-03 18:38:08 +00:00
PrintModulePass.cpp Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Add ArrayRef constructor from None, and do the cleanups that this constructor enables 2013-05-05 00:40:33 +00:00
TypeFinder.cpp Move TypeFinder.h into the IR tree, it clearly belongs with the IR library. 2013-01-07 15:43:51 +00:00
Use.cpp Fix Casting 2013-01-14 21:04:37 +00:00
User.cpp
Value.cpp Fix a bug where we would corrupt the offset when evaluating 2013-08-25 10:46:39 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp [Mips][msa] Value types for MSA support. 2013-08-13 22:34:26 +00:00
Verifier.cpp Add function attribute 'optnone'. 2013-08-23 11:53:55 +00:00