llvm/lib/IR
David Blaikie 09bb56f0a0 DebugInfo: Consider global variables without locations to be valid
We were being a bit too aggresive here in classifying global variables
with no global reference or constant value to be invalid - this would
cause LLVM to not emit the DWARF description of the global variable if
it had been optimized away, which isn't helpful for users who might
benefit from the global variable's description even if there's no
location information.

This also fixes a crasher issue here that I was unable to reduce a test
case for - involving a using decl (& subsequent
DW_TAG_imported_declaration ) of such a global variable that, once
optimized away, would crash when an attempt to emit the imported
declaration was made.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185675 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-04 23:15:18 +00:00
..
AsmWriter.cpp Re-implement DebugIR in a way that does not subclass AssemblyWriter: 2013-05-23 22:34:33 +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 Now that the underlying issue is fixed, revert r180750 and r180722. 2013-05-01 13:07:03 +00:00
Attributes.cpp Added support for the Builtin attribute. 2013-06-27 00:25:01 +00:00
AutoUpgrade.cpp
BasicBlock.cpp
CMakeLists.txt Move TargetTransformInfo to live under the Analysis library. This no 2013-01-07 03:08:10 +00:00
ConstantFold.cpp ConstantFold: Check that truncating the other side is safe under a sext when trying to remove a sext from a compare. 2013-06-30 13:47:43 +00:00
ConstantFold.h
Constants.cpp Fix DeleteDeadVarargs not to crash on functions referenced by BlockAddresses 2013-06-13 19:51:17 +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
DataLayout.cpp Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size. 2013-07-04 01:31:24 +00:00
DebugInfo.cpp DebugInfo: Consider global variables without locations to be valid 2013-07-04 23:15:18 +00:00
DebugLoc.cpp
DIBuilder.cpp Debug Info: cleanup 2013-07-02 18:37:35 +00:00
Dominators.cpp
Function.cpp Add CodeGen support for functions that always return arguments via a new parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). 2013-04-20 05:14:40 +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
Globals.cpp Added instance variable/initializers/getter/setters for new keyword externally initialized to GlobalVariable. No *TRUE* functionality change. 2013-02-03 21:54:38 +00:00
GVMaterializer.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 Added support for the Builtin attribute. 2013-06-27 00:25:01 +00:00
IntrinsicInst.cpp
IRBuilder.cpp
LeakDetector.cpp
LeaksContext.h
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
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Metadata.cpp Struct-path aware TBAA: update getMostGenericTBAA 2013-04-22 23:00:44 +00:00
Module.cpp Remove dead code. 2013-05-15 22:41:28 +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 Speed up Value::isUsedInBasicBlock() for long use lists. 2013-05-14 23:45:56 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp
Verifier.cpp IRVerifier: Correctly check attribute types 2013-07-02 03:28:10 +00:00