1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
Commit Graph

4263 Commits

Author SHA1 Message Date
Devang Patel
027410a7aa While calculating upper loop bound for first loop and lower loop bound for second loop, take care of edge cases.
llvm-svn: 41387
2007-08-25 00:56:38 +00:00
Duncan Sands
30440c6c4e Fix this testcase: there are two matches for
llvm.cttz.i64 because of the declaration of
the intrinsic.  Also, emit-llvm is automatic
and doesn't need to be specified.

llvm-svn: 41326
2007-08-23 17:22:50 +00:00
Andrew Lenharth
12f7bd64b4 update test to check that codegen works with llvm.used in llvm.metadata section
llvm-svn: 41289
2007-08-22 19:36:31 +00:00
Bill Wendling
d3c8db882d Testcase for llvm.c* intrinsic failures.
llvm-svn: 41268
2007-08-22 07:26:30 +00:00
Duncan Sands
f275ac587b Test handling of complex constants as lvalues.
llvm-svn: 41266
2007-08-22 05:58:22 +00:00
Devang Patel
6c91023dad Do not split loops rejected by processOneIterationLoop().
llvm-svn: 41194
2007-08-20 20:24:15 +00:00
Duncan Sands
4601c9c8bc Fix this test for gcc-4.2.
llvm-svn: 41187
2007-08-20 17:14:02 +00:00
Evan Cheng
703bafa177 Test dag xform: Fold C ? 0 : 1 to ~C or zext(~C) or trunc(~C)
llvm-svn: 41164
2007-08-18 06:11:57 +00:00
Devang Patel
cf22d4b1f8 Add loop index split tests.
llvm-svn: 41146
2007-08-17 22:02:15 +00:00
Evan Cheng
97e0a167ec New test. Make sure dynamic_stackalloc size is rounded up.
llvm-svn: 41135
2007-08-16 23:52:23 +00:00
Evan Cheng
625e712911 Update test: dynamic_stackalloc size *must* be rounded to ensure stack ptr be left in a valid state.
llvm-svn: 41134
2007-08-16 23:51:28 +00:00
Rafael Espindola
817adb6532 add byval test
llvm-svn: 41123
2007-08-16 13:09:02 +00:00
Reid Spencer
5d553e1e6c Add a test to ensure that obvious link messages are actually produced on
the standard error.

llvm-svn: 41116
2007-08-16 07:22:43 +00:00
Lauro Ramos Venancio
9f9e5b3971 Implement FPOWI ExpandOp.
Fix PR1287.

llvm-svn: 41112
2007-08-15 22:13:27 +00:00
Evan Cheng
46b797bbed Test case for PR1609.
llvm-svn: 41110
2007-08-15 20:30:10 +00:00
Dan Gohman
74e688fce1 This test used "wc | grep ..."; convert it to use the count script.
llvm-svn: 41101
2007-08-15 13:55:47 +00:00
Dan Gohman
34263074cb Convert tests using "grep -c ... | grep ..." to use the count script.
llvm-svn: 41100
2007-08-15 13:49:33 +00:00
Dan Gohman
10c3892fde Delete extraneous uses of wc -l.
llvm-svn: 41099
2007-08-15 13:45:35 +00:00
Dan Gohman
f259c770df Convert another test to use the count script. This one didn't fit the
regex used to convert all the others because the first '|' was on a
separate line.

llvm-svn: 41098
2007-08-15 13:42:36 +00:00
Dan Gohman
794fa1f8f7 Convert tests using "| wc -l | grep ..." to use the count script.
llvm-svn: 41097
2007-08-15 13:36:28 +00:00
Evan Cheng
92df220df4 New test.
llvm-svn: 41087
2007-08-14 23:34:50 +00:00
Evan Cheng
e10e5e71b4 Test case for PR1596.
llvm-svn: 41085
2007-08-14 23:21:10 +00:00
Chris Lattner
603e77e54e tcl seems to hate |& for some reason.
llvm-svn: 41073
2007-08-14 16:19:35 +00:00
Chris Lattner
a76ba56608 switch this to use fastcc to avoid fpstack traffic on x86-32. Switch to
using the count script instead of wc -l

