Devang Patel
ee65f3c2c3
Update to match changes in lldb interface.
...
llvm-svn: 124687
2011-02-01 21:47:35 +00:00
Anton Korobeynikov
323825cee4
Fix imm printing for logical instructions.
...
Patch by Brian G. Lucas!
llvm-svn: 124679
2011-02-01 20:22:53 +00:00
Anton Korobeynikov
4b076fdbdb
Document the LLVM GIT mirror
...
llvm-svn: 124677
2011-02-01 20:08:28 +00:00
David Greene
e563b14e41
[AVX] Implement EnforceSmallerThan for mixed int/fp type lists. This
...
makes type checking for extract_subvector and insert_subvector more
robust and will allow stricter typechecking of more patterns in the
future.
This change handles int and fp as disjoint sets so that it will
enforce integer types to be smaller than the largest integer type and
fp types to be smaller than the largest fp type. There is no attempt
to check type sizes across the int/fp sets.
llvm-svn: 124672
2011-02-01 19:12:32 +00:00
Devang Patel
b61c9bfa72
Remove stale references of obsolete @llvm.dbg.variable.
...
llvm-svn: 124664
2011-02-01 17:22:12 +00:00
Jay Foad
89383f48ca
Make SwitchInst::removeCase() more efficient.
...
llvm-svn: 124659
2011-02-01 09:22:34 +00:00
Duncan Sands
c03dbe4b1c
Add a m_Undef pattern for convenience. This is so that code that uses
...
pattern matching can also pattern match undef, creating a more uniform
style.
llvm-svn: 124657
2011-02-01 09:06:20 +00:00
Duncan Sands
659237307a
Add a m_SignBit pattern for convenience.
...
llvm-svn: 124656
2011-02-01 08:50:33 +00:00
Duncan Sands
06e82c76ee
Have m_One also match constant vectors for which every element is 1.
...
llvm-svn: 124655
2011-02-01 08:39:12 +00:00
Carl Norum
667d5dbdcb
Test commit - fix a double 'should' in a comment.
...
llvm-svn: 124652
2011-02-01 07:38:42 +00:00
Rafael Espindola
e60f9519d8
Correctly merge available_externally and regular definitions when they have
...
different visibilities.
llvm-svn: 124650
2011-02-01 05:33:52 +00:00
Evan Cheng
3689d1302d
Fix bogus assert condition noticed by Csaba Raduly.
...
llvm-svn: 124645
2011-02-01 01:50:49 +00:00
Eric Christopher
f8b2388751
Reapply 124275 since the Dragonegg failure was unreproducible.
...
llvm-svn: 124641
2011-02-01 01:16:32 +00:00
Evan Cheng
dc27913f2d
Fix test for non-darwin targets.
...
llvm-svn: 124640
2011-02-01 01:16:18 +00:00
Evan Cheng
0e8c521bbd
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
llvm-svn: 124639
2011-02-01 01:14:13 +00:00
Devang Patel
2b1331b4d1
Remove stale test that has never worked, afaik.
...
llvm-svn: 124635
2011-02-01 00:47:16 +00:00
Rafael Espindola
54673ba6ca
Don't tell the linker about available_externally definitions. If we do, it will
...
complain about duplicated definitions.
llvm-svn: 124634
2011-02-01 00:41:51 +00:00
Devang Patel
97c467ee47
Keep track of incoming argument's location while emitting LiveIns.
...
llvm-svn: 124611
2011-01-31 21:38:14 +00:00
Devang Patel
23d0acc520
While printing "interesting" breakpoint locations for debug info quality test harness, focus only on entry block's terminator for now.
...
llvm-svn: 124610
2011-01-31 21:36:24 +00:00
Roman Divacky
254f2ab16a
Enumerate .code16/32/64 instead of checking .code prefix. This
...
unbreaks some ARM tests.
llvm-svn: 124608
2011-01-31 21:19:43 +00:00
Devang Patel
3ff5f6ad2d
Tidy up.
...
llvm-svn: 124605
2011-01-31 21:16:37 +00:00
Devang Patel
bf57c32e2e
Focus on arguments for now.
...
llvm-svn: 124604
2011-01-31 21:15:39 +00:00
Roman Divacky
9a8a680ed2
Error on all .code* directives instead of just .code16 as they
...
all lead to a silent miscompilation of code.
llvm-svn: 124603
2011-01-31 20:56:49 +00:00
David Greene
0db8e64017
Fix vector sign extend to put the source and destination types in the
...
correct places.
llvm-svn: 124601
2011-01-31 20:39:01 +00:00
Chris Lattner
1d534245fc
add a note, progress unblocked by PR8575 being fixed.
...
llvm-svn: 124599
2011-01-31 20:23:28 +00:00
Oscar Fuentes
d79df5b7c8
Adds some platform checks to cmake/config-ix.cmake and fixes checking
...
for dlopen/dlerror.
Patch by arrowdodger!
llvm-svn: 124590
2011-01-31 18:25:25 +00:00
Richard Osborne
11cdda2346
Fix bug where ReduceLoadWidth was creating illegal ZEXTLOAD instructions.
...
llvm-svn: 124587
2011-01-31 17:41:44 +00:00
NAKAMURA Takumi
826d7183d5
CMake: Fix a few definition to suppress warnings.
...
llvm-svn: 124583
2011-01-31 09:41:20 +00:00
Anton Korobeynikov
b31576ae4d
Save a mapping between original and cloned constpool entries.
...
llvm-svn: 124570
2011-01-30 22:07:39 +00:00
Anton Korobeynikov
c608d67509
Clarify the LSDASection NULL check
...
llvm-svn: 124569
2011-01-30 22:07:31 +00:00
Anders Carlsson
f184e5de9a
Recognize and simplify
...
(A+B) == A -> B == 0
A == (A+B) -> B == 0
llvm-svn: 124567
2011-01-30 22:01:13 +00:00
Jakob Stoklund Olesen
430d0693dc
Respect the -tail-dup-size command line option even when optimizing for size.
...
This is similar to the -unroll-threshold option. There should be no change in
behavior when -tail-dup-size is not explicit on the llc command line.
llvm-svn: 124564
2011-01-30 20:38:12 +00:00
Duncan Sands
987c8bc759
Commit 124487 broke 254.gap. See if disabling the part that might be triggered
...
by PR9088 fixes things.
llvm-svn: 124561
2011-01-30 18:24:20 +00:00
Duncan Sands
ac01c21937
Transform (X/Y)*Y into X if the division is exact. Instcombine already knows how
...
to do this and more, but would only do it if X/Y had only one use. Spotted as the
most common missed simplification in SPEC by my auto-simplifier, now that it knows
about nuw/nsw/exact flags. This removes a bunch of multiplications from 447.dealII
and 483.xalancbmk. It also removes a lot from tramp3d-v4, which results in much
more inlining.
llvm-svn: 124560
2011-01-30 18:03:50 +00:00
Benjamin Kramer
6b3c3de09a
Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off.
...
This happens all the time when a smul is promoted to a larger type.
On x86-64 we now compile "int test(int x) { return x/10; }" into
movslq %edi, %rax
imulq $1717986919, %rax, %rax
movq %rax, %rcx
shrq $63, %rcx
sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax"
addl %ecx, %eax
This fires 96 times in gcc.c on x86-64.
llvm-svn: 124559
2011-01-30 16:38:43 +00:00
Nick Lewycky
abfab6156c
Fix 'fcmp one' constant folding. Noticed by inspection.
...
llvm-svn: 124557
2011-01-30 01:49:58 +00:00
Nick Lewycky
001e12d8d5
Fix some formatting and upgrade comments from llvm 1.x to 2.x syntax.
...
llvm-svn: 124556
2011-01-30 01:48:50 +00:00
Bill Wendling
481f64ab68
This is #included by .c files. Remove C++-style comments.
...
llvm-svn: 124552
2011-01-29 21:54:26 +00:00
Nick Lewycky
5259b6a6e2
Add the select optimization recently added to instcombine to constant folding.
...
This is the one where one of the branches of the select is another select on
the same condition.
llvm-svn: 124547
2011-01-29 20:35:06 +00:00
Francois Pichet
6aed3c72dc
Unbreak the MSVC build.
...
The DEBUG() call at line 606 demands to see raw_ostream's definition. I have no idea why this seems to only break MSVC.
llvm-svn: 124545
2011-01-29 20:06:16 +00:00
Nick Lewycky
67acf52b2e
Fix comment.
...
llvm-svn: 124544
2011-01-29 19:55:23 +00:00
Frits van Bommel
b1b70f2a44
Call SimplifyFDivInst() in InstCombiner::visitFDiv().
...
llvm-svn: 124535
2011-01-29 17:50:27 +00:00
Frits van Bommel
92dc04df67
Move InstCombine's knowledge of fdiv to SimplifyInstruction().
...
llvm-svn: 124534
2011-01-29 15:26:31 +00:00
Duncan Sands
0587f785bf
Fix typo: should have been testing that X was odd, not V.
...
llvm-svn: 124533
2011-01-29 13:27:00 +00:00
Benjamin Kramer
4a40190f76
Add the missing sub identity "A-(A-B) -> B" to DAGCombine.
...
This happens e.g. for code like "X - X%10" where we lower the modulo operation
to a series of multiplies and shifts that are then subtracted from X, leading to
this missed optimization.
llvm-svn: 124532
2011-01-29 12:34:05 +00:00
Evan Cheng
20433f6339
Add a test for TCE return duplication.
...
llvm-svn: 124527
2011-01-29 04:53:35 +00:00
Evan Cheng
4af5487b74
Re-apply r124518 with fix. Watch out for invalidated iterator.
...
llvm-svn: 124526
2011-01-29 04:46:23 +00:00
Evan Cheng
1f943b9b13
Revert r124518. It broke Linux self-host.
...
llvm-svn: 124522
2011-01-29 02:43:04 +00:00
Evan Cheng
a1e4cb5f09
Re-commit r124462 with fixes. Tail recursion elim will now dup ret into unconditional predecessor to enable TCE on demand.
...
llvm-svn: 124518
2011-01-29 01:29:26 +00:00
Andrew Trick
72f17d97f3
Implementation of path profiling.
...
Modified patch by Adam Preuss.
This builds on the existing framework for block tracing, edge profiling and optimal edge profiling.
See -help-hidden for new flags.
For documentation, see the technical report "Implementation of Path Profiling..." in llvm.org/pubs.
llvm-svn: 124515
2011-01-29 01:09:53 +00:00