Dan Gohman
1b342583f6
Generalize ScalarEvolution's cast-folding code to support more kinds
...
of loops. Add several new functions to for working with ScalarEvolution's
add-hoc value-range analysis functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75252 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10 16:42:52 +00:00
Evan Cheng
06e16587eb
Add a thumb2 pass to insert IT blocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75218 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10 01:54:42 +00:00
Evan Cheng
9c06178e35
Remove a bogus assertion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75206 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10 00:23:48 +00:00
Bob Wilson
9b4b00ad43
Handle 'a' modifier on inline assembly operands.
...
This is part of the fix for pr4521.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75201 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 23:54:51 +00:00
Eli Friedman
c680ac9003
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
...
value. Adjust other code to deal with that correctly. Make
DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of
this new flexibility to simplify the code and make it deal with unusual
vectors (like <4 x i1>) correctly. Fixes PR3037.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75176 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 22:01:03 +00:00
Chris Lattner
1fc3d75581
add llvm-mc support for parsing the .lcomm directive, patch by Kevin Enderby!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 17:25:12 +00:00
Nick Lewycky
89f43a5c70
There's no need to consider PHI nodes in the same block as the instruction
...
we're inserting sigma/phi functions for. Patch by Andre Tavares.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 15:59:27 +00:00
Evan Cheng
910139f9ca
Targets sometimes assign fixed stack object to spill certain callee-saved
...
registers based on dynamic conditions. For example, X86 EBP/RBP, when used as
frame register has to be spilled in the first fixed object. It should inform
PEI this so it doesn't get allocated another stack object. Also, it should not
be spilled as other callee-saved registers but rather its spilling and restoring
are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 06:53:48 +00:00
Lang Hames
ffd1326ff8
Improved tracking of value number kills. VN kills are now represented
...
as an (index,bool) pair. The bool flag records whether the kill is a
PHI kill or not. This code will be used to enable splitting of live
intervals containing PHI-kills.
A slight change to live interval weights introduced an extra spill
into lsr-code-insertion (outside the critical sections). The test
condition has been updated to reflect this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 03:57:02 +00:00
Chris Lattner
39f56b6d16
remove eh, convert to FileCheck style
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75087 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 01:07:22 +00:00
Chris Lattner
f4a9774e2b
we have no tests for dllimport/export. Add one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75085 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 00:53:44 +00:00
Chris Lattner
9f44b3a411
* add some assertions for sanity checking.
...
* remove some old code that was needed when we'd put ESP in the scale instead of
the base of some instructions.
* Fix a bug with the P modifier in inline asm that caused us to drop it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75077 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 00:27:29 +00:00
Chris Lattner
600f175834
add a test for dale's recent change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75074 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09 00:00:16 +00:00
Chris Lattner
ab711cc593
switch test to FileCheck-style and test the P and non-P cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75071 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 23:44:06 +00:00
Chris Lattner
e5646ccf66
rename a test to make it a feature test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75070 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 23:40:57 +00:00
David Goodwin
f1daf7d8ab
Use common code for both ARM and Thumb-2 instruction and register info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 23:10:31 +00:00
Devang Patel
2214c94bb7
Drop "constant" from
...
!0 = constant metadata !{...}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:57:07 +00:00
Devang Patel
320671d265
Update SLotTracker to handle MDNode slots.
...
Simplify MDNode printing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:44:25 +00:00
Chris Lattner
096e7280c2
Switch all the MC tests to use FileCheck.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:50:34 +00:00
Chris Lattner
648f9970ae
convert to FileCheck style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:40:54 +00:00
Bob Wilson
2ed334694f
Implement NEON vst1 instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75037 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:32:02 +00:00
Devang Patel
1c7eea60d3
Support MDNode forward reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:23:54 +00:00
Chris Lattner
515cdbe49d
add some more check for vector compares.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:51:25 +00:00
Chris Lattner
57e56cd72a
convert a test to "FileCheck" style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:48:24 +00:00
Bob Wilson
205a5ca6cf
Implement NEON vld1 instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75019 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:11:30 +00:00
David Goodwin
a928f27d23
Add rev16 test... xfail for now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 16:15:06 +00:00
David Goodwin
334c26473b
Checkpoint Thumb2 Instr info work. Generalized base code so that it can be shared between ARM and Thumb2. Not yet activated because register information must be generalized first.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75010 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 16:09:28 +00:00
Nick Lewycky
7f6aa2b162
Remove the vicmp and vfcmp instructions. Because we never had a release with
...
these instructions, no autoupgrade or backwards compatibility support is
provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 03:04:38 +00:00
Chris Lattner
a47d9669b7
eliminate the v[if]cmp versions of these tests, now that [if]cmp+sext works.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:49:35 +00:00
Chris Lattner
b2773e1ada
Change these tests to use [fi]cmp+sext instead of v[fi]cmp. No
...
functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:46:57 +00:00
Chris Lattner
2b7a271c71
dag combine sext(setcc) -> vsetcc before legalize. To make this safe,
...
VSETCC must define all bits, which is different than it was documented
to before. Since all targets that implement VSETCC already have this
behavior, and we don't optimize based on this, just change the
documentation. We now get nice code for vec_compare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74978 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:31:33 +00:00
Chris Lattner
c2c27b3627
add support for legalizing an icmp where the result is illegal (4xi1) but
...
the input is legal (4 x i32)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 23:03:54 +00:00
Chris Lattner
cb178c61e4
add a trivial test that vector compares work.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74963 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 22:51:09 +00:00
Chris Lattner
5962ed0a36
implement support for spliting and scalarizing vector setcc's. This
...
finishes off enough support for vector compares to get the icmp/fcmp
version of 2008-07-23-VSetCC.ll passing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74961 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 22:47:46 +00:00
Chris Lattner
33d6a3451b
verify that the fcmp version of this works just as well as the
...
vfcmp version. We actually get better code for this silly testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74954 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 22:07:47 +00:00
Evan Cheng
e253c951b3
Add Thumb2 movcc instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 20:39:03 +00:00
Evan Cheng
35bd43da76
Add missing tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 20:38:08 +00:00
Chris Lattner
4e4db7adfc
Implement parsing support for the .comm directive. Patch by
...
Kevin Enderby!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 20:30:46 +00:00
Evan Cheng
40289b041a
Add Thumb2 pkhbt / pkhtb.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74895 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 05:35:52 +00:00
Evan Cheng
5b9fcd1c8e
Add some more Thumb2 multiplication instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 01:17:28 +00:00
Evan Cheng
36a0aebac2
Add bfc to armv6t2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74868 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06 22:23:46 +00:00
Evan Cheng
edcbada3d0
Added ARM::mls for armv6t2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06 22:05:45 +00:00
Evan Cheng
2c4d96dfe9
Avoid adding a duplicate def. This fixes PR4478.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74857 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06 21:34:05 +00:00
Stuart Hastings
9cc8fa72a3
Mark this test as Darwin only. Patch by Bill Wendling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74829 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06 15:36:23 +00:00
Nick Lewycky
d1ec98923e
When comparing constants, consider a less wide constant to be "less complex"
...
than a wider one, before trying to compare their contents which will crash
if their sizes are different.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-04 17:24:52 +00:00
Evan Cheng
d27c9fc403
Add thumb2 sign / zero extend with rotate instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03 01:43:10 +00:00
Evan Cheng
6d94f11196
Added indexed stores.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03 00:06:39 +00:00
Evan Cheng
4fbb9960ad
Sign extending pre/post indexed loads.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02 23:16:11 +00:00
Chris Lattner
0dabb0b177
do not try to analyze bitcasts from i64 to <2 x i32> in ComputedMaskedBits. While
...
we could do this, doing so requires adjusting the demanded mask and the code isn't
doing that yet. This fixes PR4495
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74699 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02 16:04:08 +00:00
Evan Cheng
e88d5cee9d
Thumb2 pre/post indexed loads.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74696 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02 07:28:31 +00:00