summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite test to use llvm-dwarfdump instead of checking for asm comments.Adrian Prantl2015-12-171-4/+12
| | | | llvm-svn: 255912
* Move llvm/test/DebugInfo/live-debug-values.ll into X86, due to target triple.NAKAMURA Takumi2015-12-161-0/+0
| | | | llvm-svn: 255834
* Reland "[llvm-readobj] Simplify usage of -codeview flag"Reid Kleckner2015-12-164-10/+3
| | | | | | Relands r255790 with fixed tests. llvm-svn: 255793
* Recommit LiveDebugValues pass after fixing a couple of minor issues.Vikram TV2015-12-168-5/+723
| | | | llvm-svn: 255759
* Revert "Implement a new pass - LiveDebugValues - to compute the set of live ↵Mehdi Amini2015-12-098-723/+5
| | | | | | | | | | | DEBUG_VALUEs at each basic block and insert them. Reviewed and accepted at: http://reviews.llvm.org/D11933" This reverts commit r255096. Break the bots: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/16378/ From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 255101
* Implement a new pass - LiveDebugValues - to compute the set of live ↵Vikram TV2015-12-098-5/+723
| | | | | | DEBUG_VALUEs at each basic block and insert them. Reviewed and accepted at: http://reviews.llvm.org/D11933 llvm-svn: 255096
* dwarfdump: Correctly indentify the indicies for DWP recordsDavid Blaikie2015-12-031-4/+4
| | | | | | The indicies are one-based, not zero-based, per the spec. llvm-svn: 254626
* llvm/test/DebugInfo/X86/safestack-byval.ll: Give an explicit triple for now. ↵NAKAMURA Takumi2015-12-011-4/+1
| | | | | | | | It crashes for targeting *-win32. Also revert r254375 and r254361. llvm-svn: 254397
* Move llvm/test/DebugInfo/Generic/safestack-byval.ll to X86. It depends on ↵NAKAMURA Takumi2015-12-011-0/+0
| | | | | | x86-64. llvm-svn: 254396
* [Hexagon] Disabling failing safestack testColin LeMahieu2015-12-011-0/+1
| | | | llvm-svn: 254375
* llvm/test/DebugInfo/Generic/safestack-byval.ll is using tls.NAKAMURA Takumi2015-12-011-0/+2
| | | | llvm-svn: 254361
* Extend debug info for function parameters in SDAG.Evgeniy Stepanov2015-12-011-0/+91
| | | | | | | | | | | | | SDAG currently can emit debug location for function parameters when an llvm.dbg.declare points to either a function argument SSA temp, or to an AllocaInst. This change extends this logic by adding a fallback case when neither of the above is true. This is required for SafeStack, which may copy the contents of a byval function argument into something that is not an alloca, and then describe the target as the new location of the said argument. llvm-svn: 254352
* Removing specific target from the generic testArtyom Skrobov2015-11-191-2/+2
| | | | llvm-svn: 253562
* Revert "Change memcpy/memset/memmove to have dest and source alignments."Pete Cooper2015-11-1910-23/+23
| | | | | | | | | | This reverts commit r253511. This likely broke the bots in http://lab.llvm.org:8011/builders/clang-ppc64-elf-linux2/builds/20202 http://bb.pgr.jp/builders/clang-3stage-i686-linux/builds/3787 llvm-svn: 253543
* Change memcpy/memset/memmove to have dest and source alignments.Pete Cooper2015-11-1810-23/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note, this was reviewed (and more details are in) http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/312083.html These intrinsics currently have an explicit alignment argument which is required to be a constant integer. It represents the alignment of the source and dest, and so must be the minimum of those. This change allows source and dest to each have their own alignments by using the alignment attribute on their arguments. The alignment argument itself is removed. There are a few places in the code for which the code needs to be checked by an expert as to whether using only src/dest alignment is safe. For those places, they currently take the minimum of src/dest alignments which matches the current behaviour. For example, code which used to read: call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 500, i32 8, i1 false) will now read: call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 8 %dest, i8* align 8 %src, i32 500, i1 false) For out of tree owners, I was able to strip alignment from calls using sed by replacing: (call.*llvm\.memset.*)i32\ [0-9]*\,\ i1 false\) with: $1i1 false) and similarly for memmove and memcpy. I then added back in alignment to test cases which needed it. A similar commit will be made to clang which actually has many differences in alignment as now IRBuilder can generate different source/dest alignments on calls. In IRBuilder itself, a new argument was added. Instead of calling: CreateMemCpy(Dst, Src, getInt64(Size), DstAlign, /* isVolatile */ false) you now call CreateMemCpy(Dst, Src, getInt64(Size), DstAlign, SrcAlign, /* isVolatile */ false) There is a temporary class (IntegerAlignment) which takes the source alignment and rejects implicit conversion from bool. This is to prevent isVolatile here from passing its default parameter to the source alignment. Note, changes in future can now be made to codegen. I didn't change anything here, but this change should enable better memcpy code sequences. Reviewed by Hal Finkel. llvm-svn: 253511
* Removing specific target from the generic testArtyom Skrobov2015-11-181-2/+2
| | | | llvm-svn: 253479
* Stop producing .data.rel sections.Rafael Espindola2015-11-181-2/+2
| | | | | | | | | | | | | | | | | If a section is rw, it is irrelevant if the dynamic linker will write to it or not. It looks like llvm implemented this because gcc was doing it. It looks like gcc implemented this in the hope that it would put all the relocated items close together and speed up the dynamic linker. There are two problem with this: * It doesn't work. Both bfd and gold will map .data.rel to .data and concatenate the input sections in the order they are seen. * If we want a feature like that, it can be implemented directly in the linker since it knowns where the dynamic relocations are. llvm-svn: 253436
* dwarfdump: support indexed string dumping in dwp based on the STR_OFFSETS ↵David Blaikie2015-11-171-2/+1
| | | | | | component of the index llvm-svn: 253392
* dwarfdump: Reference the appropriate line table segment when dumping dwp filesDavid Blaikie2015-11-171-2/+14
| | | | | | Also improves .dwo type unit dumping which didn't handle this either. llvm-svn: 253377
* Update DebugInfo tests for the change in DEBUG_VALUE output in r253338.Dan Gohman2015-11-177-9/+9
| | | | llvm-svn: 253340
* dwarfdump: Use the index to find the right abbrev offset in DWP filesDavid Blaikie2015-11-172-7/+24
| | | | llvm-svn: 253277
* Fix r253186 test caseKeno Fischer2015-11-161-1/+2
| | | | | | | Referencing a DILocation whose scope is a different subprogram causes an assertion failure. llvm-svn: 253187
* [DIBuilder] Make createReferenceType take size and alignKeno Fischer2015-11-161-0/+46
| | | | | | | | | | | | | | | | | | Summary: Since we're passing references to dbg.value as pointers, we need to have the frontend properly declare their sizes and alignments (as it already does for regular pointers) in preparation for my upcoming patch to have the verifer check that the sizes agree. Also augment the backend logic that skips actually emitting this information into DWARF such that it also handles reference types. Reviewers: aprantl, dexonsmith, dblaikie Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D14275 llvm-svn: 253186
* dwarfdump: Add support for dumping the table contents of DWP indexesDavid Blaikie2015-11-131-10/+10
| | | | | | | | | | | | | This is a recommit of 252842 which was reverted in 252859. The issue was using %s format specifier for a StringRef - used Format's left_justify(StringRef, int) instead. It'd be nice to have __attribute__((format(..))) on llvm::format, but apparently it's only implemented for c-style variadics, not C++ variadic templates. Perhaps we could fix that & conditionalize the attribute on such... llvm-svn: 253065
* Re-apply "[mips] Use correct frame register for DWARF info when dynamically ↵Vasileios Kalintiris2015-11-122-0/+281
| | | | | | | | | realigning the stack."" r252219 reversed the direction of subprogram -> function edge. Fixed the IR to account for this. llvm-svn: 252895
* Revert "[mips] Use correct frame register for DWARF info when dynamically ↵Vasileios Kalintiris2015-11-122-281/+0
| | | | | | | | | realigning the stack." This reverts commit r252882. LLParser complains for invalid field 'function' in DISubprogram. llvm-svn: 252884
* [mips] Use correct frame register for DWARF info when dynamically realigning ↵Vasileios Kalintiris2015-11-122-0/+281
| | | | | | | | | | | | | | | | | | | the stack. Summary: This patch overrides TargetFrameLowering::getFrameIndexReference() in order to specify the correct register when the function needs dynamic stack realignment. The values returned from this function are used in order to create DW_AT_locations for DWARF info. These locations would use the wrong registers as it's been reported in PR25028. Reviewers: dsanders Subscribers: dean, llvm-commits Differential Revision: http://reviews.llvm.org/D13511 llvm-svn: 252882
* dwarfdump: Added macro support to llvm-dwarfdump tool.Amjad Aboud2015-11-125-0/+44
| | | | | | | | Added "macro" option to "-debug-dump" flag, which trigger parsing and dumping of the ".debug_macinfo" section. Differential Revision: http://reviews.llvm.org/D14294 llvm-svn: 252866
* Mostly revert 252842 due to failures on some buildbots.David Blaikie2015-11-121-10/+10
| | | | | | | | | | | | | | I imagine there's some UB in here somewhere, though Valgrind doesn't seem to have picked it up (not sure if I have a working asan build right now to test there). GDB bot seems to be crashing: http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/26267/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test Hexagon ELF bot is, presumably, just getting different output: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/32927/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test llvm-svn: 252859
* dwarfdump: Dump the contents of DWP indexesDavid Blaikie2015-11-122-13/+12
| | | | llvm-svn: 252842
* dwarfdump: DWP type unit index dumping skeletonDavid Blaikie2015-11-111-5/+12
| | | | llvm-svn: 252786
* dwarfdump: First piece of support for DWP dumpingDavid Blaikie2015-11-112-0/+19
| | | | | | Just a tiny piece of index dumping - the header in this instance. llvm-svn: 252781
* Emit discriminator for inlined callsites.Dehao Chen2015-11-111-0/+52
| | | | | | | | | | | | Summary: Inlined callsites need to be emitted in debug info so that sample profile can be annotated to the correct inlined instance. Reviewers: dnovillo, dblaikie Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D14511 llvm-svn: 252768
* test/DebugInfo/ARM/prologue_end.ll references thumbv1, which is invalid.Artyom Skrobov2015-11-111-1/+1
| | | | | | | | The committer didn't respond at http://reviews.llvm.org/D14338, so we've got to fix this for them. This test doesn't pass with thumbv6, so I suppose what they meant is thumbv7. llvm-svn: 252754
* DI: Reverse direction of subprogram -> function edge.Peter Collingbourne2015-11-05206-647/+647
| | | | | | | | | | | | | | | | | | | | | | | Previously, subprograms contained a metadata reference to the function they described. Because most clients need to get or set a subprogram for a given function rather than the other way around, this created unneeded inefficiency. For example, many passes needed to call the function llvm::makeSubprogramMap() to build a mapping from functions to subprograms, and the IR linker needed to fix up function references in a way that caused quadratic complexity in the IR linking phase of LTO. This change reverses the direction of the edge by storing the subprogram as function-level metadata and removing DISubprogram's function field. Since this is an IR change, a bitcode upgrade has been provided. Fixes PR23367. An upgrade script for textual IR for out-of-tree clients is attached to the PR. Differential Revision: http://reviews.llvm.org/D14265 llvm-svn: 252219
* Remove windows line endings introduced by r252177. NFC.Tim Northover2015-11-054-172/+172
| | | | llvm-svn: 252217
* [DebugInfo] Fix ARM/AArch64 prologue_end position. Related to D11268.Oleg Ranevskyy2015-11-054-0/+172
| | | | | | | | | | | | | | | | | | | Summary: This review is related to another review request http://reviews.llvm.org/D11268, does the same and merely fixes a couple of issues with it. D11268 is quite old and has merge conflicts against the current trunk. This request - rebases D11268 onto the new trunk; - resolves the merge conflicts; - fixes the prologue_end tests, which do not pass due to the subprogram definitions not marked as distinct. Reviewers: echristo, rengolin, kubabrecka Subscribers: aemerson, rengolin, jyknight, dsanders, llvm-commits, asl Differential Revision: http://reviews.llvm.org/D14338 llvm-svn: 252177
* Fix the test case for Windows.Alexey Samsonov2015-11-041-1/+1
| | | | llvm-svn: 252027
* [llvm-symbolizer] Improve the test for missing input file.Alexey Samsonov2015-11-041-1/+3
| | | | llvm-svn: 252020
* [LLVMSymbolize] Use symbol table only if function linkage name was requested.Alexey Samsonov2015-10-261-1/+1
| | | | | | | Now it's enough to just specify -functions=short without additionally providing -use-symbol-table=false. llvm-svn: 251339
* s/NumFiles/NumStreams/David Majnemer2015-10-151-1/+1
| | | | llvm-svn: 250357
* [llvm-pdbdump] Provide a mechanism to dump the raw contents of a PDBDavid Majnemer2015-10-154-7/+19
| | | | | | | | | A PDB can be thought of as a very simple file system. It is occasionally illuminating to see the contents of the underlying files. Differential Revision: http://reviews.llvm.org/D13674 llvm-svn: 250356
* [Debug] Look through bitcasts to find argument registersOliver Stannard2015-10-121-0/+45
| | | | | | | | | | On targets where f32 is not legal, we have to look through a BITCAST SDNode to find the register that an argument is stored in when emitting debug info, or we will not be able to emit a DW_AT_location for it. Differential Revision: http://reviews.llvm.org/D13005 llvm-svn: 250056
* Move test back to Generic now it's fixed the right way (thanks Eric!)David Blaikie2015-10-071-0/+0
| | | | | | | | I knee-jerk tried to fix this in completely the wrong way - it's not an CPU limitation, but an OS/object file type one, so moving it into a CPU-specific classification didn't help at all. llvm-svn: 249562
* Remove the comdat-ness from the testcase as it won't lower properlyEric Christopher2015-10-071-3/+1
| | | | | | | on darwin with it since darwin doesn't have comdat and it isn't necessary for the testcase. llvm-svn: 249504
* Move test to X86-specific due to some IR invalid on other targetsDavid Blaikie2015-10-071-0/+0
| | | | llvm-svn: 249489
* DebugInfo: Include the decl_line/decl_file in subprogram definitions if they ↵David Blaikie2015-10-073-1/+98
| | | | | | | | | | | | | | | differ from those in the declaration This is handy for some AutoFDO stuff, and seems like a minor improvement to correctness (otherwise a debug info consumer might think the decl line/file of the def was the same as that of the declaration - though what a consumer might use that for, I'm not sure - maybe "list <func>" would've misbehaved with the old behavior?) and at a minor cost (in my experiment, with fission, without type units, without compression, 0.01% growth in debug info in the executable/objects, 0.02% growth in the .dwo files). llvm-svn: 249487
* [Hexagon] XFAILing test while diagnosing backend error.Colin LeMahieu2015-10-011-0/+1
| | | | llvm-svn: 249088
* [Hexagon] XFAILing test while diagnosing backend error.Colin LeMahieu2015-10-011-0/+1
| | | | llvm-svn: 249075
* Move dw_op_minus test to DebugInfo/X86.Evgeniy Stepanov2015-09-301-0/+0
| | | | | | | | The test requires X86 target support, and checks the actual debug info contents, including register numbers which would be different on other platforms. llvm-svn: 248938
OpenPOWER on IntegriCloud