Stuart Hastings
0db4271069
Correct line info for declarations/definitions. Radar 8063111.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108784 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 23:56:30 +00:00
Devang Patel
8b3a6b651e
Fix PR 7662.
...
Do not try to insert local variable info to a DIE used for function declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108731 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 17:53:55 +00:00
Daniel Dunbar
d73ada7d24
Target: Give the TargetAsmParser access to the TargetMachine.
...
- Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108664 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 00:33:49 +00:00
Daniel Dunbar
9fbb37e10d
MC: Move several clients to using AsmParser constructor function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108645 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-18 18:31:33 +00:00
Bill Wendling
7490896f9d
Use isPrologLabel() instead of checking the opcode directly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108628 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-17 19:18:44 +00:00
Bill Wendling
dc86704114
Consider this function:
...
void foo() { __builtin_unreachable(); }
It will output the following on Darwin X86:
_func1:
Leh_func_begin0:
pushq %rbp
Ltmp0:
movq %rsp, %rbp
Ltmp1:
Leh_func_end0:
This prolog adds a new Call Frame Information (CFI) row to the FDE with an
address that is not within the address range of the code it describes -- part is
equal to the end of the function -- and therefore results in an invalid EH
frame. If we emit a nop in this situation, then the CFI row is now within the
address range.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108568 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 22:51:10 +00:00
Bill Wendling
7431beaba2
Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and
...
thus is a much more meaningful name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 22:20:36 +00:00
Jakob Stoklund Olesen
04c528a0c8
Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway.
...
TII::isMoveInstr is going tobe completely removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 04:45:42 +00:00
Chris Lattner
b5b73c4c86
a more graceful fix for test/Other/inline-asm-newline-terminator.ll,
...
follow on to r103765
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108390 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 00:37:34 +00:00
Stuart Hastings
99cfb69f17
Reverting r107918 and r107919. Radar 8063111.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107930 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 23:25:39 +00:00
Devang Patel
0afbf23453
Relax assertion. In optimized code, it is possible that first instruction is coming from a inlined function.
...
This fixes PR7596 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107923 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 22:39:20 +00:00
Stuart Hastings
c0e2639a34
Fix decl/def debug info for template functions. Radar 8063111.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 22:28:59 +00:00
Devang Patel
ca76f6f57c
Reuse DIEInteger for 1. This is frequently used while emitting an attribute using dwarf::DW_FORM_flag form.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107903 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-08 20:10:35 +00:00
Devang Patel
8aa61477e3
One MDNode may be used to create regular DIE as well as abstract DIE.
...
Keep track of abstract subprogram DIEs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107822 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-07 22:20:57 +00:00
Devang Patel
869aa463c8
Rename couple of maps.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107810 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-07 20:49:57 +00:00
Devang Patel
6140962aba
80 cols.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107807 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-07 20:12:52 +00:00
Dale Johannesen
f1e309eb48
Propagate the AlignStack bit in InlineAsm's to the
...
PrologEpilog code, and use it to determine whether
the asm forces stack alignment or not. gcc consistently
does not do this for GCC-style asms; Apple gcc inconsistently
sometimes does it for asm blocks. There is no
convenient place to put a bit in either the SDNode or
the MachineInstr form, so I've added an extra operand
to each; unlovely, but it does allow for expansion for
more bits, should we need it. PR 5125. Some
existing testcases are affected.
The operand lists of the SDNode and MachineInstr forms
are indexed with awesome mnemonics, like "2"; I may
fix this someday, but not now. I'm not making it any
worse. If anyone is inspired I think you can find all
the right places from this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-02 20:16:09 +00:00
Bill Wendling
eabd735c9a
Make the "linker_private" linkage type emit a non-weak symbol to the file. It
...
will still be stripped by the linker when it generates the final image.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107440 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 22:38:24 +00:00
Bill Wendling
5e721d7682
Implement the "linker_private_weak" linkage type. This will be used for
...
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.
For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:
.globl l_objc_msgSend_fixup_alloc
.weak_definition l_objc_msgSend_fixup_alloc
.section __DATA, __objc_msgrefs, coalesced
.align 3
l_objc_msgSend_fixup_alloc:
.quad _objc_msgSend_fixup
.quad L_OBJC_METH_VAR_NAME_1
This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".
Currently only supported on Darwin platforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 21:55:59 +00:00
Devang Patel
7fb231cbec
Do not require line number entry for undefined local variable.
...
This is a regression caused by r106792 and caught by gdb testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107430 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 21:38:08 +00:00
Daniel Dunbar
9186fa6b0c
MC: Pass the target instance to the AsmParser constructor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107426 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 20:41:56 +00:00
Mikhail Glushenkov
dd2ad8432f
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107360 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-01 01:00:22 +00:00
Devang Patel
90e19aad7d
Do not construct DIE for already processed MDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107237 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 01:40:11 +00:00
Devang Patel
1d68d21bae
Add variables into a scope before constructing scope DIE otherwise variables won't be included DIE tree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-30 00:11:08 +00:00
Bill Wendling
07d3177117
Revert r107205 and r107207.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 22:34:52 +00:00
Devang Patel
e025e966a8
Print InlinedAt location.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107214 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 22:29:15 +00:00
Bill Wendling
207855cff9
Introducing the "linker_weak" linkage type. This will be used for Objective-C
...
metadata types which should be marked as "weak", but which the linker will
remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
defined like this:
.globl l_objc_msgSend_fixup_alloc
.weak_definition l_objc_msgSend_fixup_alloc
.section __DATA, __objc_msgrefs, coalesced
.align 3
l_objc_msgSend_fixup_alloc:
.quad _objc_msgSend_fixup
.quad L_OBJC_METH_VAR_NAME_1
This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 21:24:00 +00:00
Devang Patel
1e4782d6f9
Do not hardcode DW_AT_stmt_list value.
...
Inspired by Artur Pietrek.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107202 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-29 20:17:53 +00:00
Devang Patel
9b93b6b49a
Use DW_FORM_addr for DW_AT_entry_pc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107085 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 22:22:47 +00:00
Devang Patel
0dd4558e7d
Include inlined function in list of processed subprograms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107065 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 20:53:04 +00:00
Devang Patel
4a1cad673c
Preserve deleted function's local variables' debug info.
...
Radar 8122864.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107027 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 18:25:03 +00:00
Devang Patel
f347b82d49
Remove dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106990 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-28 05:59:13 +00:00
Devang Patel
78e127d81b
Collect debug info for optimized variables of inlined functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106895 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-25 22:07:34 +00:00
Devang Patel
486ca76421
DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument.
...
Radar 8122864.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106792 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-24 21:51:19 +00:00
Devang Patel
a762b09310
Use single interface, using twine, to get named metadata.
...
getNamedMetadata().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-22 01:19:38 +00:00
Devang Patel
7e1d742e1a
Discard special LLVM prefix from linkage name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106516 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-22 01:06:05 +00:00
Devang Patel
d1bbc6b70e
Do not rely on Twine temporaries to survive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106515 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-22 01:01:58 +00:00
Dan Gohman
03c3dc7b68
Give NamedRegionTimer an Enabled flag, allowing all its clients to
...
switch from this:
if (TimePassesIsEnabled) {
NamedRegionTimer T(Name, GroupName);
do_something();
} else {
do_something(); // duplicate the code, this time without a timer!
}
to this:
{
NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled);
do_something();
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-18 15:56:31 +00:00
Devang Patel
2f7d5291de
Use separate named MDNode to hold each function's local variable info.
...
This speeds up local variable handling in DwarfDebug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-16 00:53:55 +00:00
Eric Christopher
7500e06e38
Don't emit the linkage for initializer label for mach-o tls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106073 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-16 00:27:30 +00:00
Stuart Hastings
cad22ad0bf
Added a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15 23:06:30 +00:00
Stuart Hastings
215aa15a0d
Support for nested functions/classes in debug output. (Again.) Radar 7424645.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105828 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-11 20:08:44 +00:00
Stuart Hastings
6d56b9fabc
Revert 105492 & 105493 due to a testcase regression. Radar 7424645.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-05 00:39:29 +00:00
Stuart Hastings
0f1b813567
Support for nested functions/classes in debug output. Radar 7424645.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04 22:36:03 +00:00
Eric Christopher
7310064f4d
One underscore, not two.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105379 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-03 04:02:59 +00:00
Devang Patel
354eb7ea96
Skip identical instruction while calculating DBG_VALUE range.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105340 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 19:05:13 +00:00
Devang Patel
b9abe9f2ad
Use local small vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105332 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-02 16:42:51 +00:00
Devang Patel
f2e7767624
Ignore line number of debug value in undefined register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105292 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-01 21:43:09 +00:00
Stuart Hastings
8ffc42f8ea
Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28 16:41:07 +00:00
Devang Patel
d8720f4ba3
Do not drop location info for inlined function args.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104884 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-27 20:25:04 +00:00