llvm-svn: 41072
2007-08-14 16:14:10 +00:00
Evan Cheng
5c28086ce6 Update test case. A spill should now be deleted.
llvm-svn: 41070
2007-08-14 09:16:00 +00:00
Evan Cheng
fb29461720 Spiller reuse test case.
llvm-svn: 41068
2007-08-14 05:51:03 +00:00
Evan Cheng
e79599dc2d Now capable of rematerializing coalesced live intervals.
llvm-svn: 41061
2007-08-13 23:54:16 +00:00
Dan Gohman
2390ff5060 When x86 addresses matching exceeds its recursion limit, check to
see if the base register is already occupied before assuming it can be
used. This fixes bogus code generation in the accompanying testcase.

llvm-svn: 41049
2007-08-13 20:03:06 +00:00
Chris Lattner
7dfec1ee54 Fix PR1607
llvm-svn: 41048
2007-08-13 18:42:37 +00:00
Chris Lattner
a41b2e2d2f test that the ptr-to-method is succefully eliminated, leaving just the vtable dispatch.
llvm-svn: 41047
2007-08-13 17:17:03 +00:00
Chris Lattner
cab9f1e32b oops, forgot to commit this.
llvm-svn: 41034
2007-08-12 16:55:14 +00:00
Chris Lattner
50f25115cd Transform a load from an undef/zero global into an undef/global even if we
have complex pointer manipulation going on.  This allows us to compile
stuff like this:

__m128i foo(__m128i x){
                static const unsigned int c_0[4] = { 0, 0, 0, 0 };
                __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0);
                x  = _mm_unpacklo_epi8(x,  v_Zero);
                return x;
}

into:

_foo:
        xorps   %xmm1, %xmm1
        punpcklbw       %xmm1, %xmm0
        ret

llvm-svn: 41022
2007-08-11 18:48:48 +00:00
Christopher Lamb
6c79abee5d Fix test so it passes.
llvm-svn: 41012
2007-08-10 22:20:57 +00:00
Christopher Lamb
450f6815b9 Increase efficiency of sign_extend_inreg by using subregisters for truncation. As the README suggests sign_extend_subreg is selected to (sext(trunc)).
llvm-svn: 41010
2007-08-10 21:48:46 +00:00
Christopher Lamb
7196f0d724 Add 2-addr to 3-addr promotion code that allows 32-bit LEA to be used via subregisters when 16-bit LEA is disabled.
llvm-svn: 41007
2007-08-10 21:18:25 +00:00
Dan Gohman
232e8feb40 Add a test script for counting lines. This can be used instead of the
"| grep foo | wc -l | grep 2" idiom used by many tests, so that, for
example, tests don't mistakenly accept a count of 12 when 2 is
expected. Also, the new form is more consice: "| grep foo | count 2".

llvm-svn: 40988
2007-08-10 15:07:05 +00:00
Dan Gohman
f18e94535f Fix EXTRACT_ELEMENT, EXTRACT_SUBVECTOR, and EXTRACT_VECTOR_ELT to
use an intptr ValueType instead of i32 for the index operand in
getCopyToParts.

llvm-svn: 40987
2007-08-10 14:59:38 +00:00
Chris Lattner
3548932573 when we see a unaligned load from an insufficiently aligned global or
alloca, increase the alignment of the load, turning it into an aligned load.

This allows us to compile:

#include <xmmintrin.h>
__m128i foo(__m128i x){
 static const unsigned int c_0[4] = { 0, 0, 0, 0 };
	  __m128i v_Zero = _mm_loadu_si128((__m128i*)c_0);
  x  = _mm_unpacklo_epi8(x,  v_Zero);
  return x;
}

into:

_foo:
	punpcklbw	_c_0.5944, %xmm0
	ret
	.data
	.lcomm	_c_0.5944,16,4		# c_0.5944

instead of:

