Bill Wendling
74b96ac7b8
The DIBuilder class is just a wrapper around debug info creation
...
(a.k.a. MDNodes). The module doesn't belong in Analysis. Move it to the VMCore
instead.
llvm-svn: 159414
2012-06-29 08:32:07 +00:00
Bill Wendling
e8949ecfa6
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and
...
include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h.
The reasoning is because the DebugInfo module is simply an interface to the
debug info MDNodes and has nothing to do with analysis.
llvm-svn: 159312
2012-06-28 00:05:13 +00:00
Rafael Espindola
13084dd6a3
Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same as
...
DwarfUsesRelocationsAcrossSections.
llvm-svn: 158992
2012-06-22 13:24:07 +00:00
Nick Lewycky
da52706728
Emit relocations for DW_AT_location entries on systems which need it. This is
...
a recommit of r127757. Fixes PR9493. Patch by Paul Robinson!
llvm-svn: 158957
2012-06-22 01:25:12 +00:00
Benjamin Kramer
bbdde33ff0
Allocate the contents of DwarfDebug's StringMaps in a single big BumpPtrAllocator.
...
llvm-svn: 158265
2012-06-09 10:34:15 +00:00
Jakob Stoklund Olesen
be0b8939c0
Switch all register list clients to the new MC*Iterator interface.
...
No functional change intended.
Sorry for the churn. The iterator classes are supposed to help avoid
giant commits like this one in the future. The TableGen-produced
register lists are getting quite large, and it may be necessary to
change the table representation.
This makes it possible to do so without changing all clients (again).
llvm-svn: 157854
2012-06-01 23:28:30 +00:00
Eric Christopher
01248cbb6f
Remove duplicate code that we could just fallthrough to.
...
llvm-svn: 157060
2012-05-18 18:24:15 +00:00
Eric Christopher
218078152b
Fix thinko in conditional.
...
Part of rdar://11352000 and should bring the buildbots back.
llvm-svn: 156421
2012-05-08 21:24:39 +00:00
Eric Christopher
63b73ede75
Handle OpDeref in case it comes in as a register operand.
...
Part of rdar://11352000
llvm-svn: 156405
2012-05-08 18:56:00 +00:00
Eric Christopher
2e17b32e69
Patch to set is_stmt a little better for prologue lines in a function.
...
This enables debuggers to see what are interesting lines for a
breakpoint rather than any line that starts a function.
rdar://9852092
llvm-svn: 154120
2012-04-05 20:39:05 +00:00
Eric Christopher
53ef0cf4a5
Fix thinko check for number of operands to be the one that actually
...
might have more than 19 operands. Add a testcase to make sure I
never screw that up again.
Part of rdar://11026482
llvm-svn: 153961
2012-04-03 17:55:42 +00:00
Eric Christopher
ba40985484
Add a line number for the scope of the function (starting at the first
...
brace) so that we get more accurate line number information about the
declaration of a given function and the line where the function
first starts.
Part of rdar://11026482
llvm-svn: 153916
2012-04-03 00:43:49 +00:00
Eric Christopher
6c4e6016b5
Turn on the accelerator tables for Darwin.
...
llvm-svn: 153880
2012-04-02 17:58:52 +00:00
Eric Christopher
5f34828440
Use DW_AT_low_pc for a single entry point into a routine.
...
Fixes PR10105
llvm-svn: 153524
2012-03-27 18:35:54 +00:00
Eric Christopher
c1784e9de8
Use the file in the inlined die rather than the compile unit for
...
backtrace locations.
Testcase forthcoming, but I wanted to get some testing here.
Should fix:
PR12323
PR12314
rdar://11091100
llvm-svn: 153471
2012-03-26 21:38:38 +00:00
Benjamin Kramer
c798b7be6d
DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings.
...
llvm-svn: 152541
2012-03-11 14:56:26 +00:00
Craig Topper
8cc9d75c6a
Use uint16_t to store register overlaps to reduce static data.
...
llvm-svn: 152001
2012-03-04 10:43:23 +00:00
Eric Christopher
bb8f3701cd
Grammar-o in function name.
...
llvm-svn: 151875
2012-03-02 02:11:47 +00:00
Eric Christopher
a634c38544
If the linkage name doesn't exist we're supposed to emit a reference
...
to the string table for the function name, not the function name.
llvm-svn: 151873
2012-03-02 01:57:52 +00:00
Eric Christopher
39493f0f97
Revert "Reorder the sections being output to reduce the number of assembler"
...
The inline table needs to be constructed ahead of time so that it doesn't try to
create new strings while we're emitting everything.
This reverts commit a8ff9bccb399183cdd5f1c3cec2bda763664b4b0.
llvm-svn: 151864
2012-03-02 00:30:24 +00:00
Eric Christopher
3d271eb540
Reorder the sections being output to reduce the number of assembler
...
fixups that are being used to determine section offsets. Reduces
the total number of fixups by 50% for a non-trivial testcase.
Part of rdar://10413936
llvm-svn: 151852
2012-03-01 22:50:31 +00:00
Michael J. Spencer
0eb4a851f6
Minimal changes for LLVM to compile under VS11.
...
llvm-svn: 151849
2012-03-01 22:42:52 +00:00
Eric Christopher
32802595f6
Add the source language into the compile unit.
...
llvm-svn: 151143
2012-02-22 08:46:13 +00:00
Craig Topper
d218e7cb60
Convert assert(0) to llvm_unreachable
...
llvm-svn: 149816
2012-02-05 08:31:47 +00:00
Eric Christopher
afc99847bf
Remove generation of DW_AT_sibling. Nothing as far as I can tell uses it.
...
Saves about 1.5% on debug info size.
rdar://10278198
llvm-svn: 148794
2012-01-24 09:43:28 +00:00
Eric Christopher
354c1a6691
Use const vector references instead of a vector copy. Spotted by Devang.
...
llvm-svn: 147694
2012-01-06 23:03:34 +00:00
Eric Christopher
3f80f9acaa
As part of the ongoing work in finalizing the accelerator tables, extend
...
the debug type accelerator tables to contain the tag and a flag
stating whether or not a compound type is a complete type.
rdar://10652330
llvm-svn: 147651
2012-01-06 04:35:23 +00:00
Eric Christopher
945c822d26
Extraneous whitespace and 80-col.
...
llvm-svn: 146780
2011-12-16 23:42:31 +00:00
Eric Christopher
5697266013
Add inline subprogram names to the name lookup table since they may
...
not get there any other way.
llvm-svn: 145789
2011-12-04 06:02:38 +00:00
Nick Lewycky
7d0d3c2d58
Move global variables in TargetMachine into new TargetOptions class. As an API
...
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.
One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.
llvm-svn: 145714
2011-12-02 22:16:29 +00:00
Rafael Espindola
5f6b14719f
The dwarf standard says that the only differences between a out-of-line
...
instance and a concrete inlined instance are the use of DW_TAG_subprogram
instead of DW_TAG_inlined_subroutine and the who owns the tree.
We were also omitting DW_AT_inline from the abstract roots. To fix this,
make sure we mark abstract instance roots with DW_AT_inline even when
we have only out-of-line instances referring to them with DW_AT_abstract_origin.
FileCheck is not a very good tool for tests like this, maybe we should add
a -verify mode to llvm-dwarfdump.
llvm-svn: 144441
2011-11-12 01:57:54 +00:00
Rafael Espindola
e7024f983a
Check in getOrCreateSubprogramDIE if a declaration exists and if so output
...
it first.
This is a more general fix to pr11300.
llvm-svn: 144324
2011-11-10 22:34:29 +00:00
Eric Christopher
204348c454
Make types and namespaces take multiple DIEs for the accelerator tables
...
as well.
llvm-svn: 144319
2011-11-10 21:47:55 +00:00
Eric Christopher
60be243dc5
Rework adding function names to the dwarf accelerator tables, allow
...
multiple dies per function and support C++ basenames.
llvm-svn: 144304
2011-11-10 19:25:34 +00:00
Benjamin Kramer
71e3909e9c
Add comments.
...
llvm-svn: 144194
2011-11-09 18:16:11 +00:00
Benjamin Kramer
64e040aef6
Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries.
...
llvm-svn: 144184
2011-11-09 12:12:04 +00:00
Eric Christopher
c916a28d7f
Remove the pubnames section, no one consumes it.
...
llvm-svn: 144169
2011-11-09 05:24:07 +00:00
Eric Christopher
eba4abd2aa
Also add the linkage name to the name accelerator tables if it exists
...
and is different than the normal name.
llvm-svn: 144130
2011-11-08 21:56:23 +00:00
Eric Christopher
9fc74dc3f8
Add the base ObjC method name to the names lookup table as well.
...
llvm-svn: 144105
2011-11-08 19:16:01 +00:00
Eric Christopher
37cd1659cb
Add all completed and named types to the dwarf type accelerator tables.
...
llvm-svn: 144027
2011-11-07 22:11:16 +00:00
Eric Christopher
2b26dd515a
Use StringRef::startswith to do some string comparisons.
...
llvm-svn: 143982
2011-11-07 18:53:23 +00:00
Eric Christopher
27787a743e
Allow for the case where the name of the subprogram is "".
...
Fixes a self-host error.
llvm-svn: 143970
2011-11-07 18:10:17 +00:00
Eric Christopher
fddc6980b7
Remove unnecessary addition to API. Replace with something much simpler.
...
llvm-svn: 143925
2011-11-07 09:38:42 +00:00
Eric Christopher
f9c4db49bd
Add the support code to enable the dwarf accelerator tables. Upcoming patches
...
to fix the types section (all types, not just global types), and testcases.
The code to do the final emission is disabled by default.
llvm-svn: 143923
2011-11-07 09:24:32 +00:00
Eric Christopher
64ea0f378b
Expose a way to get the beginning of the dwarf string section.
...
llvm-svn: 143920
2011-11-07 09:18:38 +00:00
Eric Christopher
e0fc702988
Fix up comment.
...
llvm-svn: 143919
2011-11-07 09:18:35 +00:00
Rafael Espindola
a022f4813e
Emit declarations before definitions if they are available. This causes DW_AT_specification to
...
point back in the file in the included testcase. Fixes PR11300.
llvm-svn: 143726
2011-11-04 19:00:29 +00:00
Nick Lewycky
691d7f80c2
Don't emit a directory entry for the value in DW_AT_comp_dir, that is always
...
implied by directory index zero.
llvm-svn: 143570
2011-11-02 20:55:33 +00:00
Nick Lewycky
651475977d
Teach our Dwarf emission to use the string pool.
...
llvm-svn: 143097
2011-10-27 06:44:11 +00:00
Nick Lewycky
4aa5a52a80
Reflow lines, fix comments for doxygen style, fix whitespace. No functionality
...
change.
llvm-svn: 143074
2011-10-26 22:55:33 +00:00