Rafael Espindola
f924dea8dd
Add 132986 back, but avoid non-determinism if a bb address gets reused.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132995 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 15:31:54 +00:00
Nadav Rotem
ebf69c34c4
Add a testcase for #9623
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132991 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 13:23:10 +00:00
Rafael Espindola
7a07083c25
revert 132986 to see if the bots go green.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132988 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 12:48:26 +00:00
Nadav Rotem
bfdbd00d9d
This testcase cause a failure on some bots. Remove the failing test until
...
further investigation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132986 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 09:10:37 +00:00
Nadav Rotem
c2492c28ef
Add a testcase for checking the integer-promotion of many different vector
...
types (with power of two types such as 8,16,32 .. 512).
Fix a bug in the integer promotion of bitcast nodes. Enable integer expanding
only if the target of the conversion is an integer (when the type action is
scalarize).
Add handling to the legalization of vector load/store in cases where the saved
vector is integer-promoted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132985 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 08:11:52 +00:00
Nadav Rotem
c7cb7ed013
Disable trunc-store simplification on vectors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132984 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 07:18:26 +00:00
Cameron Zwarich
5b93d3ca6f
Be more obvious about what is being tested.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132982 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 06:33:51 +00:00
Rafael Espindola
f5b5c5156c
Implement Jakob's suggestion on how to detect fall thought without calling
...
AnalyzeBranch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132981 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 06:08:32 +00:00
Bruno Cardoso Lopes
79abd1c27c
Since ARM's prefetch implementation predicted the presence of a instruction
...
cache prefetch and now that the info from "prefetch" to "ARMPreload" is present,
only add a testcase for PLI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132978 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 05:11:46 +00:00
Bruno Cardoso Lopes
9a767330f5
Add one more argument to the prefetch intrinsic to indicate whether it's a data
...
or instruction cache access. Update the targets to match it and also teach
autoupgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132976 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 04:58:37 +00:00
Rafael Espindola
3a42565ccb
Make the threshold used by branch folding softer. Before we would get a
...
sharp all or nothing transition when one extra predecessor was added. Now
we still test first ones for merging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132974 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 04:41:17 +00:00
Nick Lewycky
3c2f0a11cc
Fit banner in 80-col and adjust whitespace. No functionality changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132964 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 03:23:52 +00:00
Bill Wendling
740e5b3586
Heuristic: If the number of operands in the alias are more than the number of
...
operands in the aliasee, don't print the alias.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132963 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 03:17:20 +00:00
John McCall
410eac5536
Test case for r132797.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132962 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 03:02:05 +00:00
John McCall
c975a51ac0
Use IRBuilder to make our intrinsic calls in the inliner so that we pick up
...
line info correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132961 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 02:51:53 +00:00
Evan Cheng
e889c694d8
Update BitcodeWriter to match recent Triple changes. rdar://9603399
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132959 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 01:51:33 +00:00
Nick Lewycky
708c1ac077
Use Value::stripPointerCasts instead of reinventing part of the wheel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132954 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-14 00:59:24 +00:00
Cameron Zwarich
15cd80c16b
Fix grammar.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132952 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 23:39:23 +00:00
Jim Grosbach
f921c0fe34
Clean up a few 80 column violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132946 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 22:54:22 +00:00
Cameron Zwarich
c0e2607564
Rename MergeInType to MergeInTypeForLoadOrStore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132940 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:44:43 +00:00
Cameron Zwarich
5179782cf0
Remove the HadAVector instance variable and replace it with a use of ScalarKind.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132939 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:44:40 +00:00
Cameron Zwarich
9837a5c959
Remove a vacuous check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132938 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:44:38 +00:00
Cameron Zwarich
deb74f21f2
Have SRoA explicitly track the kind of scalar it is promoting. This is pretty
...
spartan right now, but I plan to encode more information in this enum to improve
the correctness and reliability of SRoA. At least this first pass makes it
possible to make VectorTy an actual VectorType.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132937 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:44:35 +00:00
Cameron Zwarich
dd68912801
Remove an argument that is always true.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132936 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:44:31 +00:00
Jim Grosbach
7980f61f5f
Fix coordination for using R4 in Thumb1 as a scratch for SP restore.
...
The logic for reserving R4 for use as a scratch needs to match that for
actually using it. Also, it's not necessary for immediate <=508, so adjust
the value checked.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132934 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 21:18:25 +00:00
Evan Cheng
ff276b40f0
Aliased flag options should be directed to stdout, not stderr to be consistent. Patch by Julien Lerouge.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132931 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 20:45:54 +00:00
Bill Wendling
1922a11907
Add compatibility version when compiling the Apple way.
...
<rdar://problem/9600408>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132929 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 20:14:37 +00:00
Stuart Hastings
7ac8f8f341
Avoid fusing bitcasts with dynamic allocas if the amount-to-allocate
...
might overflow. Re-typing the alloca to a larger type (e.g. double)
hoists a shift into the alloca, potentially exposing overflow in the
expression. rdar://problem/9265821
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132926 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 18:48:49 +00:00
Benjamin Kramer
afa88eaf65
Move class into an anonymous namespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132925 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 18:38:56 +00:00
Nadav Rotem
00404bfaef
Fix a bug in FindMemType. When widening vector loads, use a wider memory type
...
only if the number of packed elements is a power of two.
Bug found in Duncan's testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132923 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 18:13:24 +00:00
Chris Lattner
83f9467436
mention graph vis isn't available in Release builds.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132916 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 15:59:35 +00:00
Benjamin Kramer
e7fdcad2f2
InstCombine: Fold A-b == C --> b == A-C if A and C are constants.
...
The backend already knew this trick.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132915 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 15:24:24 +00:00
Benjamin Kramer
aa99bea46f
Revert r132910 and r132909 on behalf of Michael. They didn't build with clang.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132914 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 12:56:51 +00:00
Michael J. Spencer
5e45dc40d3
Revert the last two commits in the series. r132911, r132912.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132913 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:53:31 +00:00
Michael J. Spencer
bc437ebbca
Modify llvm-nm to use new Binary creation method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132912 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:12:42 +00:00
Michael J. Spencer
69aec36f9b
Make Binary the parent of ObjectFile and update children to new interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132911 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:12:33 +00:00
Michael J. Spencer
fc9ec691da
Add Binary class. This is a cleaner parent than ObjectFile.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132910 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:12:12 +00:00
Michael J. Spencer
bf58996c08
Add Object/Error.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132909 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:11:59 +00:00
Michael J. Spencer
cbda61a468
Fix spelling and sort CMakeLists.txt.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132908 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 11:11:39 +00:00
Nick Lewycky
9a488a8317
It's possible that an all-zero GEP may be used as the argument to lifetime
...
intrinsics. In fact, we'll optimize a bitcast to that when possible. Detect it
when looking for the lifetime intrinsics.
No test case, noticed by inspection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132906 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 07:52:46 +00:00
Jakob Stoklund Olesen
5e5ed44577
Be less aggressive about hinting in RAFast.
...
In particular, don't spill dirty registers only to satisfy a hint. It is
not worth it.
The attached test case provides an example where the fast allocator
would spill a register when other registers are available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132900 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 03:26:46 +00:00
Jakob Stoklund Olesen
687397c013
Include callee-saved registers in debug output.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132899 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 03:26:42 +00:00
Rafael Espindola
fb66f477a1
Fix invalid uses of Twine. Hopefully this fixes the problem that Takumi is
...
having.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132898 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-13 03:09:13 +00:00
Benjamin Kramer
ffd0ae64c4
InstCombine: Shrink ((zext X) & C1) == C2 to fold away the cast if the "zext" and the "and" have one use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132897 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 22:48:00 +00:00
Benjamin Kramer
7e7c9cc31a
Simplify code. No functionality changes, name changes aside.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132896 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 22:47:53 +00:00
Benjamin Kramer
b73cd94292
Happy new year.
...
Only 163 days late!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132895 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 15:26:54 +00:00
Nadav Rotem
0c3e67860a
Fix a bug in the calculation of the vectorTypeBreakdown into registers. Odd
...
types such as i33 were rounded to i32. Originated from Duncan's testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132893 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 14:56:55 +00:00
Nadav Rotem
b05f14b3b9
Improve the generated code by getCopyFromPartsVector for promoted integer types.
...
Instead of scalarizing, and doing an element-by-element truncat, use vector
truncate.
Add support for scalarization of vectors: i8 -> <1 x i1> (from Duncan's
testcase).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132892 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 14:49:38 +00:00
Nadav Rotem
65255b98ad
Bugfix: When looking for a legal vector type, stop looking when a non-simple
...
element type is found.
This fix addresses some of the tests in Duncan's testcase (forthcoming).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132891 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 14:40:30 +00:00
Jakob Stoklund Olesen
b95fd2d5fd
Tweak hash function and compress hash tables.
...
Make the hash tables as small as possible while ensuring that all
lookups can be done in less than 8 probes.
Cut the aliases hash table in half by only storing a < b pairs - it
is a symmetric relation.
Use larger multipliers on the initial hash function to ensure that it
properly covers the whole table, and to resolve some clustering in the
very regular ARM register bank.
This reduces the size of most of these tables by 4x - 8x. For instance,
the ARM tables shrink from 48 KB to 8 KB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132888 91177308-0d34-0410-b5e6-96231b3b80d8
2011-06-12 07:04:32 +00:00