_foo:
	movdqu	_c_0.5944, %xmm1
	punpcklbw	%xmm1, %xmm0
	ret
	.data
	.lcomm	_c_0.5944,16,2		# c_0.5944

llvm-svn: 40971
2007-08-09 19:05:49 +00:00
Nick Lewycky
8543faa5fe Add reference to problem report.
llvm-svn: 40889
2007-08-07 12:27:03 +00:00
Chris Lattner
da9f76e17a Fix PR1577, a crash on invalid bug.
llvm-svn: 40874
2007-08-06 21:00:37 +00:00
Chandler Carruth
67d3119773 This resolves a regression of BasicAA which failed to find any memory information for overloaded intrinsics (PR1600). This resolves that issue, and improves the matching scheme to use a BitVector rather than a binary search.
llvm-svn: 40872
2007-08-06 20:57:16 +00:00
Nick Lewycky
34cf98c558 It's safe to fold not of fcmp.
llvm-svn: 40870
2007-08-06 20:04:16 +00:00
Nick Lewycky
9e45c33d84 Fix the dates on these tests. It's not September yet. Thanks Reid!
llvm-svn: 40869
2007-08-06 20:00:11 +00:00
Nick Lewycky
04447caa7b Let scalar-evolution analyze loops with an unsigned comparison for the exit
condition. Fixes 1597.

llvm-svn: 40867
2007-08-06 19:21:00 +00:00
Nick Lewycky
071a2c6a5e Don't assume it's safe to transform a loop just because it's dominated by any
comparison. Fixes bug 1598.

llvm-svn: 40866
2007-08-06 18:33:46 +00:00
Chris Lattner
38cfb16fe2 update for new domtree dump format
llvm-svn: 40857
2007-08-06 06:17:08 +00:00
Chris Lattner
f2a88ac82d allow this to pass on ppc hosts.
llvm-svn: 40846
2007-08-05 18:48:18 +00:00
Chandler Carruth
00e56b0e81 This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.

llvm-svn: 40807
2007-08-04 01:51:18 +00:00
Dale Johannesen
dda00eb44d Long double, part 1 of N. Support in IR.
llvm-svn: 40774
2007-08-03 01:03:46 +00:00
Dan Gohman
1afde4166e Fix the alignment requirements of several unpck and shuf instructions.
Generalize isPSHUFDMask and add a unary SHUFPD pattern so that SHUFPD's
memory operand alignment can be tested as well, with a fix to avoid
breaking MMX's use of isPSHUFDMask.

llvm-svn: 40756
2007-08-02 21:17:01 +00:00
Chris Lattner
4670f15d73 I don't have time to restore this functionality right now.
llvm-svn: 40743
2007-08-02 17:43:39 +00:00
Chris Lattner
f0f4024c46 Reduced testcase for PR1594
llvm-svn: 40740
2007-08-02 17:11:24 +00:00
Devang Patel
937b07fb5e Update dominator info for the middle blocks created while spliting
exit edge to preserve LCSSA.

Fix dominance frontier update during loop unswitch. This fixes PR 1589, again

llvm-svn: 40737
2007-08-02 15:25:57 +00:00
Dan Gohman
a599a813d5 Mark the SSE and MMX load instructions that
X86InstrInfo::isReallyTriviallyReMaterializable knows how to handle
with the isReMaterializable flag so that it is given a chance to handle
them. Without hoisting constant-pool loads from loops this isn't very
visible, though it does keep CodeGen/X86/constant-pool-remat-0.ll from
making a copy of the constant pool on the stack.

llvm-svn: 40736
2007-08-02 14:27:55 +00:00
Chris Lattner
0111f62050 Enhance instcombine to be more aggressive about folding casts of
operations of casts.  This implements InstCombine/zext-fold.ll

llvm-svn: 40726
2007-08-02 06:11:14 +00:00
Evan Cheng
5a30bb6d47 Fix test.
llvm-svn: 40721
2007-08-02 05:04:16 +00:00
Chris Lattner
2cacb6cc56 Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll
llvm-svn: 40720
2007-08-02 04:47:05 +00:00
Christopher Lamb
9a2a58c818 Teach BasicAA about noalias parameter attributes, but do it correctly this time.
llvm-svn: 40711
2007-08-02 01:18:14 +00:00
Reid Spencer
329af05ad3 Make sure these tests pass for the right reasons (verifier error, rather than
failure to assemble).

