Chris Lattner
ee8f74f5d1
fix PR4963: folding insertvalue would sometimes turn a packed struct into
...
an unpacked one.
llvm-svn: 81845
2009-09-15 06:28:12 +00:00
Anders Carlsson
611da28725
Revert for real.
...
llvm-svn: 81844
2009-09-15 05:49:31 +00:00
Chris Lattner
e0987215f0
add a new CallGraphNode::replaceCallEdge method and use it from
...
argpromote to avoid invalidating an iterator. This fixes PR4977.
All clang tests now pass with expensive checking (on my system
at least).
llvm-svn: 81843
2009-09-15 05:40:35 +00:00
Anders Carlsson
e5506884cc
Whoops, didn't mean to commit this.
...
llvm-svn: 81842
2009-09-15 05:31:01 +00:00
Anders Carlsson
4e66cda3f7
Only reuse an already existing ImplicitCastExpr if the cast kinds are the same.
...
llvm-svn: 81841
2009-09-15 05:28:24 +00:00
Chris Lattner
e9a4992399
add newline to debug dump
...
llvm-svn: 81840
2009-09-15 05:14:57 +00:00
Anders Carlsson
d3bc31f04f
Get rid of the CastInfo struct.
...
llvm-svn: 81839
2009-09-15 05:13:45 +00:00
Chris Lattner
d4d966f500
make -debug-pass=Executions show information about what call graph nodes
...
are in the SCC for each execution of a CGSCC pass.
llvm-svn: 81838
2009-09-15 05:03:04 +00:00
Anders Carlsson
7cd39e0721
Handle reinterpret_cast between integral types and pointer types.
...
llvm-svn: 81837
2009-09-15 04:48:33 +00:00
Chris Lattner
f82f27be3f
add some missing quotes in debug output
...
llvm-svn: 81836
2009-09-15 04:45:26 +00:00
Anders Carlsson
04c3bf4fab
Codegen support for nullptr from C++0x.
...
llvm-svn: 81835
2009-09-15 04:39:46 +00:00
Chris Lattner
2b979ef128
switch scciterator to use DenseMap instead of std::map
...
llvm-svn: 81834
2009-09-15 04:37:49 +00:00
Chris Lattner
30fceaba05
this is failing on linux hosts, force a triple.
...
llvm-svn: 81833
2009-09-15 04:27:29 +00:00
Ted Kremenek
b66229464e
Per feedback from Eli, recognize in the transfer function logic for
...
__builtin_offsetof in the static analyzer that __builtin_offsetof is
not guaranteed to return an integer constant. We will need to shore
this up later, but now at least we have correct support for when this
*is* an integer constant.
llvm-svn: 81830
2009-09-15 04:19:09 +00:00
Ted Kremenek
8e780355b7
Remove invalid add_dependencies line to unbreak the CMake build.
...
llvm-svn: 81827
2009-09-15 04:06:36 +00:00
Mikhail Glushenkov
0adf07eb9e
Get rid of GetProcessId in Win32/Program.inc.
...
GetProcessId was introduced only in XP. As a bonus, this change makes Program
objects copyable, since Program is now basically a PID.
llvm-svn: 81826
2009-09-15 03:39:45 +00:00
Ted Kremenek
3413f277d0
Fix typo in comment.
...
llvm-svn: 81825
2009-09-15 03:28:00 +00:00
Chris Lattner
170c116aa7
merge one more in.
...
llvm-svn: 81824
2009-09-15 02:27:23 +00:00
Chris Lattner
42aaa6e443
merge some more cmov tests into cmov.ll
...
llvm-svn: 81823
2009-09-15 02:25:21 +00:00
Chris Lattner
baf78e5b52
merge two cmov tests into one.
...
llvm-svn: 81822
2009-09-15 02:22:47 +00:00
Dan Gohman
520a6856ba
Don't pull a load through a callseq_start if the load's chain
...
has multiple uses, as one of the other uses may be on a path
to a different node above the callseq_start, because that
leads to a cyclic graph. This problem is exposed when
-combiner-global-alias-analysis is used. This fixes PR4880.
llvm-svn: 81821
2009-09-15 01:22:01 +00:00
Ted Kremenek
27347135dd
Add static analyzer transfer function support for __builtin_offsetof.
...
llvm-svn: 81820
2009-09-15 00:40:32 +00:00
Nate Begeman
d41f8fd2b3
Remove incorrect CSE code from r81813.
...
llvm-svn: 81819
2009-09-15 00:38:09 +00:00
Sean Callanan
050e0cdb9a
Modified the Intel instruction tables to include
...
versions of CALL and JMP with segmented addresses
provided in-line, as pairs of immediates.
llvm-svn: 81818
2009-09-15 00:35:17 +00:00
Kevin Enderby
ccab317837
Added the first bits of the ARM target assembler to llvm-mc. For now it only
...
parses the .word directive as 4 bytes and ARMAsmParser::ParseInstruction will
give an error is called. Broke out the test of the .word directive into two
different test cases, one for x86 and one for arm.
llvm-svn: 81817
2009-09-15 00:27:25 +00:00
Nate Begeman
879d8f1c3e
Substantially speed up combiner-aa in the following ways:
...
1. Switch from an std::set to a SmallPtrSet for visited chain nodes.
2. Do not force the recursive flattening of token factor nodes, regardless of
use count.
3. Immediately process newly created TokenFactor nodes.
Also, improve combiner-aa by teaching it that loads to non-overlapping offsets
of relatively aligned objects cannot alias.
These changes result in a >5x speedup for combiner-aa on most testcases.
llvm-svn: 81816
2009-09-15 00:18:30 +00:00
Nate Begeman
01c1e1152d
Teach the legalizer to propagate the original alignment of loads and store when
...
it splits them.
llvm-svn: 81815
2009-09-15 00:14:28 +00:00
Dan Gohman
65829a4ccb
On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit of
...
its result if the condition is false.
llvm-svn: 81814
2009-09-15 00:14:11 +00:00
Nate Begeman
02a685a914
Add an "original alignment" field to load and store nodes. This enables the
...
DAG Combiner to disambiguate chains for loads and stores of types which are
broken up by the Legalizer into smaller pieces.
llvm-svn: 81813
2009-09-15 00:13:12 +00:00
Fariborz Jahanian
19c7328881
Issue a good diagnostics when attempt to select
...
a type convesion function results in ambiguity.
llvm-svn: 81812
2009-09-15 00:10:11 +00:00
Chris Lattner
f8122966a9
clang tracks multiple levels of macro expansion
...
llvm-svn: 81811
2009-09-14 23:44:08 +00:00
Dan Gohman
f9eafce3af
When extending a memset range past the front, set the alignment of the
...
memset region to the alignment of the new start address.
llvm-svn: 81810
2009-09-14 23:39:10 +00:00
Nick Kledzik
ad160c0330
add conversion functions and test cases for ARM
...
llvm-svn: 81809
2009-09-14 23:26:56 +00:00
Anders Carlsson
3fa58d1f63
Diagnose taking the address of a bit-field inside a conditional operator.
...
llvm-svn: 81808
2009-09-14 23:15:26 +00:00
Douglas Gregor
6010da024c
Implement partial ordering of function templates when calling a
...
conversion function.
llvm-svn: 81807
2009-09-14 23:02:14 +00:00
Douglas Gregor
2e0807cd75
Slightly improve the test for partial ordering of overloaded function
...
templates.
llvm-svn: 81806
2009-09-14 22:31:20 +00:00
Douglas Gregor
48bc374d1e
Test function template partial ordering when resolving the address of
...
an overloaded function (template).
llvm-svn: 81804
2009-09-14 22:02:01 +00:00
Ted Kremenek
4112969df1
Fix: <rdar://problem/5905851> do not report a leak when post-dominated by a call
...
to a noreturn or panic function
llvm-svn: 81803
2009-09-14 22:01:32 +00:00
Anders Carlsson
2898af59dc
Update tests
...
llvm-svn: 81802
2009-09-14 22:00:20 +00:00
John McCall
27b5c253d8
Skeletal support for friend class templates.
...
llvm-svn: 81801
2009-09-14 21:59:20 +00:00
Erick Tryzelaar
b4e19177cb
Expose initializing the native target for the execution engine.
...
llvm-svn: 81800
2009-09-14 21:54:32 +00:00
Erick Tryzelaar
c8a18f97bb
Make sure to initialize the fpm in the ocaml tutorial.
...
llvm-svn: 81799
2009-09-14 21:54:15 +00:00
Daniel Dunbar
09d3362bf5
ARM/[A]APCS: Ignore empty records passed as arguments.
...
llvm-svn: 81798
2009-09-14 21:54:03 +00:00
Anders Carlsson
0e795ffbb0
For consistency, use "bit-field" instead of "bitfield" in our diagnostics.
...
llvm-svn: 81797
2009-09-14 21:48:24 +00:00
Evan Cheng
7f789596f3
Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this.
...
The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals.
llvm-svn: 81796
2009-09-14 21:33:42 +00:00
Douglas Gregor
e1d2ef3508
Refactor MarkDeductedTemplateParameters into
...
MarkUsedTemplateParameters, which is able to mark template parameters
used within non-deduced contexts as well as deduced contexts. Use this
to finish the implementation of [temp.deduct.partial]p11.
llvm-svn: 81794
2009-09-14 21:25:05 +00:00
Bill Wendling
6dcc9d1b4b
Pull the creation of the "RewindFunction" function out of the loop. It's only
...
created once, so shouldn't be stuck in the middle of the loop. Also early exit
if there are no uses of UnwindInst in the function.
llvm-svn: 81785
2009-09-14 20:52:37 +00:00
Fariborz Jahanian
f4061e39a3
Used visible conversion function api to do overload
...
resolution of type conversion functions in base and
current class.
llvm-svn: 81784
2009-09-14 20:41:01 +00:00
Ted Kremenek
37a118520c
Implement FIXME: free up BugReportEquivClass objects when deleting BugTypes.
...
llvm-svn: 81783
2009-09-14 20:40:59 +00:00
Dan Gohman
1113741a03
Update a comment to match the source. PseudoSourceValues are now
...
obtained via accessor functions.
llvm-svn: 81782
2009-09-14 20:40:10 +00:00