summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo
Commit message (Collapse)AuthorAgeFilesLines
* Debug Info Finder|Verifier: handle DbgLoc attached to instructions.Manman Ren2013-08-064-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also remove checking of llvm.dbg.sp since it is not used in generating dwarf. Current state of Finder: DebugInfoFinder tries to list all debug info MDNodes used in a module. To list debug info MDNodes used by an instruction, DebugInfoFinder provides processDeclare, processValue and processLocation to handle DbgDeclareInst, DbgValueInst and DbgLoc attached to instructions. processModule will go through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes used by the CUs. TODO: 1> Finder has a list of CUs, SPs, Types, Scopes and global variables. We need to add a list of variables that are used by DbgDeclareInst and DbgValueInst. 2> MDString fields should be null or isa<MDString> and MDNode fields should be null or isa<MDNode>. We currently use empty string or int 0 to represent null. 3> Go though Verify functions and make sure that they check field types. 4> Clean up existing testing cases to remove llvm.dbg.sp and make sure each testing case has a llvm.dbg.cu. Re-apply r187609 with fix to pass ocaml binding. vmcore.ml generates a debug location with scope being metadata !{}, in verifier we treat this as a null scope. llvm-svn: 187812
* Bugfix for making the DWARF debug strings and labels to code emitted as ↵Carlo Kok2013-08-021-0/+40
| | | | | | secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB (with fix for 64bits msvc) llvm-svn: 187656
* Revert r187597, "Bugfix for making the DWARF debug strings and labels to ↵NAKAMURA Takumi2013-08-021-40/+0
| | | | | | | | code emitted as secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB." It broke x86_64-win32 builder in llvm/test/DebugInfo. llvm-svn: 187642
* Temporarily revert "Debug Info Finder|Verifier: handle DbgLoc attached toEric Christopher2013-08-024-8/+7
| | | | | | | | instructions." in an attempt to bring back some bots. This reverts commit r187609. llvm-svn: 187638
* fix for LLVM debug info on llvm-mips-linux where the label name uses % ↵Carlo Kok2013-08-011-1/+1
| | | | | | instead of L as a prefix. llvm-svn: 187623
* ARM/Hexagon testcases can't compile x86 only testcase. Reverting change to ↵Carlo Kok2013-08-011-2/+2
| | | | | | testcase & fixing check for all. llvm-svn: 187610
* Debug Info Finder|Verifier: handle DbgLoc attached to instructions.Manman Ren2013-08-014-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | Also remove checking of llvm.dbg.sp since it is not used in generating dwarf. Current state of Finder: DebugInfoFinder tries to list all debug info MDNodes used in a module. To list debug info MDNodes used by an instruction, DebugInfoFinder provides processDeclare, processValue and processLocation to handle DbgDeclareInst, DbgValueInst and DbgLoc attached to instructions. processModule will go through all DICompileUnits in llvm.dbg.cu and list debug info MDNodes used by the CUs. TODO: 1> Finder has a list of CUs, SPs, Types, Scopes and global variables. We need to add a list of variables that are used by DbgDeclareInst and DbgValueInst. 2> MDString fields should be null or isa<MDString> and MDNode fields should be null or isa<MDNode>. We currently use empty string or int 0 to represent null. 3> Go though Verify functions and make sure that they check field types. 4> Clean up existing testing cases to remove llvm.dbg.sp and make sure each testing case has a llvm.dbg.cu. llvm-svn: 187609
* DebugInfo: Emit definitions for types with no members.David Blaikie2013-08-011-15/+33
| | | | | | The absence of members was a poor/incorrect proxy for "is definition". llvm-svn: 187607
* change the inlinefnlocalvar testcase so it uses a triple that's not coff ↵Carlo Kok2013-08-011-1/+1
| | | | | | (doesn't seem to matter for the testcase itself, what it tests isn't triple specific), as coff has a slightly different way of emitting what it checks for. llvm-svn: 187604
* Bugfix for making the DWARF debug strings and labels to code emitted as ↵Carlo Kok2013-08-011-0/+40
| | | | | | | | secrel32 instead of long opcodes (only for coff). This makes them debuggable with GDB. fixes Bug 16249 - LLVM generates broken debug info on Windows llvm-svn: 187597
* Move file to X86 and add a triple to fix darwin bots for now.Eric Christopher2013-07-301-1/+1
| | | | | | | The problem is due to the section name being explicitly mentioned in the IR and differing between the two platforms. llvm-svn: 187394
* Fix a truly egregious thinko in anonymous namespace check,Eric Christopher2013-07-291-66/+125
| | | | | | | | update testcase to make sure we generate debug info for walrus by adding a non-trivial constructor and verify that we don't emit an ODR signature for the type. llvm-svn: 187393
* Make sure we don't emit an ODR hash for types with no name and makeEric Christopher2013-07-291-19/+60
| | | | | | sure the comments for each testcase are a bit easier to distinguish. llvm-svn: 187392
* Clarify comments for types contained in anonymous namespaces andEric Christopher2013-07-291-1/+3
| | | | | | odr hashes. llvm-svn: 187391
* Debug Info: enable verifier for testing cases.Manman Ren2013-07-291-2/+2
| | | | llvm-svn: 187375
* Debug Info: update testing cases to pass verifier.Manman Ren2013-07-2910-28/+42
| | | | llvm-svn: 187362
* DwarfDebug: MD5 is always little endian, bswap on big endian platforms.Benjamin Kramer2013-07-271-0/+0
| | | | | | This makes LLVM emit the same signature regardless of host and target endianess. llvm-svn: 187304
* Debug Info Verifier: verify SPs in llvm.dbg.sp.Manman Ren2013-07-2711-31/+50
| | | | | | | | Also always add DIType, DISubprogram and DIGlobalVariable to the list in DebugInfoFinder without checking them, so we can verify them later on. llvm-svn: 187285
* next batch of -disable-debug-info-verifierRafael Espindola2013-07-262-2/+2
| | | | llvm-svn: 187260
* Debug Info Verifier: enable verification of DICompileUnit.Manman Ren2013-07-2633-90/+104
| | | | | | | | We used to call Verify before adding DICompileUnit to the list, and now we remove the check and always add DICompileUnit to the list in DebugInfoFinder, so we can verify them later on. llvm-svn: 187237
* Move this to the X86 directory, unfortunately the hashes are notEric Christopher2013-07-261-0/+0
| | | | | | endian independent. llvm-svn: 187222
* Add preliminary support for hashing DIEs and breaking them intoEric Christopher2013-07-261-0/+116
| | | | | | | | | | | | | | | | type units. Initially this support is used in the computation of an ODR checker for C++. For now we're attaching it to the DIE, but in the future it will be attached to the type unit. This also starts breaking out types into the separation for type units, but without actually splitting the DIEs. In preparation for hashing the DIEs this adds a DIEString type that contains a StringRef with the string contained at the label. llvm-svn: 187213
* Debug Info: improve the verifier to check field types.Manman Ren2013-07-255-53/+57
| | | | | | | Make sure the context field of DIType is MDNode. Fix testing cases to make them pass the verifier. llvm-svn: 187150
* Current batch of -disable-debug-info-verifier.Rafael Espindola2013-07-253-4/+4
| | | | llvm-svn: 187130
* Debug Info: improve the verifier to check field types.Manman Ren2013-07-2519-78/+82
| | | | | | | | Make sure the context and type fields are MDNodes. We will generate verification errors if those fields are non-empty strings. Fix testing cases to make them pass the verifier. llvm-svn: 187106
* Replace the "NoFramePointerElimNonLeaf" target option with a function attribute.Bill Wendling2013-07-251-2/+2
| | | | | | | | There's no need to specify a flag to omit frame pointer elimination on non-leaf nodes...(Honestly, I can't parse that option out.) Use the function attribute stuff instead. llvm-svn: 187093
* Update testing cases to pass debug info verifier.Manman Ren2013-07-2412-80/+87
| | | | llvm-svn: 187083
* Update testing cases to pass debug info verifier.Manman Ren2013-07-246-57/+62
| | | | llvm-svn: 187066
* Debug Info: improve the Finder.Manman Ren2013-07-241-1/+1
| | | | | | | Improve the Finder to handle context of a DIVariable used by DbgValueInst. Fix testing cases to make them pass the verifier. llvm-svn: 187052
* Debug Info: improve the Finder.Manman Ren2013-07-231-1/+1
| | | | | | | Improve the Finder to handle context of a DIVariable. If Scope is a DICompileUnit, add it to the list of CUs. llvm-svn: 187003
* llvm/test/DebugInfo/X86/dbg-value-range.ll: Add ↵NAKAMURA Takumi2013-07-231-1/+1
| | | | | | -disable-debug-info-verifier, too, since r186902. llvm-svn: 186930
* Debug Info Finder: use processDeclare and processValue to list debug infoManman Ren2013-07-237-7/+7
| | | | | | | | | | | MDNodes used by DbgDeclareInst and DbgValueInst. Another 16 testing cases failed and they are disabled with -disable-debug-info-verifier. A total of 34 cases are disabled with -disable-debug-info-verifier and will be corrected. llvm-svn: 186902
* Recommit r186217 with testcase fix:Bill Wendling2013-07-221-3/+3
| | | | | | | | | Use the function attributes to pass along the stack protector buffer size. Now that we have robust function attributes, don't use a command line option to specify the stack protecto buffer size. llvm-svn: 186863
* Try to appease the bots.Manman Ren2013-07-192-2/+2
| | | | llvm-svn: 186653
* Debug Info: enable verifying by default and disable testing cases that fail.Manman Ren2013-07-198-10/+10
| | | | | | | | | | | | | | | | | | | 1> Use DebugInfoFinder to find debug info MDNodes. 2> Add disable-debug-info-verifier to disable verifying debug info. 3> Disable verifying for testing cases that fail (will update the testing cases later on). 4> MDNodes generated by clang can have empty filename for TAG_inheritance and TAG_friend, so DIType::Verify is modified accordingly. Note that DebugInfoFinder does not list all debug info MDNode. For example, clang can generate: metadata !{i32 786468}, which will fail to verify. This MDNode is used by debug info but not included in DebugInfoFinder. This MDNode is generated as a temporary node in DIBuilder::createFunction Value *TElts[] = { GetTagConstant(VMContext, DW_TAG_base_type) }; MDNode::getTemporary(VMContext, TElts) llvm-svn: 186634
* Further simplify test case from r186119/r186035.David Blaikie2013-07-151-123/+94
| | | | llvm-svn: 186356
* In response to dblaikie's comment on r186035, replacing theAdrian Prantl2013-07-111-136/+163
| | | | | | | | (reduced LLVM IR) + (full source in comment) with the (full LLVM IR) + (reduced src in comment) llvm-svn: 186119
* Add a comment.Adrian Prantl2013-07-101-0/+39
| | | | llvm-svn: 186035
* Add a testcase for r186014.Adrian Prantl2013-07-101-0/+139
| | | | llvm-svn: 186031
* Un-break the buildbot by tweaking the indirection flag.Adrian Prantl2013-07-101-0/+102
| | | | | | Pulled in a testcase from the debuginfo-test suite. llvm-svn: 185993
* move test into the appropriate subdir.Adrian Prantl2013-07-091-0/+60
| | | | llvm-svn: 185972
* Reapply an improved version of r180816/180817.Adrian Prantl2013-07-093-5/+115
| | | | | | | | | | | | | | | Change the informal convention of DBG_VALUE machine instructions so that we can express a register-indirect address with an offset of 0. The old convention was that a DBG_VALUE is a register-indirect value if the offset (operand 1) is nonzero. The new convention is that a DBG_VALUE is register-indirect if the first operand is a register and the second operand is an immediate. For plain register values the combination reg, reg is used. MachineInstrBuilder::BuildMI knows how to build the new DBG_VALUES. rdar://problem/13658587 llvm-svn: 185966
* DebugInfo: Consider global variables without locations to be validDavid Blaikie2013-07-041-0/+38
| | | | | | | | | | | | | | | | | 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. llvm-svn: 185675
* Trying to fix the botsManman Ren2013-07-031-2/+6
| | | | llvm-svn: 185489
* Debug Info: use module flag to set up Dwarf version.Manman Ren2013-07-021-0/+27
| | | | | | | | Correctly handles ref_addr depending on the Dwarf version. Emit Dwarf with version from module flag. TODO: turn on/off features depending on the Dwarf version. llvm-svn: 185484
* Add 'REQUIRES: object-emission' to DebugInfo/inlined-arguments.ll.Jyotsna Verma2013-07-021-0/+2
| | | | llvm-svn: 185465
* [PowerPC] Support TLS variables in debug infoUlrich Weigand2013-07-022-3/+40
| | | | | | | | | This adds an implementation of getDebugThreadLocalSymbol for (64-bit) PowerPC. This needs to return a generic MCExpr since on ppc64, we need to add a bias of 0x8000 to the value returned by the R_PPC64_DTPREL64 relocation. llvm-svn: 185461
* PR14728: DebugInfo: TLS variables with -gsplit-dwarfDavid Blaikie2013-07-011-0/+31
| | | | llvm-svn: 185398
* PR16493: DebugInfo with TLS on PPC crashing due to invalid relocationDavid Blaikie2013-07-013-2/+29
| | | | | | | | Restrict the current TLS support to X86 ELF for now. Test that we don't produce it on PPC & we can flesh that test case out with the right thing once someone implements it. llvm-svn: 185389
* llvm-symbolizer: Recognize a drive letter on win32. Then "REQUIRES: shell" ↵NAKAMURA Takumi2013-07-011-2/+0
| | | | | | | can be removed. FIXME: Could we use llvm::sys::Path here? llvm-svn: 185322
OpenPOWER on IntegriCloud