llvm-svn: 40696
2007-08-01 23:07:36 +00:00
Devang Patel
51c61e730a Update dominator info for the middle blocks created while spliting
exit edge to preserve LCSSA.

Fix dominance frontier update during loop unswitch. This fixes PR 1589.

llvm-svn: 40695
2007-08-01 22:23:50 +00:00
Evan Cheng
8183a284fd New test. Bogus implicit-def prevented a copy from being coalesced.
llvm-svn: 40690
2007-08-01 20:26:40 +00:00
Lauro Ramos Venancio
699e4b2dec Add a test for the load/store alignment.
llvm-svn: 40687
2007-08-01 20:07:59 +00:00
Lauro Ramos Venancio
1ef30713de Expand unaligned loads/stores when the target doesn't support them. (PR1548)
llvm-svn: 40682
2007-08-01 19:34:21 +00:00
Christopher Lamb
1787c27f13 Clean up C++ restrict test cases and add a test for restrict qualified methods.
llvm-svn: 40681
2007-08-01 18:48:29 +00:00
Chris Lattner
0b930d11c7 these tests aren't xfailed.
llvm-svn: 40680
2007-08-01 18:37:44 +00:00
Chris Lattner
5d3a429915 we're now handling this right :)
llvm-svn: 40675
2007-08-01 17:10:30 +00:00
Owen Anderson
86544141cf Forgot to update these files for the FastDSE changes.
llvm-svn: 40674
2007-08-01 16:53:51 +00:00
Owen Anderson
58e64df595 Rename FastDSE to just DSE.
llvm-svn: 40668
2007-08-01 06:36:51 +00:00
Evan Cheng
7a025bad7a Requires SSE2.
llvm-svn: 40657
2007-08-01 00:10:12 +00:00
Owen Anderson
9c996b3212 Fix a failure I accidentally caused in my last commit by mishandling the
removal of redundant phis.

llvm-svn: 40650
2007-07-31 20:18:28 +00:00
Lauro Ramos Venancio
abf6c6d469 Fix a bug in GetKnownAlignment of packed structs.
llvm-svn: 40649
2007-07-31 20:13:21 +00:00
Dan Gohman
e3464e6bec Change the x86 assembly output to use tab characters to separate the
mnemonics from their operands instead of single spaces. This makes the
assembly output a little more consistent with various other compilers
(f.e. GCC), and slightly easier to read. Also, update the regression
tests accordingly.

llvm-svn: 40648
2007-07-31 20:11:57 +00:00
Owen Anderson
d178c05c62 Fix a misoptimization in aha.
llvm-svn: 40642
2007-07-31 17:43:14 +00:00
Chris Lattner
6a2ec7bcc8 new testcase
llvm-svn: 40636
2007-07-31 16:18:25 +00:00
Christopher Lamb
5487dd14b4 Revert overly aggressive interpretation of noalias
llvm-svn: 40635
2007-07-31 16:18:07 +00:00
Devang Patel
1324500d25 Bunch of tests to check loop passes.
llvm-svn: 40629
2007-07-31 08:04:17 +00:00
Evan Cheng
3493ec0ce1 Redo and generalize previously removed opt for pinsrw: (vextract (v4i32 bc (v4f32 s2v (f32 load ))), 0) -> (i32 load )
llvm-svn: 40628
2007-07-31 08:04:03 +00:00
Christopher Lamb
907892e47a Teach BasicAA about noalias function parameters. Passes all of DejaGNU and test-suite.
llvm-svn: 40624
2007-07-31 07:04:51 +00:00
Christopher Lamb
6f372976ca Un-XFAIL these tests after r40622 fixed them.
llvm-svn: 40623
2007-07-31 07:03:24 +00:00
Reid Spencer
ac494bd7cf For PR1553:
Make the AsmParser auto-upgrade the old zext and sext
keywords for parameter attributes and handle the 
end-of-line ambiguity.

