summaryrefslogtreecommitdiffstats
path: root/llvm/test/DebugInfo
Commit message (Collapse)AuthorAgeFilesLines
* X86MCAsmInfoGNUCOFF: Set PointerSize as 8 for targeting x64. It caused ↵NAKAMURA Takumi2014-04-081-5/+0
| | | | | | | DW_LNE_set_address was misemitted on x64. FIXME: I haven't investigate whether CalleeSaveStackSlotSize should be 8. llvm-svn: 205772
* Revert the last couple of patches here and go back to somethingEric Christopher2014-04-071-1/+3
| | | | | | that at least failed reliably. llvm-svn: 205711
* XFAIL this completely at the moment:Eric Christopher2014-04-071-0/+1
| | | | | | | | | cygwin has llvm-dwarfdump problems and isn't paying attention to the specific xfail there. s390x isn't matching for an unknown reason. llvm-svn: 205708
* Make test run on most platforms and only fail on cygwin/mingw whileEric Christopher2014-04-071-4/+1
| | | | | | it's being investigated for those. llvm-svn: 205704
* DebugInfo: Support namespace aliases as DW_TAG_imported_declaration instead ↵David Blaikie2014-04-061-4/+4
| | | | | | | | | | | | | | | | of DW_TAG_imported_module I really should read the spec more often (and test GCC more often too). I just assumed that namespace aliases would be the same as using directives, except with a name. But apparently that's not how the DWARF standards suggests they be implemented. DWARF4 provides an example and other non-normative text suggesting that namespace aliases be implemented by named imported declarations intsead of named imported modules. So be it. llvm-svn: 205685
* Tweak unconditional-branch.ll passing on any hosts, while investigating ↵NAKAMURA Takumi2014-04-041-2/+6
| | | | | | | | | | | | | | | | | | x86_64-mingw32. Sorry for the breakage. For now, it will fail in two ways: 1. To fail for targeting x86_64-mingw32. <stdin>:131:8: note: possible intended match here 0x30830a0100000002 3 0 1 0 0 is_stmt 2. To fail not to find the target x86. llc: : error: unable to get target for 'x86_64-unknown-unknown', see --version and --triple. llvm-svn: 205621
* Fix llvm-objdump crash.Rafael Espindola2014-04-031-3/+1
| | | | llvm-svn: 205581
* unconditional-branch.ll is broken for targeting x86_64-cygming. Add an ↵NAKAMURA Takumi2014-04-031-1/+2
| | | | | | explicit triple for now. llvm-svn: 205563
* Revert r205551, "Attempt to XFAIL this on mingw and cygwin hosts." It didn't ↵NAKAMURA Takumi2014-04-031-3/+0
| | | | | | | | | | | | | | | | | | | | fail on cygming. That said, it emits errors to the stderr (with exit(0)); error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_DIR32 error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_DIR32 error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_SECREL error: failed to compute relocation: IMAGE_REL_I386_DIR32 llvm-svn: 205560
* Attempt to XFAIL this on mingw and cygwin hosts. The line table onEric Christopher2014-04-031-0/+3
| | | | | | | | | | | | these is very much off and is more than just the branch from this bug incorrect: Address Line Column File ISA Discriminator Flags ------------------ ------ ------ ------ --- ------------- ------------- 0x30830a0100000002 3 0 1 0 0 is_stmt 0x30830a0100000008 3 0 1 0 0 is_stmt end_sequence llvm-svn: 205551
* Loosen up check so that we can pass on platforms that generateEric Christopher2014-04-031-3/+3
| | | | | | | | | | | | | | | | slightly more verbose than needed line tables, e.g.: Address Line Column File ISA Discriminator Flags ------------------ ------ ------ ------ --- ------------- ------------- 0x0000000000000000 1 0 1 0 0 is_stmt 0x0000000000000000 1 0 1 0 0 is_stmt prologue_end 0x0000000000000010 2 0 1 0 0 is_stmt 0x0000000000000018 4 0 1 0 0 is_stmt these should probably be looked at, but it isn't affecting the correctness of the testcase. llvm-svn: 205546
* Fix for PR 19261:Eric Christopher2014-04-031-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | llc doesn't generate nodes for unconditional fall-through branches for targets without FastISel implementation (X86 has it, but can be disabled by "-fast-isel=false") in SelectionDAGBuilder::visitBr(). So for line 4 in the following testcase 1: void foo(int i){ 2: switch(i){ 3: default: 4: break; 5: } 6: return; 7: } there is no corresponding line in .debug_line section, and a debugger cannot set a breakpoint at line 4. Fix this by always emitting a branch when we're not optimizing and add a testcase to ensure that there's code on every line we'd want to break. Patch by Daniil Fukalov. llvm-svn: 205529
* DebugInfo: Use a 64 bit type for the subrangeDavid Blaikie2014-04-032-5/+5
| | | | | | | | | | | While we were encoding 64 bit values (data8) in the subrange itself, using a 32 bit type for the subrange was still confusing the gdb. Oh, and make it unsigned too. As the comment points out, this could be pushed into the frontend so that it would be 32 or 64 bit as appropriate, etc. llvm-svn: 205512
* Add support for the R_ARM_ABS32 relocation.Rafael Espindola2014-04-032-0/+5
| | | | | | This should bring the arm buildbots back. llvm-svn: 205502
* DebugLocEntry: Actually merge the loc entry when returning true.David Blaikie2014-04-011-17/+33
| | | | | | | | | | Seems we didn't have any test coverage for merging... awesome. So I added some - but hit an llvm-objdump bug while I was there. I'm choosing not to shave that yak right now. Code review feedback/bug catch by Adrian Prantl in r205360. llvm-svn: 205373
* DwarfDebug: Prevent DebugLocEntry merging from coalescing two differentAdrian Prantl2014-04-011-0/+100
| | | | | | | | constants into only the first one. rdar://14874886. llvm-svn: 205357
* DebugInfo: Avoid creating unnecessary/empty line tables and remove the ↵David Blaikie2014-04-012-3/+5
| | | | | | | | | | | | special case of '0' in DwarfCompileUnit::initStmtList by just always using a label difference This moves one case of raw text checking down into the MCStreamer interfaces in the form of a virtual function, even if we ultimately end up consolidating on the one-or-many line tables issue one day, this is nicer in the interim. This just generally streamlines a bunch of use cases into a common code path. llvm-svn: 205287
* ARM64: initial backend importTim Northover2014-03-292-0/+72
| | | | | | | | | | | | This adds a second implementation of the AArch64 architecture to LLVM, accessible in parallel via the "arm64" triple. The plan over the coming weeks & months is to merge the two into a single backend, during which time thorough code review should naturally occur. Everything will be easier with the target in-tree though, hence this commit. llvm-svn: 205090
* Add a PR referenceTimur Iskhodzhanov2014-03-271-1/+1
| | | | llvm-svn: 204904
* Make the recent COFF debug info tests more readableTimur Iskhodzhanov2014-03-273-2/+6
| | | | llvm-svn: 204902
* Reorder arguments on test command line to make it easier to cut andEric Christopher2014-03-261-1/+1
| | | | | | paste. llvm-svn: 204875
* Follow-up to r204790: don't try to emit line tables if there are no ↵Timur Iskhodzhanov2014-03-261-0/+52
| | | | | | functions with DI in the TU llvm-svn: 204795
* Add tests for r204790Timur Iskhodzhanov2014-03-262-0/+166
| | | | llvm-svn: 204791
* Use -LABEL checks in the COFF debug info testsTimur Iskhodzhanov2014-03-264-20/+20
| | | | llvm-svn: 204788
* DebugInfo: Add fission-related sections to COFFDavid Blaikie2014-03-261-1/+1
| | | | | | | Allows this test to pass on COFF platforms so we don't need to restrict this test to a single target anymore. llvm-svn: 204780
* llvm/test/DebugInfo/empty.ll: Suppress crash for targeting pecoff while ↵NAKAMURA Takumi2014-03-251-1/+1
| | | | | | investigating. llvm-svn: 204766
* DebugInfo: Add GNU_addr_base and GNU_ranges_base only when there are ↵David Blaikie2014-03-253-3/+13
| | | | | | | | addresses or ranges Based on code review feedback from Eric in r204672. llvm-svn: 204702
* DebugInfo: Support debug_loc under fissionDavid Blaikie2014-03-251-7/+32
| | | | | | | | | | | | | | | | | | | | | | Implement debug_loc.dwo, as well as llvm-dwarfdump support for dumping this section. Outlined in the DWARF5 spec and http://gcc.gnu.org/wiki/DebugFission the debug_loc.dwo section has more variation than the standard debug_loc, allowing 3 different forms of entry (plus the end of list entry). GCC seems to, and Clang certainly, only use one form, so I've just implemented dumping support for that for now. It wasn't immediately obvious that there was a good refactoring to share the implementation of dumping support between debug_loc and debug_loc.dwo, so they're separate for now - ideas welcome or I may come back to it at some point. As per a comment in the code, we could choose different forms that may reduce the number of debug_addr entries we emit, but that will require further study. llvm-svn: 204697
* DebugInfo: Add DW_AT_GNU_ranges_base to skeleton CUsDavid Blaikie2014-03-241-5/+7
| | | | | | | | | This is used to avoid relocations in the dwo file by allowing DW_AT_ranges specified in debug_info.dwo to be relative to this base address. (r204667 implements the base-relative DW_AT_ranges side of this) llvm-svn: 204672
* DebugInfo: Implement relative addressing for DW_AT_ranges under fissionDavid Blaikie2014-03-241-3/+10
| | | | | | | | This removes the debug_ranges relocations from debug_info.dwo (but doesn't implement the DW_AT_GNU_ranges_base which is also necessary for correct functioning) llvm-svn: 204668
* DebugInfo: Don't emit relocations to abbreviations in debug_info.dwoDavid Blaikie2014-03-241-0/+1
| | | | llvm-svn: 204667
* DebugInfo: Omit DW_AT_addr_base from skeletal type units.David Blaikie2014-03-212-4/+2
| | | | | | | | | | | | | Type units have no addresses, so there's no need for DW_AT_addr_base. This removes another relocation from every skeletal type unit and brings LLVM's skeletal type units in line with GCC's (containing only GNU_dwo_name (strp), comp_dir (strp), and GNU_pubnames (flag_present)). Cary's got some ideas about using str_index in the .o file to reduce those last two relocations (well, replace two relocations with one relocation (pointing to the string index) and two indicies) llvm-svn: 204506
* Convert CodeGen test into a more specific MC test.Rafael Espindola2014-03-201-24/+0
| | | | llvm-svn: 204406
* Don't use EmitAbsValue with symbol references.Rafael Espindola2014-03-201-27/+0
| | | | | | | | | | | | | | | The function exists to force an expression to be absolute, but there it is not possible to force a symbol reference since a = b .long a means something else. This is an alternative fix for pr9951 that uses an assert. It then deletes the old pr9951 test that was testing nothing already. llvm-svn: 204399
* Reapply DW_AT_low/high_pc patch:Eric Christopher2014-03-207-84/+258
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc. This commit moves us from a single range per subprogram to extending ranges if we are: a) In the same section, and b) In the same enclosing CU. This means we have more fine grained ranges for compile units, and fewer ranges overall when we have multiple functions in the same CU adjacent to each other in the object file. Also remove all of the earlier hacks around this functionality for function sections etc. Also update all of the testcases to take into account the merging functionality. with a fix for location entries in the debug_loc section: Make sure that debug loc entries are relative to the low_pc of the compile unit. This means that when we only have a single range that the offset should be just relative to the low_pc of the unit, for multiple ranges for a CU this means that we'll be relative to 0 which we emit along with DW_AT_ranges. This mostly shows up with linked binaries, so add a testcase with multiple CUs so that our location is going to be offset of a CU with a non-zero low_pc. llvm-svn: 204377
* Add comments from Eric's review of r204094.David Blaikie2014-03-201-0/+9
| | | | llvm-svn: 204358
* Revert "Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc."Eric Christopher2014-03-206-145/+84
| | | | | | | | This appears to trigger failures with optimization and function arguments somehow. This reverts commit r204277. llvm-svn: 204286
* Use the range machinery for DW_AT_ranges and DW_AT_high/lo_pc.Eric Christopher2014-03-196-84/+145
| | | | | | | | | | | | | | | | | | This commit moves us from a single range per subprogram to extending ranges if we are: a) In the same section, and b) In the same enclosing CU. This means we have more fine grained ranges for compile units, and fewer ranges overall when we have multiple functions in the same CU adjacent to each other in the object file. Also remove all of the earlier hacks around this functionality for function sections etc. Also update all of the testcases to take into account the merging functionality. llvm-svn: 204277
* DebugInfo: Use the comp_dir of the referencing type units when building ↵David Blaikie2014-03-191-0/+1
| | | | | | | | | | | | debug_line.dwo This isn't a complete fix - it falls back to non-comp_dir when multiple compile units are in play. Adding a map of comp_dir to table is part of the more general solution, but I gave up (in the short term) when I realized I'd also have to calculate the size of each type unit so as to produce correct DW_AT_stmt_list attributes. llvm-svn: 204202
* DebugInfo/lto-comp-dir.ll: Tweak for dos path.NAKAMURA Takumi2014-03-181-2/+2
| | | | llvm-svn: 204117
* DebugInfo: Avoid emitting standard opcode lengths in debug_line.dwo headers ↵David Blaikie2014-03-181-0/+2
| | | | | | | | | where opcodes are never used anyway Introduce a slightly tighter wrapper around the header structure that handles this use case. (MCDwarfDwoLineTable) llvm-svn: 204101
* DebugInfo: Implement debug_line.dwo for file names used in type units during ↵David Blaikie2014-03-181-6/+13
| | | | | | | | | | | | | | | | | | | | -gsplit-dwarf This removes an attribute (and more importantly, a relocation) from skeleton type units and removes some unnecessary file names from the debug_line section that remains in the .o (and linked executable) file. There's still a few places we could shave off some more space here: * use compilation dir of the underlying compilation unit (since all the type units share that compilation dir - though this would be more complicated in LTO cases where they don't (keep a map of compilation dir->line table header?)) * Remove some of the unnecessary header fields from the line table since they're not needed in this situation (about 12 bytes per table). llvm-svn: 204099
* DebugInfo: Flag test as requiring object emission supportDavid Blaikie2014-03-181-0/+2
| | | | | | Cleans up buildbot failures on R600 and similar. llvm-svn: 204095
* DebugInfo: Do not rely on the compilation dir (index 0) for files in line ↵David Blaikie2014-03-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | tables shared between compilation units When emitting assembly there's no support for emitting separate line tables for each compilation unit - so LLVM emits .loc directives producing a single line table. Line tables have an implicit directory (index 0) equal to the compilation directory (DW_AT_comp_dir) of the compilation unit that references them. If multiple compilation units (with possibly disparate compilation directories) reference the same line table, we must avoid relying on this ambiguous directory. Achieve this my simply not setting the compilation directory on the line table when we're in this situation (multiple units while emitting assembly). llvm-svn: 204094
* DebugInfo: Move line table zero-directory-index (compilation dir) handling ↵David Blaikie2014-03-171-0/+69
| | | | | | | | | | | | into MCDwarf Our handling of compilation directory in DwarfDebug was broken (incorrectly using the 'last' compilation directory (that of the last CU in the metadata list) for all function emission in any CU). By moving this handling down into MCDwarf the issue is fixed as the compilation dir is tracked correctly per line table. llvm-svn: 204089
* Use a fixed subtarget for test so atom scheduling can't change the addresses ↵Benjamin Kramer2014-03-151-1/+1
| | | | | | this test relies on. llvm-svn: 204014
* Remove command line option for CU hashing. This is on by default now.Eric Christopher2014-03-142-2/+2
| | | | | | Fix up testcases and use of flag. llvm-svn: 203973
* Make the arbitrary section name be something mach-o compatible.Eric Christopher2014-03-141-1/+1
| | | | llvm-svn: 203972
* If we see that we're emitting code for a function that doesn't haveEric Christopher2014-03-141-0/+56
| | | | | | | | any lexical scopes then go ahead and turn on DW_AT_ranges for the compile unit since we would be claiming to describe in the CU a range for which we don't have information in the CU otherwise. llvm-svn: 203969
* Remove the -generate-dwarf-cu-ranges flag.Eric Christopher2014-03-142-11/+11
| | | | | | | Rewrite a couple of testcases to cover areas that would be normally by turning it on into testcases that will follow the logic. llvm-svn: 203968
OpenPOWER on IntegriCloud