Chris Lattner
d70ff0d807
split a complex predicate out to a helper function. Simplify two for loops,
...
which don't need to check for falling off the end of a block *and* end of phi
nodes, since terminators are never phis.
llvm-svn: 129655
2011-04-17 06:03:19 +00:00
Eli Friedman
55f7bf3289
Remove working entry from README.
...
llvm-svn: 129654
2011-04-17 02:36:27 +00:00
Chris Lattner
fba7ca63cc
fix rdar://9289583 - fast isel should handle non-canonical commutative binops
...
allowing us to fold the immediate into the 'and' in this case:
int test1(int i) {
return 8&i;
}
llvm-svn: 129653
2011-04-17 01:16:47 +00:00
Chris Lattner
bc204c8043
implement rdar://9289524 - case followed immediately by break results in empty IR block,
...
a -O0 code quality issue.
llvm-svn: 129652
2011-04-17 00:54:30 +00:00
Chris Lattner
30107ed600
fold memcpy/set/move_chk to llvm.memcpy/set/move when the sizes
...
are trivial. This exposes opportunities earlier, and allows fastisel
to do good things with these at -O0.
This addresses rdar://9289468 - clang doesn't fold memset_chk at -O0
llvm-svn: 129651
2011-04-17 00:40:24 +00:00
Eli Friedman
55b0acd624
PR9055: extend the fix to PR4050 (r70179) to apply to zext and anyext.
...
Returning a new node makes the code try to replace the old node, which
in the included testcase is killed by CSE.
llvm-svn: 129650
2011-04-16 23:25:34 +00:00
Chris Lattner
56784f9de6
fix rdar://9289603 - clang should fold trivial ?: for enums as well as integer constants into select at -O0
...
by making the isCheapEnoughToEvaluateUnconditionally predicate handle anything that folds to a constant. In particular, we now fold enums.
llvm-svn: 129649
2011-04-16 23:15:35 +00:00
Frits van Bommel
d6d4f987b4
Rename a misleadingly-named variable.
...
llvm-svn: 129644
2011-04-16 14:32:34 +00:00
Frits van Bommel
d097212a08
Add test cases for Jay's r129641 and fix a 32-bit-centric testcase in a file with a 64-bit datalayout.
...
llvm-svn: 129643
2011-04-16 14:31:50 +00:00
Francois Pichet
beb17d9359
Unbreak the MSVC 2010 build.
...
For further information on this particular issue see: http://connect.microsoft.com/VisualStudio/feedback/details/520043/error-converting-from-null-to-a-pointer-type-in-std-pair
llvm-svn: 129642
2011-04-16 14:20:39 +00:00
Jay Foad
7d03e9be47
Fix bug when checking phi operands in InstCombiner::visitPHINode(),
...
found by code inspection.
llvm-svn: 129641
2011-04-16 14:17:37 +00:00
Francois Pichet
47f86e6c60
MSVC needs the return 0 to compile.
...
llvm-svn: 129640
2011-04-16 13:59:23 +00:00
Benjamin Kramer
659bfb34ff
Remove unused variable.
...
llvm-svn: 129639
2011-04-16 10:30:47 +00:00
Benjamin Kramer
c186dcf2c5
Write out uint64_t as i{0..32},i{33..64} instead of i{0..32},0.
...
llvm-svn: 129638
2011-04-16 10:25:32 +00:00
Nick Lewycky
303b5e21fc
Don't use C++ comments in C code.
...
llvm-svn: 129637
2011-04-16 04:25:36 +00:00
Rafael Espindola
a83b177035
Put each personality function in a section. This fixes the gnu ld warning:
...
error in foo.o; no .eh_frame_hdr table will be created.
llvm-svn: 129635
2011-04-16 03:51:21 +00:00
Stuart Hastings
ebddfe60a0
Correct result when a branch condition is live across a block
...
boundary. <rdar://problem/8933028>
llvm-svn: 129634
2011-04-16 03:31:26 +00:00
Evan Cheng
b14ce09fca
Fix divmod libcall lowering. Convert to {S|U}DIVREM first and then expand the node to a libcall. rdar://9280991
...
llvm-svn: 129633
2011-04-16 03:08:26 +00:00
Rafael Espindola
c715e724de
Fix cmake build.
...
llvm-svn: 129632
2011-04-16 02:06:46 +00:00
Nick Lewycky
c5ea8528cc
Move the re-stemming function up top and use it where it's currently inlined.
...
Break the arc-profile code out to a function like the notes emission code is,
and reorder the functions in the file.
The only functionality change is that we no longer modify the Module when the
Module has no debug info to use.
llvm-svn: 129631
2011-04-16 02:05:18 +00:00
Nick Lewycky
966edd068f
Rename LineProfiling to GCOVProfiling to more accurately represent what it
...
does. Also mostly implement it. Still a work-in-progress, but generates legal
output on crafted test cases.
llvm-svn: 129630
2011-04-16 01:20:23 +00:00
Richard Trieu
70d14f5df3
Testing my commit access. A few whitespace changes to Sema/SemaCXXCast.cpp.
...
llvm-svn: 129629
2011-04-16 01:09:30 +00:00
Argyrios Kyrtzidis
0e993c3249
Introduce Rewriter::IncreaseIndentation() which increase indentations for the lines between the given source range.
...
To determine what the indentation should be, a SourceLocation 'parentIndent' parameter is used that should be at
a source location with an indentation one degree lower than the given range.
llvm-svn: 129628
2011-04-16 01:03:33 +00:00
Tanya Lattner
5bea4c3859
Modify test for 32 and 64 bit.
...
llvm-svn: 129627
2011-04-16 01:00:29 +00:00
Devang Patel
7294d74627
Emit proper selector name in debug info.
...
llvm-svn: 129626
2011-04-16 00:37:51 +00:00
Devang Patel
9d6c857862
Emit debug info for Objective-C properties.
...
llvm-svn: 129625
2011-04-16 00:12:55 +00:00
Devang Patel
514b4006c2
Introduce support to encode Objective-C property information in debugging information generated for an interface.
...
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Jim Ingham
78a685aa2d
Add support for "dynamic values" for C++ classes. This currently only works for "frame var" and for the
...
expressions that are simple enough to get passed to the "frame var" underpinnings. The parser code will
have to be changed to also query for the dynamic types & offsets as it is looking up variables.
The behavior of "frame var" is controlled in two ways. You can pass "-d {true/false} to the frame var
command to get the dynamic or static value of the variables you are printing.
There's also a general setting:
target.prefer-dynamic-value (boolean) = 'true'
which is consulted if you call "frame var" without supplying a value for the -d option.
llvm-svn: 129623
2011-04-16 00:01:13 +00:00
Jim Ingham
f46b33852c
Fix comment typo.
...
llvm-svn: 129621
2011-04-15 23:42:06 +00:00
Jim Ingham
337030f556
Work around a llvm gcc bug where the name of a reference doesn't include the "&".
...
llvm-svn: 129620
2011-04-15 23:41:23 +00:00
Johnny Chen
48592ee5af
Thumb2 BFC was insufficiently encoded.
...
rdar://problem/9292717
llvm-svn: 129619
2011-04-15 22:52:15 +00:00
Johnny Chen
761e1e3512
A8.6.315 VLD3 (single 3-element structure to all lanes)
...
The a bit must be encoded as 0.
rdar://problem/9292625
llvm-svn: 129618
2011-04-15 22:49:08 +00:00
Tanya Lattner
5ac257d738
Fix bug in vector initializer when initializing a vector with another vector.
...
Add test case.
llvm-svn: 129617
2011-04-15 22:42:59 +00:00
Akira Hatanaka
2cb3aa30dd
Re-enable test o32_cc_vararg.ll.
...
llvm-svn: 129616
2011-04-15 22:23:09 +00:00
Fariborz Jahanian
0fe1a9861c
Enforce nonnull __attribute__ on Objective-C method calls.
...
// rdar://9287695
llvm-svn: 129615
2011-04-15 22:06:22 +00:00
Douglas Gregor
46ce91a964
Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq
...
llvm-svn: 129614
2011-04-15 22:04:17 +00:00
Douglas Gregor
f29216072e
Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq
...
llvm-svn: 129613
2011-04-15 22:04:07 +00:00
Akira Hatanaka
e24891251c
Reverse unnecessary changes made in r129606 and r129608. There is no change in functionality.
...
llvm-svn: 129612
2011-04-15 21:51:11 +00:00
Johnny Chen
b57edcab3b
Get rid the of set membership test (log(m)) and, instead, use an index variable 'i'
...
which advances when src collides with a purged slot.
Hi Stephen, you're welcome to overwrite/or improve upon this version. Thanks.
llvm-svn: 129611
2011-04-15 21:45:12 +00:00
Cameron Zwarich
9c65e4d69c
Add ORR and EOR to the CMP peephole optimizer. It's hard to get isel to generate
...
a case involving EOR, so I only added a test for ORR.
llvm-svn: 129610
2011-04-15 21:24:38 +00:00
Douglas Gregor
b92fbb7036
Fix some broken links, from Matthieu Monrocq
...
llvm-svn: 129609
2011-04-15 21:21:31 +00:00
Akira Hatanaka
d56f2d910b
Fix lines that exceed 80 columns. There is no change in functionality.
...
llvm-svn: 129608
2011-04-15 21:06:38 +00:00
Rafael Espindola
9fef721830
Add this test back for Darwin.
...
llvm-svn: 129607
2011-04-15 21:06:27 +00:00
Akira Hatanaka
aef55c8801
Fix lines that have incorrect indentation or exceed 80 columns. There is no change in functionality.
...
llvm-svn: 129606
2011-04-15 21:00:26 +00:00
Johnny Chen
fec280e750
Update both the src and dst pointers at the end of the loop.
...
Stephen Wilson is working on a better performing patch in the meantime.
llvm-svn: 129605
2011-04-15 20:59:46 +00:00
Douglas Gregor
5d3d3fa33d
For the purposes of overload resolution, consider a conversion from an
...
Objective-C pointer to void* as a "conversion to void*". This allows
us to prefer an Objective-C object pointer conversion to a superclass
object pointer over an Objective-C object pointer conversion to
cv-void*. Fixes PR9735.
llvm-svn: 129603
2011-04-15 20:45:44 +00:00
Cameron Zwarich
0829b3065a
The AND instruction leaves the V flag unmodified, so it falls victim to the same
...
problem as all of the other instructions we fold with CMPs.
llvm-svn: 129602
2011-04-15 20:45:00 +00:00
Rafael Espindola
7583dbdc88
Fix cmake build.
...
llvm-svn: 129601
2011-04-15 20:34:45 +00:00
Rafael Espindola
beb74c3f00
Some refactoring suggested by Anton Korobeynikov.
...
llvm-svn: 129600
2011-04-15 20:32:03 +00:00
Cameron Zwarich
93eae1571c
Add missing register forms of instructions to the ARM CMP-folding code. This
...
fixes <rdar://problem/9287901>.
llvm-svn: 129599
2011-04-15 20:28:28 +00:00