llvm-svn: 40610
2007-07-31 02:57:37 +00:00
Dan Gohman
375d541183 Fix a bug in getCopyFromParts turned up in the testcase for PR1132.
llvm-svn: 40598
2007-07-30 19:09:17 +00:00
Owen Anderson
a8d0a6ee40 Fix a bug caused by indiscriminantly asking for the dominators of a predecessor.
llvm-svn: 40595
2007-07-30 16:57:08 +00:00
Evan Cheng
ccd453c461 New test case.
llvm-svn: 40587
2007-07-30 07:52:03 +00:00
Christopher Lamb
0df2d6e9e5 Add tests for generating noalias parameter attribute from __restrict qualified function parameters. C++ tests are currently XFAILing see PR1582.
llvm-svn: 40583
2007-07-29 23:29:16 +00:00
Reid Spencer
3df94811d2 Be explicit about which level of optimization is being asked for. The -O option
is equivalent to -O1.

llvm-svn: 40581
2007-07-29 18:23:22 +00:00
Nick Lewycky
391b3e4b4c Make this explictly signed. Fixes PR1571.
llvm-svn: 40569
2007-07-28 16:43:10 +00:00
Dan Gohman
0252aa07ee Re-apply 40504, but with a fix for the segfault it caused in oggenc:
Make the alignedload and alignedstore patterns always require 16-byte
alignment. This way when they are used in the "Fs" instructions, in which
a vector instruction is used for a scalar purpose, they can still require
the full vector alignment. And add a regression test for this.

llvm-svn: 40555
2007-07-27 17:16:43 +00:00
Evan Cheng
cb8f08ebca Reverting 40504 for now. It's breaking oggenc.
llvm-svn: 40547
2007-07-27 01:37:47 +00:00
Owen Anderson
ed3e63a203 Fix a bug introduced in my last commit.
llvm-svn: 40542
2007-07-26 18:57:04 +00:00
Owen Anderson
f2b10d3de3 Fix a couple more bugs in the phi construction by pulling in code that does
almost the same things from LCSSA.

llvm-svn: 40540
2007-07-26 18:26:51 +00:00
Evan Cheng
7b20c11ccf Test case for PR1573.
llvm-svn: 40539
2007-07-26 17:45:57 +00:00
Evan Cheng
a681654ef4 Fix test.
llvm-svn: 40536
2007-07-26 17:07:03 +00:00
Dan Gohman
513dcba4f8 Remove X86ISD::LOAD_PACK and X86ISD::LOAD_UA and associated code from the
x86 target, replacing them with the new alignment attributes on memory
references.

llvm-svn: 40504
2007-07-26 00:31:09 +00:00
Owen Anderson
ed75133924 Fix what is _hopefully_ the last corner case for loops.
llvm-svn: 40503
2007-07-25 23:54:42 +00:00
Owen Anderson
1e53615073 My last commit was not correct for nested loops. Fix it, and add a testcase for it.
llvm-svn: 40498
2007-07-25 22:19:40 +00:00
Owen Anderson
ce9d73dbe7 Fix an infinite loop on 300.twolf.
llvm-svn: 40497
2007-07-25 22:03:06 +00:00
Owen Anderson
b215074820 Fix a bug in non-local memdep that was causing an infinite loop on 175.vpr.
llvm-svn: 40495
2007-07-25 21:26:36 +00:00
Owen Anderson
522f7a7608 Fix a bug that was causing GVN to crash on 252.eon.
llvm-svn: 40494
2007-07-25 21:13:41 +00:00
Owen Anderson
6a1a8d05b8 Add basic support for performing whole-function RLE.
Note: This has not yet been thoroughly tested.  Use at your own risk.

llvm-svn: 40489
2007-07-25 19:57:03 +00:00
Chandler Carruth
581a82e0bb Moving regression test to reflect move in source and headers to Bitcode.
llvm-svn: 40488
2007-07-25 19:47:31 +00:00