Dan Gohman
10a18d55ce
Don't convert objc_autoreleaseReturnValue to objc_autorelease if the result
...
is returned through a bitcast.
llvm-svn: 137402
2011-08-12 00:36:31 +00:00
Anna Zaks
9b25cee36f
Optimizations for Dependent Symbol tracking (as per Ted's code review for r137309):
...
1) Change SymbolDependTy map to keep pointers as data. And other small tweaks like making the DenseMap smaller 64->16 elements; remove removeSymbolDependencies() as it will probably not be used.
2) Do not mark dependents live more then once.
llvm-svn: 137401
2011-08-12 00:34:56 +00:00
Nick Lewycky
0847b3a6d3
A virtual destructor for the class with virtual methods!
...
llvm-svn: 137400
2011-08-12 00:32:15 +00:00
Dan Gohman
121302772d
Don't let arbitrary calls disrupt nested retain+release pairs if
...
the retains and releases all use the same SSA pointer value.
Also, don't let CFG hazards disrupt nested retain+release pair
optimizations.
llvm-svn: 137399
2011-08-12 00:26:31 +00:00
Dan Gohman
4767a1a117
Use an actual reverse-CFG reverse-postorder for the bottom-up traversal,
...
rather than plain postorder, so that CFG constructs like single-exit loops
are reliably visited in a sensible order.
llvm-svn: 137398
2011-08-12 00:24:29 +00:00
Jakob Stoklund Olesen
1f582ba609
Simplify the interference checking code a bit.
...
This is possible now that we now longer provide an interface to iterate
the interference overlaps.
llvm-svn: 137397
2011-08-12 00:22:04 +00:00
Johnny Chen
1cee80c081
Silence the static analyzer.
...
llvm-svn: 137396
2011-08-12 00:21:20 +00:00
Douglas Gregor
dab42432d7
In the serialized AST format, make the translation unit a "predefined"
...
declaration that never actually gets serialized. Instead, serialize
the various kinds of update records (lexical decls, visible decls, the
addition of an anonymous namespace) for the translation unit, even if
we're not chaining. This way, we won't have to deal with multiple
loaded translation unit declarations.
llvm-svn: 137395
2011-08-12 00:15:20 +00:00
Johnny Chen
d397dc80eb
Fix two 'dereference of a null pointer' detected by the static analyzer.
...
llvm-svn: 137394
2011-08-12 00:02:24 +00:00
Jim Grosbach
1978ddf769
Clean up formatting a bit.
...
llvm-svn: 137393
2011-08-11 23:57:17 +00:00
Sean Callanan
912855fd27
Fixed LLDB's handling of ElaboratedTypes, which was
...
causing problems with printing the values of persistent
variables with struct types.
llvm-svn: 137392
2011-08-11 23:56:13 +00:00
Jim Grosbach
8cffa28af8
ARM vector compare to zero instruction assembly parsing support.
...
llvm-svn: 137389
2011-08-11 23:51:13 +00:00
Eli Friedman
1696033373
Fix mismatched tag.
...
llvm-svn: 137388
2011-08-11 23:48:52 +00:00
Johnny Chen
ec34c6aba5
Silence the static analyzer.
...
llvm-svn: 137387
2011-08-11 23:47:21 +00:00
Eli Friedman
7b8cc7e938
Revision to Atomics guide, per Chris's comments.
...
llvm-svn: 137386
2011-08-11 23:44:25 +00:00
Andrew Trick
2d8494a030
A slew of unit tests for the recent LoopInfo::updateUnloop feature
...
checked in at r137276 and r137341.
llvm-svn: 137385
2011-08-11 23:38:09 +00:00
Andrew Trick
2b6860f0a1
Allow loop unrolling to get known trip counts from ScalarEvolution.
...
SCEV unrolling can unroll loops with arbitrary induction variables. It
is a prerequisite for -disable-iv-rewrite performance. It is also
easily handles loops of arbitrary structure including multiple exits
and is generally more robust.
This is under a temporary option to avoid affecting default
behavior for the next couple of weeks. It is needed so that I can
checkin unit tests for updateUnloop.
llvm-svn: 137384
2011-08-11 23:36:16 +00:00
Argyrios Kyrtzidis
1d233f9a5e
Fix a PCH crash bug where we kept a reference inside a DenseMap while the map was getting modified.
...
No test case, sorry. It's one of those bugs where it's really really hard to make one. rdar://9910862.
llvm-svn: 137383
2011-08-11 23:26:42 +00:00
Ted Kremenek
d33c4d39a0
scan-build: enable C++ support by default.
...
llvm-svn: 137382
2011-08-11 22:47:20 +00:00
Jakob Stoklund Olesen
da0192d72b
Remove the InterferenceResult class.
...
llvm-svn: 137381
2011-08-11 22:46:06 +00:00
Jakob Stoklund Olesen
cd14efaec2
Eliminate the last use of InterferenceResult.
...
The Query class now holds two iterators instead of an InterferenceResult
instance. The iterators are used as bookmarks for repeated
collectInterferingVRegs calls.
llvm-svn: 137380
2011-08-11 22:46:04 +00:00
Akira Hatanaka
79d60d0e94
Enclose directive .cprestore with .set macro and nomacro to silence assembler
...
warning.
llvm-svn: 137378
2011-08-11 22:42:31 +00:00
Richard Trieu
aee9e76722
The current warning in -Wnull-arithmetic for comparisons between NULL and non-pointers is not very helpful. This patch will update the wording to be more helpful to users.
...
Old warning:
warning: use of NULL in arithmetic operation [-Wnull-arithmetic]
return 10 <= NULL;
^ ~~~~
New warning:
warning: comparison between NULL and non-pointer ('int' and NULL) [-Wnull-arithmetic]
return 10 <= NULL;
~~ ^ ~~~~
llvm-svn: 137377
2011-08-11 22:38:21 +00:00
Jim Grosbach
aa07cb6a98
Fix tests per now-correct encoding as of r137371.
...
llvm-svn: 137376
2011-08-11 22:31:48 +00:00
Jim Grosbach
37f7e6b2f4
Remove no-longer-true comments. These are for the assembler, also.
...
llvm-svn: 137375
2011-08-11 22:30:30 +00:00
Johnny Chen
ec95565a9d
Fix 'Undefined or garbage value returned to caller' (static analyzer).
...
llvm-svn: 137374
2011-08-11 22:23:44 +00:00
Douglas Gregor
aa8a827f08
When initializing a context from a particular AST file, check whether
...
either "special" type has already been initialized. Previously, we did
this check based on just the first special type (__builtin_va_list),
but now we have some NULL special type entries to content with.
llvm-svn: 137373
2011-08-11 22:18:49 +00:00
Jim Grosbach
e25942154c
ARM STRT assembly parsing and encoding.
...
llvm-svn: 137372
2011-08-11 22:18:00 +00:00
Owen Anderson
eca346ee1a
Make the USAT16 operand decoder auto-generate-able.
...
llvm-svn: 137371
2011-08-11 22:10:11 +00:00
Owen Anderson
ff0b442330
Add another accidentally omitted predicate operand.
...
llvm-svn: 137370
2011-08-11 22:08:38 +00:00
Ted Kremenek
228b5fefbb
Add diagtool-based test where we enforce that no additional warnings can be added to Clang without a -W flag.
...
llvm-svn: 137369
2011-08-11 22:06:55 +00:00
Owen Anderson
2f7aa73312
Add missing predicate operand on SMLA and friends.
...
llvm-svn: 137368
2011-08-11 22:05:38 +00:00
Jim Grosbach
a2b8b60646
ARM load shifted register pre-index fix shift value asm parser encoding.
...
llvm-svn: 137367
2011-08-11 22:05:09 +00:00
Douglas Gregor
09c4aa8177
The AST reader and writer don't need accessors for poking at the predefined Objective-C types
...
llvm-svn: 137366
2011-08-11 22:04:35 +00:00
NAKAMURA Takumi
9905541070
DataTypes.h.cmake: Tweak INT32_MIN for MSVC. MSC treats -2147483648 as -(2147483648U).
...
It caused an unexpected behavior since r137254.
llvm-svn: 137365
2011-08-11 21:59:55 +00:00
Owen Anderson
12d13efa21
Handle new register classes in Thumb2 mode. Should fix the ARM buildbots.
...
llvm-svn: 137364
2011-08-11 21:52:38 +00:00
Owen Anderson
f05e744857
Making SEL decodings auto-generate-able.
...
llvm-svn: 137363
2011-08-11 21:50:56 +00:00
Bruno Cardoso Lopes
8fbf023c9b
Add a dag combine to xform 256-bit shuffles into simple vector
...
inserts and extracts. This simple combine makes us generate only 1
instruction instead of 11 in the v8 case.
llvm-svn: 137362
2011-08-11 21:50:44 +00:00
Bruno Cardoso Lopes
9eb3762e08
Fix the test added by Nadav in r137308. Make it more strict:
...
1) check for the "v" version of movaps
2) add a couple of CHECK-NOT to guarantee the behavior
3) move to a more appropriate test file
llvm-svn: 137361
2011-08-11 21:50:35 +00:00
Johnny Chen
0861be0c30
Silence the static analyzer.
...
llvm-svn: 137360
2011-08-11 21:43:13 +00:00
Jim Grosbach
88981ff168
Tidy up comment.
...
llvm-svn: 137359
2011-08-11 21:41:59 +00:00
Jim Grosbach
7db3bfbd45
ARM STRHT assembly parsing and encoding.
...
llvm-svn: 137358
2011-08-11 21:39:41 +00:00
Enrico Granata
5c7b8e682c
changed some variables from char* to std::string
...
llvm-svn: 137357
2011-08-11 21:37:21 +00:00
Owen Anderson
b685c9f011
Fix decoding support for STREXD and LDREXD.
...
llvm-svn: 137356
2011-08-11 21:34:58 +00:00
Johnny Chen
cbbd9bea53
To silence the static analyzer.
...
llvm-svn: 137355
2011-08-11 21:24:08 +00:00
Jakob Stoklund Olesen
da4f0eb12c
Remove more dead code.
...
collectInterferingVRegs will be the primary function for interference
checks.
llvm-svn: 137354
2011-08-11 21:18:34 +00:00
Jim Grosbach
d886f8cd8d
ARM STRH assembly parsing and encoding.
...
llvm-svn: 137353
2011-08-11 21:17:22 +00:00
Dan Gohman
7e315fc37d
Fix typos in comments, and delete an unused function.
...
llvm-svn: 137352
2011-08-11 21:06:32 +00:00
Akira Hatanaka
6d8c039ab1
Add isIndirectBranch flag.
...
llvm-svn: 137351
2011-08-11 21:05:37 +00:00
Jakob Stoklund Olesen
7519336752
Privatize an unused part of the LiveIntervalUnion::Query interface.
...
No clients are iterating over interference overlaps.
llvm-svn: 137350
2011-08-11 21:00:42 +00:00