Chris Lattner
1917725796
remove the raw_ostream from various dwarf printing things.
...
The only thing left is LEB printing, which uses EmitRawText
for now.
llvm-svn: 100325
2010-04-04 07:48:20 +00:00
Chris Lattner
305c84b8ee
Switch the code generator (except the JIT) onto the new DebugLoc
...
representation. This eliminates the 'DILocation' MDNodes for
file/line/col tuples from -O0 -g codegen.
This remove the old DebugLoc class, making it a typedef for DebugLoc,
I'll rename NewDebugLoc next.
I didn't update the JIT to use the new apis, so it will continue to
work, but be as slow as before. Someone should eventually do this
or, better yet, rip out the JIT debug info stuff and build the JIT
on top of MC.
llvm-svn: 100209
2010-04-02 19:42:39 +00:00
Devang Patel
1d51b57a85
Revert r100117.
...
llvm-svn: 100145
2010-04-01 22:47:29 +00:00
Devang Patel
97a60f2ce5
Do not eagerly record known previous location. DBG_VALUE may not cause a new label due to one or other reason.
...
llvm-svn: 100134
2010-04-01 20:22:44 +00:00
Devang Patel
52c509b85d
Skip instructions until new scope is seen.
...
llvm-svn: 100117
2010-04-01 17:32:01 +00:00
Devang Patel
e55fdcf347
Cosmetic changes.
...
Update comment, rename a local variable.
llvm-svn: 100116
2010-04-01 17:16:48 +00:00
Stuart Hastings
7c358afa1d
Reverting 100048; it broke two Frontend debug info tests.
...
llvm-svn: 100058
2010-03-31 23:08:46 +00:00
Stuart Hastings
3a9c4bcef8
Debug info can now properly represent functions inside classes inside other functions. Partial fix for Radar 7424645.
...
llvm-svn: 100048
2010-03-31 21:10:54 +00:00
Benjamin Kramer
b67e098ab6
Reduce string trashing.
...
llvm-svn: 100038
2010-03-31 20:15:45 +00:00
Benjamin Kramer
a71501e0dd
DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them are
...
POD-like anyway, so we don't even care about calling their d'tors (DIEBlock
being the exception).
~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c
llvm-svn: 100035
2010-03-31 19:34:01 +00:00
Chris Lattner
421f945e1f
tidy up
...
llvm-svn: 99998
2010-03-31 06:06:37 +00:00
Chris Lattner
fac22403cb
MI != 0 is checked in the assert right above this.
...
llvm-svn: 99995
2010-03-31 05:42:48 +00:00
Chris Lattner
baad3cbf19
use the isDebugValue() predicate and pop_back_val()
...
llvm-svn: 99993
2010-03-31 05:39:57 +00:00
Chris Lattner
9653faca87
assert is a function-like macro, not a control flow operator.
...
llvm-svn: 99992
2010-03-31 05:36:29 +00:00
Chris Lattner
27c9cacb63
add new apis for getting/setting !dbg metadata on
...
instructions. In addition to being a convenience,
they are faster than the old apis, particularly when
not going from an MDKindID like people should be
doing.
llvm-svn: 99982
2010-03-31 03:34:40 +00:00
Devang Patel
2a2b092bf0
Ignore invalid metadata.
...
llvm-svn: 99938
2010-03-30 22:09:52 +00:00
Devang Patel
a103a31a3c
There is no need to fall through after processing DBG_VALUE machine instruction.
...
llvm-svn: 99899
2010-03-30 18:07:00 +00:00
Devang Patel
953a86e2bb
Encode start location of debug value, communicated through DBG_VALUE machine instruction, in a variable's DIE.
...
llvm-svn: 99845
2010-03-29 22:59:58 +00:00
Chris Lattner
b01fcba466
fix a variety of issues were we'd start DebugTimer but
...
not stop it by using RAII.
llvm-svn: 99832
2010-03-29 20:38:20 +00:00
Devang Patel
cfd24dc84c
Refactor code to push DILocation prcessing into DwarfDebug.cpp from AsmPrinter.cpp.
...
This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions.
llvm-svn: 99816
2010-03-29 17:20:31 +00:00
Devang Patel
66e9b05428
Revert 99772.
...
llvm-svn: 99778
2010-03-28 21:23:37 +00:00
Devang Patel
bb5063a8cd
Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter.
...
llvm-svn: 99772
2010-03-28 18:57:09 +00:00
Devang Patel
51bbacc803
Use SP filename directly instead of SP's context's filename.
...
llvm-svn: 99429
2010-03-24 21:30:35 +00:00
Devang Patel
bb15b15726
Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit.
...
llvm-svn: 99225
2010-03-22 23:11:36 +00:00
Devang Patel
48af12e998
DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file.
...
llvm-svn: 99223
2010-03-22 22:38:48 +00:00
Jeffrey Yasskin
14b8c19bcc
Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValue
...
it allocates to DwarfDebug::DIEValues.
llvm-svn: 99196
2010-03-22 18:47:14 +00:00
Devang Patel
4df8850a32
Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*.
...
llvm-svn: 98743
2010-03-17 17:29:55 +00:00
Devang Patel
3244526a3b
Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions.
...
This is a work in progress.
llvm-svn: 98556
2010-03-15 18:33:46 +00:00
Chris Lattner
9331acc6d7
get MMI out of the label uniquing business, just go to MCContext
...
to get unique assembler temporary labels.
llvm-svn: 98489
2010-03-14 08:36:50 +00:00
Chris Lattner
5af59dfd1b
don't use getDWLabel("label" anymore, always go through MMI.
...
llvm-svn: 98485
2010-03-14 08:18:13 +00:00
Chris Lattner
5ee7841af2
change SrcLineInfo to contain a label instead of a label ID.
...
llvm-svn: 98483
2010-03-14 08:15:55 +00:00
Chris Lattner
f856c407af
use Label->isDefined() instead of isLabelDeleted() now that we
...
consistently use MCSymbol and only call this predicate after
they should have been emitted.
llvm-svn: 98461
2010-03-14 02:20:58 +00:00
Chris Lattner
f26e0336c2
simplify EmitFrameMoves to take BaseLabel in as a symbol
...
instead of as a stem+idx pair, simplify the "is a new
location" check to use symbol comparison.
llvm-svn: 98432
2010-03-13 08:05:25 +00:00
Chris Lattner
ade5faaac4
factor some labels, simplify some code.
...
llvm-svn: 98429
2010-03-13 07:40:56 +00:00
Chris Lattner
836e8b5d1b
various cleanups.
...
llvm-svn: 98426
2010-03-13 07:26:18 +00:00
Chris Lattner
bfdbd2f3a2
reimplement the string pool used for inlined function
...
entries to not thrash std::strings and MCSymbols.
llvm-svn: 98415
2010-03-13 02:17:42 +00:00
Chris Lattner
7a2e6110bc
inline the now-trivial implementation of GetGlobalValueSymbol into
...
some of its callers.
llvm-svn: 98388
2010-03-12 21:09:07 +00:00
Jeffrey Yasskin
824bd1b30d
Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of
...
several fields to make it easier to figure out where bugs might be creeping in.
llvm-svn: 98358
2010-03-12 17:45:06 +00:00
Devang Patel
93aa350213
There is no need to create specification DIE for definitions at DIFile level.
...
llvm-svn: 98302
2010-03-11 23:44:52 +00:00
Jeffrey Yasskin
239beb0e85
Avoid leaking CompileUnits in DwarfDebug.cpp.
...
llvm-svn: 98268
2010-03-11 18:29:55 +00:00
Chris Lattner
60b9c3a333
add missing filename!
...
llvm-svn: 98125
2010-03-10 02:29:31 +00:00
Chris Lattner
e284f80948
inline away a form of IsPCRelative, eliminating the
...
dead IsPCRel argument.
llvm-svn: 98117
2010-03-10 01:17:49 +00:00
Chris Lattner
cff79125fb
add some fixme's for MCizing. EH still has a few things that
...
need to be MCized, but the last debug info thing are LEB and
cygwin specific (which the MC api doesn't support yet) and
one specific form of EmitReference which I'll tackle next.
llvm-svn: 98116
2010-03-10 01:04:13 +00:00
Chris Lattner
d5d96f76d0
eliminate EOL, adding all comments with the OutStreamer.AddComment
...
method. With this, comments should end up on the same lines as the .byte
directives (for example) and we now get no output with:
$ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose
woot.
llvm-svn: 98105
2010-03-09 23:52:58 +00:00
Chris Lattner
58829fcfe9
eliminate a bunch of \n's that are being printed to O. Next up is to kill
...
off "EOL".
llvm-svn: 98102
2010-03-09 23:38:23 +00:00
Chris Lattner
d51f1bdc58
reapply r98035:
...
Now that setStartLabel takes an MCSymbol, we can de-ID'ize
beginScope and RecordSourceLine.
llvm-svn: 98047
2010-03-09 04:54:43 +00:00
Chris Lattner
43b812b6a8
add some extra checks. I'm not sure why, but this does unbreak a
...
failure remaining on mainline.
llvm-svn: 98046
2010-03-09 04:48:35 +00:00
Eric Christopher
8875eba06a
Speculatively revert r98035. It appears to have caused a set of buildbot
...
failures.
llvm-svn: 98039
2010-03-09 02:36:31 +00:00
Chris Lattner
c4a74bf48b
Now that setStartLabel takes an MCSymbol, we can de-ID'ize
...
beginScope and RecordSourceLine.
llvm-svn: 98035
2010-03-09 02:08:02 +00:00
Chris Lattner
f7ad2622cc
change DbgScope to keep track of the start/end label as MCSymbol*
...
now that the dependence on ID is removed from MMI.
llvm-svn: 98034
2010-03-09 01:58:53 +00:00
Chris Lattner
a72a32a06b
remove a useless optimization: now that label replacement never
...
happens, the start/end of a scope can never be the same.
llvm-svn: 98032
2010-03-09 01:52:43 +00:00
Chris Lattner
d4ce7a73e8
strength reduce MMI::MappedLabel to MMI::isLabelDeleted,
...
and add a FIXME about how we are eventually going to zap this
lookup table once mc world domination is complete.
llvm-svn: 98031
2010-03-09 01:51:43 +00:00
Chris Lattner
4494a28b3c
mcstreamerize AsmPrinter::printLabel.
...
llvm-svn: 98025
2010-03-09 01:02:30 +00:00
Chris Lattner
8147c144d9
add a EmitSymbolValue convenience method to MCStreamer.
...
llvm-svn: 98017
2010-03-09 00:39:24 +00:00
Chris Lattner
db93b91db1
make InlineInfoLabels hold MCSymbol*'s, avoiding
...
recomputation of the labels.
llvm-svn: 98016
2010-03-09 00:31:02 +00:00
Chris Lattner
a583d01e79
mc'ize the last use of PrintLabelName and eliminate PrintLabelName.
...
llvm-svn: 98015
2010-03-09 00:26:09 +00:00
Chris Lattner
183e87502e
now that the debug and eh emitters use a common .set counter,
...
we can eliminate "flavor".
llvm-svn: 98011
2010-03-09 00:00:15 +00:00
Chris Lattner
10d571f349
simplify EmitSectionOffset to always use .set if it is
...
available, the only thing this affects is that we produce
.set in one case we didn't before, which shouldn't harm
anything. Make EmitSectionOffset call EmitDifference
instead of duplicating it.
llvm-svn: 98005
2010-03-08 23:23:25 +00:00
Chris Lattner
9dfcbeaca1
Remove a version of EmitDifference.
...
llvm-svn: 98002
2010-03-08 23:02:59 +00:00
Chris Lattner
81bf3f933d
eliminate a form of PrintLabelName.
...
llvm-svn: 97999
2010-03-08 22:52:49 +00:00
Chris Lattner
4ccfa3d315
eliminate the non-MCSymbol versions of EmitReference.
...
llvm-svn: 97997
2010-03-08 22:47:57 +00:00
Chris Lattner
2bbaab13d8
mc'ize EmitLabel.
...
llvm-svn: 97996
2010-03-08 22:44:40 +00:00
Chris Lattner
bfd38653e6
merge DIEObjectLabel and DIEDwarfLabel into DIELabel.
...
Yes, DIE you fiendish labels, die all of you.
llvm-svn: 97995
2010-03-08 22:31:46 +00:00
Chris Lattner
cbce2df237
elimiante the DWLabel class, using MCSymbol instead. Start
...
switching some stuff over to passing around MCSymbol* instead
of stem+ID.
llvm-svn: 97993
2010-03-08 22:23:36 +00:00
Devang Patel
ea239f6e0a
Derive DIType from DIScope. This simplifies getContext() where for members the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer.
...
llvm-svn: 97990
2010-03-08 22:02:50 +00:00
Devang Patel
176dc29a62
Avoid using DIDescriptor.isNull().
...
This is a first step towards eliminating checks in Descriptor constructors.
llvm-svn: 97975
2010-03-08 20:52:55 +00:00
Devang Patel
a716e313d6
Revert r97947.
...
llvm-svn: 97963
2010-03-08 19:20:38 +00:00
Devang Patel
1527b2657b
Avoid using DIDescriptor.isNull().
...
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.
llvm-svn: 97947
2010-03-08 18:25:48 +00:00
Douglas Gregor
c52fc8f922
Revert r97917, which was causing Clang Debug self-host failures.
...
llvm-svn: 97932
2010-03-08 02:58:37 +00:00
Jeffrey Yasskin
2c23c1d1a1
Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie.
...
llvm-svn: 97917
2010-03-07 17:10:13 +00:00
Jeffrey Yasskin
c68dc05867
_2_ gcc crashes, ah, ah, ah...
...
(Rolling back r97906.)
llvm-svn: 97909
2010-03-07 07:16:49 +00:00
Jeffrey Yasskin
c0123f0033
Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind!
...
llvm-svn: 97906
2010-03-07 06:55:35 +00:00
Devang Patel
7de01928e9
Fix grammar.
...
Thanks Duncan!
llvm-svn: 97572
2010-03-02 17:58:15 +00:00
Devang Patel
8fffee565c
Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases.
...
llvm-svn: 97533
2010-03-02 01:26:20 +00:00
Devang Patel
0f421b8fc5
Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope.
...
llvm-svn: 96445
2010-02-17 02:20:34 +00:00
Dan Gohman
92b6122204
Fix "the the" and similar typos.
...
llvm-svn: 95781
2010-02-10 16:03:48 +00:00
Devang Patel
d381c20ee7
Add declaration attribute to a variable DIE, if there is a separate DIE for the definition.
...
llvm-svn: 95646
2010-02-09 01:58:33 +00:00
Devang Patel
102b8a3103
Set DW_AT_artificial only if argument is marked as artificial.
...
llvm-svn: 95461
2010-02-06 01:02:37 +00:00
Devang Patel
9eb9bb03c9
Do not generate specification DIE for nested functions.
...
llvm-svn: 95452
2010-02-05 23:09:20 +00:00
Devang Patel
32eb7508e4
Emit appropriate expression to find virtual base offset.
...
llvm-svn: 95242
2010-02-03 20:08:48 +00:00
Devang Patel
83d905f82b
Provide interface to identifiy artificial methods.
...
llvm-svn: 95240
2010-02-03 19:57:19 +00:00
Devang Patel
59e8b027b8
Apparently gdb is not amused by empty lines in pubtypes section.
...
llvm-svn: 95064
2010-02-02 03:47:27 +00:00
Devang Patel
38cf687622
NULL terminate name in pubtypes sections.
...
llvm-svn: 95062
2010-02-02 03:37:03 +00:00
Devang Patel
70713c75da
Emit declaration DIE for the class static variables.
...
llvm-svn: 94870
2010-01-30 01:08:30 +00:00
Devang Patel
022d4a7fc0
Add size and location info in DW_TAG_class_type descriptor.
...
llvm-svn: 94822
2010-01-29 18:34:58 +00:00
Chris Lattner
8fe5535cec
remove a noop function.
...
llvm-svn: 94616
2010-01-26 23:26:29 +00:00
Chris Lattner
7dbd5458b2
constify a bunch of dwarf stuff now that the registerinfo method
...
is constified.
llvm-svn: 94613
2010-01-26 23:18:02 +00:00
Devang Patel
4563d073d3
Use AssertingVH, just to be paranoid.
...
llvm-svn: 94593
2010-01-26 21:39:14 +00:00
Devang Patel
84b21559f8
Emit DW_AT_containing_type attribute for a class if containing type is known.
...
llvm-svn: 94587
2010-01-26 21:16:06 +00:00
Chris Lattner
20d89c382c
mcstreamerize .file and .file. This also fixes an issue where the
...
normal form of .file would fail if the filename had a weird character
in it.
llvm-svn: 94437
2010-01-25 18:58:59 +00:00
Chris Lattner
0dde21dba4
fix some issues where we weren't emitting enough newlines.
...
llvm-svn: 94370
2010-01-24 19:01:06 +00:00
Chris Lattner
c0ac5c1d3b
when emitting DIEs, emit the comment on the same line as the directive.
...
This fixes FrontendObjC/2009-11-30-Objc-ID.m
llvm-svn: 94369
2010-01-24 18:54:17 +00:00
Chris Lattner
e6801b7c24
remove one form of EmitString, just use EmitBytes instead. We must
...
be careful to add a \0 at the end though, because EmitString didn't
do this.
llvm-svn: 94277
2010-01-23 03:11:46 +00:00
Chris Lattner
f703377447
move "EOL" from asmprinter to dwarfprinter. It should eventually
...
be completely eliminated, but today is not that day.
llvm-svn: 94253
2010-01-22 23:47:11 +00:00
Chris Lattner
de2a14c724
move uleb printing from asmprinter to dwarfprinter, mcize,
...
cleanup and eliminate a bunch more uses of "EOL".
llvm-svn: 94250
2010-01-22 23:18:42 +00:00
Chris Lattner
6b1e1bb9e9
move sleb printing out of asmprinter into dwarf printer, make clients
...
handle the comment better, MCize the non-.sleb case.
llvm-svn: 94244
2010-01-22 22:56:55 +00:00
Devang Patel
81f0fa06d7
Remove MetadataBase class because it is not adding significant value.
...
llvm-svn: 94243
2010-01-22 22:52:10 +00:00
Chris Lattner
7976cac884
rename the dwarf class to DwarfPrinter. This matches the filename
...
and much more accurately describes what it is all about.
llvm-svn: 94233
2010-01-22 22:23:57 +00:00
Chris Lattner
2fa5f5ce56
inline away the trivial AsmPrinter::EOL() method.
...
llvm-svn: 94230
2010-01-22 22:09:00 +00:00
Devang Patel
56de8ddd56
If a instruction belongs to another function (and not current function) as per debug info attached with the instruction then ignore the dangling lexical scope of this instruction. Such scopes are unreachable.
...
llvm-svn: 93967
2010-01-20 02:05:23 +00:00
Devang Patel
a230047a58
MDNodes are not expected to disappear or replaced by another MDNode, so there is no need to pay the cost of WeakVH and ValueMaps.
...
llvm-svn: 93865
2010-01-19 06:19:05 +00:00
Devang Patel
885bd38bfc
Revert accident check-in from r93165.
...
llvm-svn: 93832
2010-01-19 01:26:02 +00:00
Benjamin Kramer
77e20e0bed
Switch some functions to take Twines, eliminate uses of StringExtras.h.
...
llvm-svn: 93680
2010-01-17 07:46:39 +00:00
Chris Lattner
51e8abe640
move the mangler into libtarget from vmcore.
...
llvm-svn: 93664
2010-01-16 21:57:06 +00:00
Chris Lattner
04b7c11880
Change DIEObjectLabel to take an MCSymbol instead of std::string.
...
llvm-svn: 93647
2010-01-16 18:50:28 +00:00
Devang Patel
ab80d29640
No need to use WeakVH here.
...
llvm-svn: 93631
2010-01-16 06:17:40 +00:00
Devang Patel
3bbca51dcd
Replace DebugLocTuple with DILocation.
...
llvm-svn: 93630
2010-01-16 06:09:35 +00:00
Devang Patel
dfde8cf532
Add FIXME.
...
llvm-svn: 93562
2010-01-15 22:08:16 +00:00
Devang Patel
9c7b75ebb8
Do not use AT_specification die for static variables. It confuses gdb.
...
llvm-svn: 93494
2010-01-15 01:12:22 +00:00
Devang Patel
b41a4c332a
Do not emit multiple AT_container_type attributes.
...
We need to find a better way to emit this info.
llvm-svn: 93481
2010-01-15 00:26:31 +00:00
Devang Patel
9874d72976
s/NextValueNo/NextMDValueNo while processing metadata.
...
llvm-svn: 93165
2010-01-11 18:52:33 +00:00
Benjamin Kramer
badb9914d2
Kill dead store.
...
llvm-svn: 92920
2010-01-07 17:50:57 +00:00
Devang Patel
eb75073664
If a scope has only one instruction then first instruction is also the last instruction.
...
llvm-svn: 92736
2010-01-05 16:59:17 +00:00
Devang Patel
e6e1c93fb9
Use StringRef.startswith().
...
llvm-svn: 92671
2010-01-05 01:46:14 +00:00
Devang Patel
6915c52d56
Fix debug_inlined section entries for routines whose names are changed through __asm() extension.
...
llvm-svn: 92533
2010-01-04 23:04:36 +00:00
Devang Patel
23fa5c982d
Fix begin and end markers for nested scopes.
...
llvm-svn: 92505
2010-01-04 20:44:00 +00:00
Chris Lattner
62ba56ca23
move these out of their own timer groups into the 'uncategorized' groups.
...
llvm-svn: 92206
2009-12-28 07:41:18 +00:00
David Greene
42be8783c0
Change errs() to dbgs().
...
llvm-svn: 92096
2009-12-24 00:31:35 +00:00
Devang Patel
ffb33d1df8
Add support to emit debug info for C++ namespaces.
...
llvm-svn: 91440
2009-12-15 19:16:48 +00:00
Devang Patel
101a4bdd4a
Use DW_AT_specification to point to DIE describing function declaration.
...
llvm-svn: 91278
2009-12-14 16:18:45 +00:00
Devang Patel
888cd4aa89
Construct CompileUnits lazily.
...
llvm-svn: 91159
2009-12-11 21:37:07 +00:00
Devang Patel
1202338fa5
If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die.
...
llvm-svn: 91077
2009-12-10 23:25:41 +00:00
Devang Patel
30bc9263b9
Refactor code that finds context for a given die.
...
Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation.
llvm-svn: 91055
2009-12-10 19:14:49 +00:00
Devang Patel
32e16ff8a2
Refactor.
...
llvm-svn: 91051
2009-12-10 18:05:33 +00:00
Devang Patel
796d04d168
Reapply r90858, a cleanup patch.
...
llvm-svn: 90979
2009-12-09 18:24:21 +00:00
Devang Patel
11874672da
Revert 90858 90875 and 90805 for now.
...
llvm-svn: 90898
2009-12-08 23:21:45 +00:00
Devang Patel
5905a705fe
Cleanup.
...
There is no need to supply ModuleCU to addType() as a parameter.
llvm-svn: 90858
2009-12-08 15:31:31 +00:00
Devang Patel
cb39ef375f
Do not try to push dead variable's debug info into namespace info.
...
llvm-svn: 90857
2009-12-08 15:01:35 +00:00
Devang Patel
e59f4f7204
Add support to emit debug info for c++ style namespaces.
...
llvm-svn: 90805
2009-12-07 21:41:32 +00:00
Dan Gohman
bdf1b76e0f
Don't print a space before the : between the file name and line number.
...
And separate the directory and file name with a '/'.
llvm-svn: 90641
2009-12-05 02:00:34 +00:00
Dan Gohman
b2fda9f9f4
Print newlines after printing labels for debug info, so that the output
...
isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3"
llvm-svn: 90638
2009-12-05 01:42:34 +00:00
Devang Patel
10e8f51059
In TAG_subrange_type, uppder bound is zero indexed.
...
llvm-svn: 90617
2009-12-04 23:10:24 +00:00
Devang Patel
2e60d7e71f
Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map.
...
llvm-svn: 90498
2009-12-03 23:46:57 +00:00
Devang Patel
fe7cf074f0
Add support to emit debug info for virtual functions and virtual base classes.
...
llvm-svn: 90474
2009-12-03 19:11:07 +00:00
Devang Patel
45a72a7032
Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite.
...
llvm-svn: 90375
2009-12-03 01:25:38 +00:00
Devang Patel
6f4a280987
Clarify that DIEString does not keep a copy of the string.
...
llvm-svn: 90318
2009-12-02 15:25:16 +00:00
Devang Patel
190698f233
Reuse existing subprogram DIE.
...
llvm-svn: 90281
2009-12-01 23:07:59 +00:00
Devang Patel
45858cdfe6
Clear function specific containers while processing end of a function, even if DW_TAG_subprogram for current function is not found.
...
llvm-svn: 90247
2009-12-01 18:13:48 +00:00
Devang Patel
aca7704897
If pointer type has a name then do not ignore the name.
...
llvm-svn: 90172
2009-11-30 23:56:56 +00:00
Benjamin Kramer
fbac37018a
Avoid some possibly unsafe uses of StringRef::data().
...
llvm-svn: 89873
2009-11-25 18:26:09 +00:00
Devang Patel
d50fc13c19
Use StringRef (again) in DebugInfo interface.
...
llvm-svn: 89866
2009-11-25 17:36:49 +00:00
Devang Patel
f01ac414c5
Use StringRef instead of std::string in DIEString.
...
llvm-svn: 89793
2009-11-24 19:42:17 +00:00
Devang Patel
d7b0871621
Swith to pubtypes section before emitting pub types.
...
llvm-svn: 89787
2009-11-24 19:18:41 +00:00
Devang Patel
11c5d09a35
Emit pubtypes.
...
llvm-svn: 89725
2009-11-24 01:14:22 +00:00
Dan Gohman
24a93f78ae
Simplify this code.
...
llvm-svn: 89702
2009-11-23 21:30:55 +00:00
Devang Patel
6197d0b2eb
Revert r89487.
...
llvm-svn: 89686
2009-11-23 18:43:37 +00:00
Jim Grosbach
f49995d449
Add getFrameIndexReference() to TargetRegisterInfo, which allows targets to
...
tell debug info which base register to use to reference a frame index on a
per-index basis. This is useful, for example, in the presence of dynamic
stack realignment when local variables are indexed via the stack pointer and
stack-based arguments via the frame pointer.
llvm-svn: 89620
2009-11-22 20:14:00 +00:00
Jim Grosbach
0acdac3bf0
80-column cleanup
...
llvm-svn: 89612
2009-11-22 19:20:36 +00:00
Jim Grosbach
99a88f415b
remove trailing whitespace
...
llvm-svn: 89567
2009-11-21 23:12:12 +00:00
Devang Patel
7f5e6b43a0
Cosmetic changes, which were long overdue, in DwarfDebug.cpp.
...
llvm-svn: 89537
2009-11-21 02:48:08 +00:00
Devang Patel
c672dccdbb
Remove dead code.
...
llvm-svn: 89522
2009-11-21 00:54:03 +00:00
Devang Patel
8d7175f85f
There is no need to use FoldingSet to unique DIEs.
...
DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode.
llvm-svn: 89518
2009-11-21 00:31:03 +00:00
Devang Patel
7b6ef33b1c
Do not hold on to a map slot while new entries may be inserted into the map.
...
Use ValueMap, instead of std::map.
llvm-svn: 89490
2009-11-20 21:37:22 +00:00
Devang Patel
35731e4453
There is no need to emit source location info for DW_TAG_pointer_type.
...
llvm-svn: 89487
2009-11-20 21:05:37 +00:00
Nick Lewycky
70113e8a1b
Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507.
...
llvm-svn: 89075
2009-11-17 09:17:08 +00:00
Nick Lewycky
549b6439f3
Revert r88939.
...
llvm-svn: 89066
2009-11-17 08:11:44 +00:00
Devang Patel
aad93dd4c0
Revert r88939.
...
llvm-svn: 88973
2009-11-16 21:53:40 +00:00
Devang Patel
9263c9d854
Add VISIBILITY_HIDDEN marker.
...
llvm-svn: 88939
2009-11-16 19:20:48 +00:00
Devang Patel
7f5ae01388
Ignore nameless variables.
...
llvm-svn: 87069
2009-11-13 02:25:26 +00:00
Devang Patel
c024e96ca3
"Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes.
...
llvm-svn: 87014
2009-11-12 19:02:56 +00:00
Devang Patel
e37dd6ef40
If doesSupportDebugInformation() is false then do not try to emit dwarf debug info.
...
llvm-svn: 86874
2009-11-11 19:55:08 +00:00
Daniel Dunbar
d29c05945a
Fix -Asserts warning.
...
llvm-svn: 86794
2009-11-11 03:09:50 +00:00
Devang Patel
b3f18462ca
Do not assume first function scope seen represents current function.
...
llvm-svn: 86771
2009-11-11 00:31:36 +00:00
Devang Patel
eb421ea5de
While creating DbgScopes, do not forget parent scope.
...
llvm-svn: 86763
2009-11-11 00:18:40 +00:00
Devang Patel
06e690849a
Ignore variable if scope info is not available.
...
llvm-svn: 86753
2009-11-10 23:20:04 +00:00
Devang Patel
5c983cb2ab
Implement support to debug inlined functions.
...
llvm-svn: 86748
2009-11-10 23:06:00 +00:00
Devang Patel
0d1f6a9d0e
Do not bother to emit debug info for nameless global variable.
...
llvm-svn: 86259
2009-11-06 17:58:12 +00:00
Devang Patel
5035033346
Do not try to emit debug info entry for dead global variable.
...
llvm-svn: 86212
2009-11-06 01:30:04 +00:00
Devang Patel
c69c29bc4b
While calculating original type size for a derived type, handle type variants encoded as DIDerivedType appropriately.
...
This improves bitfield support.
llvm-svn: 86073
2009-11-04 23:48:00 +00:00
Devang Patel
799b8cc191
Fix DW_AT_data_member_location for bit-fields. It points to the location of annonymous field that covers respective field.
...
llvm-svn: 86054
2009-11-04 22:06:12 +00:00
Devang Patel
773993746e
Array element size does not match array size but array is not a bitfield.
...
llvm-svn: 86043
2009-11-04 19:37:40 +00:00
Devang Patel
7cb7017106
Ignore unnamed variables.
...
llvm-svn: 85909
2009-11-03 18:30:27 +00:00
Jeffrey Yasskin
bc6f9d7e70
Fix a funky "declared with greater visibility than the type of its field"
...
warning from gcc by removing VISIBILITY_HIDDEN attributes.
llvm-svn: 85873
2009-11-03 06:29:36 +00:00
Devang Patel
635c6192e6
Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid.
...
Use this opportunity to use ValueMap instead of DenseMap.
llvm-svn: 85298
2009-10-27 20:47:17 +00:00
Devang Patel
4790ea6ca2
Do not emit name entry for a pointer type.
...
llvm-svn: 84276
2009-10-16 21:27:43 +00:00
Devang Patel
5920acc861
If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info.
...
llvm-svn: 84262
2009-10-16 18:18:03 +00:00
Devang Patel
22761afada
Add support to record DbgScope as inlined scope.
...
llvm-svn: 84134
2009-10-14 21:08:09 +00:00
Devang Patel
72f708ec2f
s/DebugLoc.CompileUnit/DebugLoc.Scope/g
...
s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g
llvm-svn: 84054
2009-10-13 23:28:53 +00:00
Daniel Dunbar
592c5055dd
Fix a -Asserts warning.
...
llvm-svn: 83950
2009-10-13 06:47:08 +00:00
Devang Patel
aeac1241b8
Find enclosing subprogram info.
...
llvm-svn: 83922
2009-10-12 23:11:24 +00:00
Devang Patel
c97c44b584
Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location.
...
While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself.
llvm-svn: 83684
2009-10-09 22:42:28 +00:00
Devang Patel
a772046766
Check invalid debug info for enums. This may happen when underlyng enum is optimized away. Eventually DwarfChecker will clean this up during llvm verification stage.
...
llvm-svn: 83655
2009-10-09 17:51:49 +00:00
Devang Patel
e16aac2206
Do not record line number to implicitly mark start of function if function has arguments. Extra line number entries trip gdb in some cases.
...
llvm-svn: 83563
2009-10-08 18:48:03 +00:00
Devang Patel
1639c0e45a
Add support to handle debug info attached to an instruction.
...
This is not yet enabled.
llvm-svn: 83400
2009-10-06 18:37:31 +00:00
Devang Patel
bad114ca60
Fix cut-n-pasto.
...
llvm-svn: 83367
2009-10-06 03:15:38 +00:00
Devang Patel
3200e99109
Remove dead code.
...
llvm-svn: 83362
2009-10-06 02:01:32 +00:00
Devang Patel
0141a90812
Add utility routine to set begin and end labels for DbgScopes.
...
This will be used by processDebugLoc().
llvm-svn: 83361
2009-10-06 01:50:42 +00:00
Devang Patel
ac511d1acf
Add utility routine to collect variable debug info. This is not yet used.
...
llvm-svn: 83355
2009-10-06 01:26:37 +00:00
Devang Patel
3b3d8a9d09
Existence of a compile unit for input source file is a good indicator to check debug info's presence in a module.
...
llvm-svn: 83348
2009-10-06 00:03:14 +00:00
Devang Patel
f129b0d44f
If subprogram die is not available then construct new one.
...
This can happen if debug info is processed lazily.
llvm-svn: 83347
2009-10-05 23:59:00 +00:00
Devang Patel
dff583ac49
Adjust context for the global variables that are not at file scope, e.g.
...
void foo() { static int bar = 42; }
Here, foo's DIE is parent of bar's DIE.
llvm-svn: 83344
2009-10-05 23:40:42 +00:00
Devang Patel
4e9591a170
Set address while constructing DIE.
...
llvm-svn: 83343
2009-10-05 23:22:08 +00:00
Devang Patel
28b7c6155c
Gracefully handle various scopes while recording source line info.
...
llvm-svn: 83317
2009-10-05 18:03:19 +00:00
Devang Patel
7aa19711f8
Add support to extract lexical scope information from DebugLoc attached with an machine instruction.
...
This is not yet enabled.
llvm-svn: 83210
2009-10-01 20:31:14 +00:00
Devang Patel
7b4ba71afa
Record first and last instruction of a scope in DbgScope.
...
llvm-svn: 83207
2009-10-01 18:25:23 +00:00
Devang Patel
044648c2d7
Use MDNode * directly as an RecordSourceLine() argument.
...
llvm-svn: 83182
2009-09-30 22:51:28 +00:00
Mike Stump
a3bce35a07
Add a way for a frontend to generate more complex dwarf location
...
information. This allows arbitrary code involving DW_OP_plus_uconst
and DW_OP_deref. The scheme allows for easy extention to include,
any, or all of the DW_OP_ opcodes. I thought about just exposing all
of them, but, wasn't sure if people wanted the dwarf opcodes exposed
in the api. Is that a layering violation?
With this scheme, the entire existing block scheme used by llvm-gcc
can be switched over to the new scheme. I think that would be
cleaner, as then the compiler specific bits are not present in llvm
proper. Before the old code can be yanked however, similar code in
clang would have to be removed.
Next up, more testing.
llvm-svn: 83120
2009-09-30 00:08:22 +00:00
Devang Patel
e5be8e79df
Remove std::string uses from DebugInfo interface.
...
llvm-svn: 83083
2009-09-29 18:40:58 +00:00
Mike Stump
d7a3b26009
Delete space after function name, before (, reflow a comment and
...
delete a few blank lines.
llvm-svn: 82729
2009-09-24 23:21:26 +00:00
Mike Stump
26e902d371
Fix spacing.
...
llvm-svn: 82727
2009-09-24 23:11:08 +00:00
Mike Stump
1f53a128a9
This is overly constraining with respect to clang.
...
llvm-svn: 82591
2009-09-23 00:13:30 +00:00
Daniel Dunbar
9ae3c56c92
Fix indentation.
...
llvm-svn: 82333
2009-09-19 20:40:14 +00:00
Daniel Dunbar
39c0d90339
Strip trailing whitespace.
...
llvm-svn: 82332
2009-09-19 20:40:05 +00:00
Chris Lattner
f720dd9257
eliminate the horrid AsmPrinter::getGlobalLinkName method, inlining
...
it into all of its call sites and simplifying them.
llvm-svn: 81962
2009-09-16 00:08:41 +00:00
Caroline Tice
9584af22be
Don't generate Dwarf line table entries for source line 0.
...
llvm-svn: 81542
2009-09-11 18:25:54 +00:00
Chris Lattner
b9aca1a178
remove DebugLoc from MCInst and eliminate "Comment printing" from
...
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
2009-09-09 23:14:36 +00:00
Devang Patel
c174e064b2
Ignore malformed global variable debug info.
...
llvm-svn: 81055
2009-09-04 23:59:07 +00:00
Devang Patel
fb8892d0e1
Subprogram is a scope. Derive DISubprogram from DIScope.
...
llvm-svn: 80637
2009-08-31 22:47:13 +00:00
Devang Patel
4a89fae1fe
Rename DIBlock as DILexicalBlock.
...
llvm-svn: 80633
2009-08-31 22:00:15 +00:00
Caroline Tice
e49e2d352c
Add flag to mark structs for Apple Block "byref" variables; also add code to
...
modify the type and location debug information for these variables to match the
programmer's expectations.
llvm-svn: 80625
2009-08-31 21:19:37 +00:00
Devang Patel
29f14e754f
Simplify isDerivedType() and other predicate interface.
...
llvm-svn: 80602
2009-08-31 18:49:10 +00:00
Devang Patel
fbaeda732e
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Devang Patel
c1fe40a1b3
Closure is a very generic name. Use AppleBlock instead.
...
llvm-svn: 80307
2009-08-27 23:51:51 +00:00
Devang Patel
10c075a316
Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.
...
llvm-svn: 80073
2009-08-26 05:01:18 +00:00
Devang Patel
7bee319f4a
Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute.
...
Patch by Caroline Tice.
llvm-svn: 80061
2009-08-26 00:39:50 +00:00
Devang Patel
7d42bfab6c
Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
...
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
2009-08-25 05:24:07 +00:00
Chris Lattner
39262eb119
prune the #includes in raw_ostream.h by moving a
...
member out of line. ftostr is not particularly speedy,
so that method is presumably not perf sensitive.
llvm-svn: 79885
2009-08-24 03:52:50 +00:00
Chris Lattner
3203639c35
Prune #includes from llvm/Linker.h and llvm/System/Path.h,
...
forcing them down into various .cpp files.
This change also:
1. Renames TimeValue::toString() and Path::toString() to ::str()
for similarity with the STL.
2. Removes all stream insertion support for sys::Path, forcing
clients to call .str().
3. Removes a use of Config/alloca.h from bugpoint, using smallvector
instead.
4. Weans llvm-db off <iostream>
sys::Path really needs to be gutted, but I don't have the desire to
do it at this point.
llvm-svn: 79869
2009-08-23 22:45:37 +00:00
Chris Lattner
1c6c358071
remove some random indentation stuff, yay for efficiency.
...
llvm-svn: 79797
2009-08-23 00:51:00 +00:00
Chris Lattner
8d06945fff
rename TAI -> MAI, being careful not to make MAILJMP instructions :)
...
llvm-svn: 79777
2009-08-22 21:43:10 +00:00
Chris Lattner
5d8af49626
Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.
...
llvm-svn: 79763
2009-08-22 20:48:53 +00:00
Devang Patel
c071d6c1b4
Record variable debug info at ISel time directly.
...
llvm-svn: 79742
2009-08-22 17:12:53 +00:00
David Greene
1df248be05
Add missing includes.
...
llvm-svn: 79473
2009-08-19 21:52:55 +00:00
Chris Lattner
9cbc9c2d13
eliminate AsmPrinter::SwitchToSection and just have clients
...
talk to the MCStreamer directly instead.
llvm-svn: 79405
2009-08-19 05:49:37 +00:00
Devang Patel
b6add4ace3
Do not completely skip subrange info for a zero sized array.
...
llvm-svn: 79044
2009-08-14 20:59:16 +00:00
Chris Lattner
9e2c3aa666
sink the 'name' and 'isdirective' state out of MCSection into its derived classes.
...
This totally optimizes PIC16 sections by not having an 'isdirective' bit anymore!! ;-)
llvm-svn: 78517
2009-08-08 23:39:42 +00:00
Chris Lattner
628047fd32
eliminate CurrentSection, rename CurrentSection_ -> CurrentSection, make it private,
...
eliminate IsInTextSection.
llvm-svn: 78017
2009-08-03 23:20:21 +00:00
Chris Lattner
738a9ba448
move dwarf debug info section selection stuff from TAI to
...
TLOF, unifying all the dwarf targets at the same time.
llvm-svn: 77889
2009-08-02 07:24:22 +00:00
Chris Lattner
75b7692e66
switch off of 'Section' onto MCSection. We're not properly using
...
MCSection subclasses yet, but this is a step in the right direction.
llvm-svn: 77708
2009-07-31 18:48:30 +00:00
Devang Patel
9b0dea089b
Start using DebugInfoFinder.
...
llvm-svn: 77621
2009-07-30 18:56:46 +00:00
Chris Lattner
55461787cc
Rip all of the global variable lowering logic out of TargetAsmInfo. Since
...
it is highly specific to the object file that will be generated in the end,
this introduces a new TargetLoweringObjectFile interface that is implemented
for each of ELF/MachO/COFF/Alpha/PIC16 and XCore.
Though still is still a brutal and ugly refactoring, this is a major step
towards goodness.
This patch also:
1. fixes a bunch of dangling pointer problems in the PIC16 backend.
2. disables the TargetLowering copy ctor which PIC16 was accidentally using.
3. gets us closer to xcore having its own crazy target section flags and
pic16 not having to shadow sections with its own objects.
4. fixes wierdness where ELF targets would set CStringSection but not
CStringSection_. Factor the code better.
5. fixes some bugs in string lowering on ELF targets.
llvm-svn: 77294
2009-07-28 03:13:23 +00:00
Daniel Dunbar
4a36d5dcfd
Remove Value::getName{Start,End}, the last of the old Name APIs.
...
llvm-svn: 77152
2009-07-26 09:48:23 +00:00
Devang Patel
58a041b634
Skip special LLVM prefix '1' while emitting linknage name.
...
This prefix is used by LLVM to inform the asm printer to not emit usual global symbol prefix before the symbol name.
llvm-svn: 75875
2009-07-16 01:01:22 +00:00
Chris Lattner
2a6bb9bc51
Change the internal interface to makeNameProper to take a bool that
...
indicates whether the label is private or not, instead of taking
prefix stuff. One effect of this is that symbols will be generated
with *just* the private prefix, instead of both the private prefix
*and* the user-label-prefix, but this doesn't matter as long as it
is consistent. For example we'll now get "Lfoo" instead of "L_foo".
These are just assembler temporary labels anyway, so they never even
make it into the .o file.
llvm-svn: 75607
2009-07-14 04:50:12 +00:00
Devang Patel
4992f3bed3
Do not use Mangler to remove '1' from linkage name.
...
llvm-svn: 75574
2009-07-14 00:55:28 +00:00
Devang Patel
8af4ed78a9
Use assertion.
...
llvm-svn: 75540
2009-07-13 22:46:19 +00:00
Devang Patel
af27c5b2bd
Use AsmPrinter's Mangler to remove leading '1' from linkage names.
...
llvm-svn: 75515
2009-07-13 21:48:26 +00:00
Devang Patel
f1387bc427
revert rev. 75503 for now.
...
llvm-svn: 75507
2009-07-13 21:26:33 +00:00
Devang Patel
ca075d2f7a
Use Mangler to remove leading '1' from linkage names.
...
llvm-svn: 75503
2009-07-13 21:19:56 +00:00
Devang Patel
e416111eeb
Accidently dropped this while removing dead code in previous commit.
...
llvm-svn: 74953
2009-07-07 21:55:14 +00:00
Devang Patel
4fdc3e6c1d
Remove dead code.
...
llvm-svn: 74949
2009-07-07 21:12:32 +00:00
Devang Patel
e35cd91347
Struct types are described using field types only.
...
llvm-svn: 74477
2009-06-29 23:46:50 +00:00
Devang Patel
bff451b95b
s/MainCU/ModuleCU/g
...
llvm-svn: 74452
2009-06-29 20:45:18 +00:00
Devang Patel
4ba8cbff55
Multiple DW_TAG_compile_unit is not used, afaict, on any target.
...
Update dwarf writer to only emit one DW_TAG_compile_unit per .o file.
llvm-svn: 74449
2009-06-29 20:38:13 +00:00
Devang Patel
84a8914a4a
Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprograms
...
and llvm.dbg.global_variables.
llvm-svn: 74251
2009-06-26 01:49:18 +00:00
Devang Patel
32bbebe82f
Simplify.
...
llvm-svn: 74215
2009-06-25 22:36:02 +00:00
Owen Anderson
7b32a5b971
Down with statics!
...
llvm-svn: 74134
2009-06-24 22:53:20 +00:00
Chris Lattner
ea0ea2f4bc
simplify macro debug info directive handling.
...
llvm-svn: 73736
2009-06-18 23:31:37 +00:00
Devang Patel
5941941827
Use MainCU if it is available.
...
llvm-svn: 73457
2009-06-16 02:09:30 +00:00
Devang Patel
1fb2606b12
Gracefully handle imbalanced inline function begin and end markers.
...
llvm-svn: 73426
2009-06-15 21:45:50 +00:00
Devang Patel
bcc1187643
llvm.dbg.region.end() intrinsic is not required to be in _last_ basic block in a function. If that happens then any basic block that follows (lexically) the block with regin.end will not have scope info available. LexicalScopeStack relies on processing basic block in CFG order, but this processing order is not guaranteed. Things get complicated when the optimizer gets a chance to optimizer IR with dbg intrinsics.
...
Apply defensive patch to preserve at least one lexical scope till the end of function.
llvm-svn: 73282
2009-06-13 02:16:18 +00:00
Devang Patel
8d9aa4249a
Clear AbstractInstanceRootMap at the end of the function.
...
llvm-svn: 73244
2009-06-12 19:24:05 +00:00
Dan Gohman
ee407d25ca
Remove some unnecessary #includes.
...
llvm-svn: 72948
2009-06-05 16:32:58 +00:00
Bill Wendling
c77c8e5f6e
Accidental commit. This isn't ready for prime time just yet.
...
llvm-svn: 72699
2009-06-01 20:18:46 +00:00
Bill Wendling
8235a05c1a
Untabification.
...
llvm-svn: 72604
2009-05-30 01:09:53 +00:00
Bill Wendling
0404cd92ab
Minor code cleanup. No functionality change.
...
llvm-svn: 72198
2009-05-20 23:31:45 +00:00
Bill Wendling
2a97cb4881
Merge 'ConstructFunctionDbgScope' and 'ConstructAbstractDbgScope'.
...
llvm-svn: 72197
2009-05-20 23:28:48 +00:00
Bill Wendling
acc358774c
Rename 'New*' methods to 'Create*' to be consistent. 'NewString' isn't used.
...
llvm-svn: 72196
2009-05-20 23:24:48 +00:00
Bill Wendling
bd78fe50a3
Add comment for emit section.
...
llvm-svn: 72195
2009-05-20 23:22:40 +00:00
Bill Wendling
9a2d96a37a
Move 'Emit' methods down to their own place.
...
llvm-svn: 72194
2009-05-20 23:21:38 +00:00
Bill Wendling
b77e48674c
Revert r72192. It was causing a build failure.
...
llvm-svn: 72193
2009-05-20 23:19:06 +00:00
Bill Wendling
864c567fc8
Do some mechanical changes. Combine the 'construct abastract dbg thingy' in with
...
the 'constract function dbg thingy'. Rename some methods to make them consistent
with the rest of the methods. Move the 'Emit' methods to the end of the file.
llvm-svn: 72192
2009-05-20 23:04:56 +00:00
Bill Wendling
a443337af0
Don't set the "location" information for inlined functions' variables.
...
llvm-svn: 72064
2009-05-18 23:08:55 +00:00
Bill Wendling
8e6fe772be
Small code cleanup.
...
llvm-svn: 72057
2009-05-18 22:33:01 +00:00
Bill Wendling
45cb84b4e3
RecordVariable is called each time a DECLARE node is encountered. For an inlined
...
function, this could be many, many times. We don't want to re-add variables to
that DIE for each time. We just want to add them once. Check to make sure that
we haven't added them already.
llvm-svn: 72047
2009-05-18 22:02:36 +00:00
Bill Wendling
ac4cfe34e6
Split out the DwarfDebug module from the DwarfWriter module.
...
Again, no intendtional functionality change.
llvm-svn: 71854
2009-05-15 09:23:25 +00:00