Evan Cheng
31959b19a7
Given a pair of floating point load and store, if there are no other uses of
...
the load, then it may be legal to transform the load and store to integer
load and store of the same width.
This is done if the target specified the transformation as profitable. e.g.
On arm, this can transform:
vldr.32 s0, []
vstr.32 s0, []
to
ldr r12, []
str r12, []
rdar://8944252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124708 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02 01:06:55 +00:00
Bob Wilson
63f8659d69
Fix comment typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124705 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-02 00:46:09 +00:00
Bob Wilson
692df93de4
PR9081: Split up LDM instruction with deprecated use of both LR and PC.
...
This is completely untested but pretty straightforward, so hopefully I
got it right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124694 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 22:30:51 +00:00
Matt Beaumont-Gay
9a14a362d0
Take Bill Wendling's suggestion for structuring a couple of asserts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124688 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 22:12:50 +00:00
Devang Patel
a3138424cf
Update to match changes in lldb interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124687 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 21:47:35 +00:00
Anton Korobeynikov
cf2cdc9cae
Fix imm printing for logical instructions.
...
Patch by Brian G. Lucas!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124679 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 20:22:53 +00:00
Anton Korobeynikov
46a98cf1f1
Document the LLVM GIT mirror
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124677 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 20:08:28 +00:00
David Greene
9d7f011110
[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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124672 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 19:12:32 +00:00
Devang Patel
e136e506ec
Remove stale references of obsolete @llvm.dbg.variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124664 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 17:22:12 +00:00
Jay Foad
0faa60938a
Make SwitchInst::removeCase() more efficient.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124659 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 09:22:34 +00:00
Duncan Sands
f9e4a986c0
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124657 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 09:06:20 +00:00
Duncan Sands
93c780288d
Add a m_SignBit pattern for convenience.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124656 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 08:50:33 +00:00
Duncan Sands
7681c6da60
Have m_One also match constant vectors for which every element is 1.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124655 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 08:39:12 +00:00
Carl Norum
e47023d543
Test commit - fix a double 'should' in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124652 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 07:38:42 +00:00
Rafael Espindola
4e93885bab
Correctly merge available_externally and regular definitions when they have
...
different visibilities.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124650 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 05:33:52 +00:00
Evan Cheng
e087afa128
Fix bogus assert condition noticed by Csaba Raduly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124645 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 01:50:49 +00:00
Eric Christopher
8e2da0ce9d
Reapply 124275 since the Dragonegg failure was unreproducible.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124641 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 01:16:32 +00:00
Evan Cheng
4d98ee5234
Fix test for non-darwin targets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124640 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 01:16:18 +00:00
Evan Cheng
2bffee2ee7
Patches to build EFI with Clang/LLVM. By Carl Norum.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124639 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 01:14:13 +00:00
Devang Patel
e361d2eda1
Remove stale test that has never worked, afaik.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124635 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 00:47:16 +00:00
Rafael Espindola
4cb310b67d
Don't tell the linker about available_externally definitions. If we do, it will
...
complain about duplicated definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124634 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-01 00:41:51 +00:00
Devang Patel
e9a7ea6865
Keep track of incoming argument's location while emitting LiveIns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 21:38:14 +00:00
Devang Patel
97f6d5b241
While printing "interesting" breakpoint locations for debug info quality test harness, focus only on entry block's terminator for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124610 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 21:36:24 +00:00
Roman Divacky
bb6d14fbfe
Enumerate .code16/32/64 instead of checking .code prefix. This
...
unbreaks some ARM tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124608 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 21:19:43 +00:00
Devang Patel
1531511b2c
Tidy up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124605 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 21:16:37 +00:00
Devang Patel
e3373b0227
Focus on arguments for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124604 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 21:15:39 +00:00
Roman Divacky
f6fbd84c56
Error on all .code* directives instead of just .code16 as they
...
all lead to a silent miscompilation of code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124603 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 20:56:49 +00:00
David Greene
9f08f60993
Fix vector sign extend to put the source and destination types in the
...
correct places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124601 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 20:39:01 +00:00
Chris Lattner
fd2ad8783c
add a note, progress unblocked by PR8575 being fixed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124599 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 20:23:28 +00:00
Oscar Fuentes
78e2074eee
Adds some platform checks to cmake/config-ix.cmake and fixes checking
...
for dlopen/dlerror.
Patch by arrowdodger!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124590 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 18:25:25 +00:00
Richard Osborne
4e3740ee6d
Fix bug where ReduceLoadWidth was creating illegal ZEXTLOAD instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124587 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 17:41:44 +00:00
NAKAMURA Takumi
e85dcb54d1
CMake: Fix a few definition to suppress warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124583 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-31 09:41:20 +00:00
Anton Korobeynikov
98b928ea71
Save a mapping between original and cloned constpool entries.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124570 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 22:07:39 +00:00
Anton Korobeynikov
ed299f6fa9
Clarify the LSDASection NULL check
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124569 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 22:07:31 +00:00
Anders Carlsson
77bc49e5e2
Recognize and simplify
...
(A+B) == A -> B == 0
A == (A+B) -> B == 0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124567 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 22:01:13 +00:00
Jakob Stoklund Olesen
8352062e52
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124564 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 20:38:12 +00:00
Duncan Sands
7af00c0f6e
Commit 124487 broke 254.gap. See if disabling the part that might be triggered
...
by PR9088 fixes things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124561 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 18:24:20 +00:00
Duncan Sands
1895e98ef3
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124560 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 18:03:50 +00:00
Benjamin Kramer
9b108a338d
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124559 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 16:38:43 +00:00
Nick Lewycky
bb25e2c91b
Fix 'fcmp one' constant folding. Noticed by inspection.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124557 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 01:49:58 +00:00
Nick Lewycky
b8787f3403
Fix some formatting and upgrade comments from llvm 1.x to 2.x syntax.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124556 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-30 01:48:50 +00:00
Bill Wendling
b476302b24
This is #included by .c files. Remove C++-style comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124552 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 21:54:26 +00:00
Nick Lewycky
175e7aec13
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124547 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 20:35:06 +00:00
Francois Pichet
337c081138
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124545 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 20:06:16 +00:00
Nick Lewycky
5413880654
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124544 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 19:55:23 +00:00
Frits van Bommel
31726c154d
Call SimplifyFDivInst() in InstCombiner::visitFDiv().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124535 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 17:50:27 +00:00
Frits van Bommel
1fca2c32cc
Move InstCombine's knowledge of fdiv to SimplifyInstruction().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124534 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 15:26:31 +00:00
Duncan Sands
9136782d27
Fix typo: should have been testing that X was odd, not V.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124533 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 13:27:00 +00:00
Benjamin Kramer
2c94b4201b
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124532 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 12:34:05 +00:00
Evan Cheng
60f5ad46c2
Add a test for TCE return duplication.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124527 91177308-0d34-0410-b5e6-96231b3b80d8
2011-01-29 04:53:35 +00:00