Jim Grosbach
3d1eac85c3
Thumb2 assembler parsing and encoding of IT instruction.
...
This handles only the handling of the IT instruction itself, not the
processing and validation of the instructions in the IT block. That's next,
and will include encoding tests for IT itself.
llvm-svn: 138665
2011-08-26 21:43:41 +00:00
Bill Wendling
71fce2c84d
Update the dominator tree with the correct dominator for the new 'unwind' block.
...
llvm-svn: 138664
2011-08-26 21:36:12 +00:00
Chad Rosier
39ab743e59
[driver] When generating temporary files allow a prefix to be added. In many
...
cases we want the prefix to be the original file name less the suffix. For an
input such as test.c to named temporary would be something like test-3O4Clq.o
Part of <rdar://problem/8314451>
llvm-svn: 138662
2011-08-26 21:28:44 +00:00
Douglas Gregor
f337ae9477
When we're deserializing declarations lexically stored in a RecordDecl
...
after having already deserialized the fields, clear out the fields
first. This makes sure that we keep all of the declarations in the
lexical context (including those implicitly added by later
type-checking) within the same list. A test case for this behavior is
coming as part of another commit; testing for this problem in
isolation is a nightmare.
llvm-svn: 138661
2011-08-26 21:23:06 +00:00
Eli Friedman
5e5704277f
Add support for generating CMPXCHG16B on x86-64 for the cmpxchg IR instruction.
...
llvm-svn: 138660
2011-08-26 21:21:21 +00:00
Fariborz Jahanian
97b6ac5407
objc-arc: Mention property's attribute by name when
...
finding life-time conflict with its declared ivar.
// rdar://10007230
llvm-svn: 138659
2011-08-26 21:21:19 +00:00
Bill Wendling
fee8eda35b
Split the landing pad block only if it's a critical edge. Also intelligently
...
split it in the other place where we're splitting critical edges.
llvm-svn: 138658
2011-08-26 21:18:55 +00:00
Owen Anderson
fd60f60ed1
Fix ARM codegen breakage caused by r138653.
...
llvm-svn: 138657
2011-08-26 21:12:37 +00:00
Bill Wendling
ac88ab7cce
Revert r138606 until LowerInvoke has been converted to the new EH scheme.
...
llvm-svn: 138656
2011-08-26 21:11:23 +00:00
John McCall
17054bd670
Slight optimization enabled by the previous assert:
...
emit all gl-value arguments as reference bindings.
llvm-svn: 138655
2011-08-26 21:08:13 +00:00
Eric Christopher
3cc90fe5a5
Whitespace and 80-col.
...
llvm-svn: 138654
2011-08-26 21:02:40 +00:00
Owen Anderson
16d33f36d5
invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure.
...
llvm-svn: 138653
2011-08-26 20:43:14 +00:00
Andrew Trick
28dc5abd05
valgrind: Always suppress tblgen leaks.
...
I'll clean up the rest of the XFAIL: vg_leak lines if this works.
llvm-svn: 138652
2011-08-26 20:41:20 +00:00
Bill Wendling
eed1e8905a
Don't sink landingpad instructions during ind-var simplification.
...
llvm-svn: 138651
2011-08-26 20:40:15 +00:00
Jordy Rose
256a6dd13b
[analyzer] Remove a couple of unnecessary returns after llvm_unreachables.
...
llvm-svn: 138649
2011-08-26 20:32:01 +00:00
Eli Friedman
755c0c996a
Don't assert on taking the address of a non-type template parameter. Fixes PR10766.
...
llvm-svn: 138648
2011-08-26 20:28:17 +00:00
Andrew Trick
07aeb629ec
Use %% for literals in RUN lines.
...
llvm-svn: 138647
2011-08-26 20:09:48 +00:00
Greg Clayton
8f258513a1
Fixed an assertion that could happen if we happened to parse a mach-o object
...
file that had a symbol that had a section specified where the section had
zero size. We now honor this section definition for the symbol and don't
assert anymore.
llvm-svn: 138646
2011-08-26 20:01:35 +00:00
Eli Friedman
79b2d3a4d4
Make sure we don't crash printing builtin candidates for overloads of deleted operators. Fixes PR10757.
...
llvm-svn: 138645
2011-08-26 19:46:22 +00:00
Jim Ingham
318c9f2240
Move DIE location reporting into the DWARFDebugInfo class, use it from there in SymbolFileDWARF::ParseType (and eventually in other interesting places as well.)
...
llvm-svn: 138644
2011-08-26 19:44:13 +00:00
Owen Anderson
5658b49f64
Update for feedback from Jim.
...
llvm-svn: 138642
2011-08-26 19:39:26 +00:00
Douglas Gregor
37e94d06ba
lit: Add %T as a replacement for the output directory
...
llvm-svn: 138640
2011-08-26 19:05:18 +00:00
John McCall
0a76c0cf68
Assert that a call argument is a gl-value iff the parameter is a reference type.
...
llvm-svn: 138639
2011-08-26 18:42:59 +00:00
John McCall
1cd60a2670
In -Wno-error=non-pod-varargs, initialize a temporary with
...
the crazy comma expression so that we get an r-value in the
varargs position.
llvm-svn: 138638
2011-08-26 18:41:18 +00:00
Chad Rosier
f29d9aa5f5
[driver] Remove a few more options when clang invokes cc1plus for i386 kexts.
...
<rdar://problem/10027287>
llvm-svn: 138637
2011-08-26 18:30:43 +00:00
Benjamin Kramer
aa38dbadca
ARMDisassembler: Always return a size, even when disassembling fails.
...
This should fix PR10772.
llvm-svn: 138636
2011-08-26 18:21:36 +00:00
Owen Anderson
a01bcbfc80
Support an extension of ARM asm syntax to allow immediate operands to ADR instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
...
llvm-svn: 138635
2011-08-26 18:09:22 +00:00
Benjamin Kramer
6eb9666bb8
We don't care if TableGen leaks memory.
...
llvm-svn: 138634
2011-08-26 17:00:30 +00:00
Axel Naumann
cb2c52f7ac
From Vassil Vassilev: unnamed decls cannot be removed from the lookup map.
...
llvm-svn: 138631
2011-08-26 14:06:12 +00:00
Kalle Raiskila
db6f646ec3
Don't insert branch hint lables that are never used.
...
llvm-svn: 138630
2011-08-26 10:14:56 +00:00
John McCall
cac93853ae
What say we document some of these AggValueSlot flags a bit
...
better.
llvm-svn: 138628
2011-08-26 08:02:37 +00:00
John McCall
46759f4f46
Since the 'is aliased' bit is critical for correctness in C++, it
...
really shouldn't be optional. Fix the remaining place where a
temporary was being passed as potentially-aliased memory.
Fixes PR10756.
llvm-svn: 138627
2011-08-26 07:31:35 +00:00
Owen Anderson
f3b6507e26
Add a testcase for r138625.
...
llvm-svn: 138626
2011-08-26 06:45:08 +00:00
Owen Anderson
149695627a
Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors.
...
This is the last disassembly crash detected by exhaustive Thumb2 instruction space. Major thanks to Chandler Carruth for making this kind of exhaustive testing possible.
llvm-svn: 138625
2011-08-26 06:19:51 +00:00
John McCall
a8a39bc346
An initialization does not alias.
...
llvm-svn: 138624
2011-08-26 05:38:08 +00:00
Craig Topper
c66d50d1a2
Fix disassembling of VCVTSD2SI
...
llvm-svn: 138623
2011-08-26 04:49:29 +00:00
Andrew Trick
147d9cde78
LoopInfo::updateUnloop fix, and verify Block->Loop maps.
...
Fixes an oversight, and adds verification to catch it in the unloop.ll tests.
llvm-svn: 138622
2011-08-26 03:06:34 +00:00
Eli Friedman
452aae6202
Atomic load/store on ARM/Thumb.
...
I don't really like the patterns, but I'm having trouble coming up with a
better way to handle them.
I plan on making other targets use the same legalization
ARM-without-memory-barriers is using... it's not especially efficient, but
if anyone cares, it's not that hard to fix for a given target if there's
some better lowering.
llvm-svn: 138621
2011-08-26 02:59:24 +00:00
Greg Clayton
05562d1e5c
Added code to test hash bucket sizes for an DWARF index that we can write
...
to a file.
llvm-svn: 138620
2011-08-26 02:44:58 +00:00
Benjamin Kramer
0655b78ccc
Address review comments.
...
- Reword comments.
- Allow undefined behavior interfering with undefined behavior.
- Add address space checks.
llvm-svn: 138619
2011-08-26 02:25:55 +00:00
Benjamin Kramer
fb212a6309
SimplifyCFG: If we have a PHI node that can evaluate to NULL and do a load or store to the address returned by the PHI node then we can consider this incoming value as dead and remove the edge pointing there, unless there are instructions that can affect control flow executed in between.
...
In theory this could be extended to other instructions, eg. division by zero, but it's likely that it will "miscompile" some code because people depend on div by zero not trapping. NULL pointer dereference usually leads to a crash so we should be on the safe side.
This shrinks the size of a Release clang by 16k on x86_64.
llvm-svn: 138618
2011-08-26 01:22:29 +00:00
Chad Rosier
aedf7d5f4e
Take 2: Actually fix spacing.
...
llvm-svn: 138617
2011-08-26 00:49:52 +00:00
John McCall
eb07554d9c
Be sure to do unary conversions on the operand to an ARC
...
bridged cast. Noticed by AST inspection by Ted Kremenek!
llvm-svn: 138616
2011-08-26 00:48:42 +00:00
John McCall
35e4f0cd0f
The allocated exception slot does not alias anything; should fix self-host.
...
llvm-svn: 138615
2011-08-26 00:46:38 +00:00
Chad Rosier
3b561ebd44
80-column.
...
llvm-svn: 138614
2011-08-26 00:44:04 +00:00
Jeffrey Yasskin
0e9cdbbb06
Handle CXXTempObjectRegion in StackAddrEscapeChecker.
...
Also convert stack-addr-ps.cpp to use the analyzer instead of just Sema, now
that it doesn't crash, and extract the stack-block test into another file since
it errors, and that prevents the analyzer from running.
llvm-svn: 138613
2011-08-26 00:41:31 +00:00
Chad Rosier
ba3df1d3ca
[driver] Add -mglobal-merge/-mno-global-merge machine options to enable/disable merging of
...
globals during codegen.
Fixes <rdar://problem/10017909>.
llvm-svn: 138612
2011-08-26 00:26:29 +00:00
Francois Pichet
35bc5de3bd
revert 138610, accidental commit.
...
llvm-svn: 138611
2011-08-26 00:22:34 +00:00
Francois Pichet
9a98454a7d
(no commit message)
...
llvm-svn: 138610
2011-08-26 00:18:13 +00:00
Jordy Rose
9942fe7c87
[analyzer] Increase the number of possible checks for a checker.
...
llvm-svn: 138609
2011-08-26 00:08:00 +00:00