Commit Graph

2916 Commits

Author SHA1 Message Date
Duncan Sands 55e5090fe8 When transforming a call to a bitcast function into
a direct call with cast parameters and cast return
value (if any), instcombine was prepared to cast any
non-void return value into any other, whether castable
or not.  Add a new predicate for testing whether casting
is valid, and check it both for the return value and
(as a cleanup) for the parameters.

llvm-svn: 45657
2008-01-06 10:12:28 +00:00
Chris Lattner e666bc272d remove a couple more unsafe xforms in the face of overflow.
llvm-svn: 45613
2008-01-05 01:22:42 +00:00
Chris Lattner bdd6acfb59 Fix PR1896
llvm-svn: 45568
2008-01-04 05:04:53 +00:00
Chris Lattner f391883670 don't hoist FP additions into unconditional adds + selects. This
could theoretically introduce a trap, but is also a performance issue.
This speeds up ptrdist/ks by 8%.

llvm-svn: 45533
2008-01-03 07:25:26 +00:00
Bill Wendling 6f8c9a8372 Update this testcase. The output needs to be disabled to pass.
llvm-svn: 45478
2008-01-01 01:34:36 +00:00
Chris Lattner e96658392d dead calls to llvm.stacksave can be deleted, even though they
have potential side-effects.

llvm-svn: 45392
2007-12-29 00:59:12 +00:00
Chris Lattner bc03f70a07 upgrade this test
llvm-svn: 45391
2007-12-29 00:57:06 +00:00
Devang Patel b57ff068cd Test -simplifycfg only.
llvm-svn: 45389
2007-12-28 22:59:48 +00:00
Owen Anderson 3de3f9981e Add a testcase for my recent InstCombine fix, written by Nicholas.
llvm-svn: 45386
2007-12-28 21:08:43 +00:00
Chris Lattner 74b2ab59fd implement InstCombine/shift-trunc-shift.ll. This allows
us to compile:
#include <math.h>
int t1(double d) { return signbit(d); }

into:

_t1:
	movd	%xmm0, %rax
	shrq	$63, %rax
	ret

instead of:

_t1:
	movd	%xmm0, %rax
	shrq	$32, %rax
	shrl	$31, %eax
	ret

on x86-64.

llvm-svn: 45311
2007-12-22 09:07:47 +00:00
Devang Patel 7a2c66b11e If succ has succ itself as one of the predecessors then do
not merge current bb and succ even if bb's terminator is
unconditional branch to succ.

llvm-svn: 45305
2007-12-22 01:32:53 +00:00
Duncan Sands 6a7703ed63 Make DAE not wipe out attributes on calls, and not drop
return attributes on the floor.  In the case of a call
to a varargs function where the varargs arguments are
being removed, any call attributes on those arguments
need to be dropped.  I didn't do this because I plan to
make it illegal to have such attributes (see next patch).
With this change, compiling the gcc filter2 eh test at -O0
and then running opt -std-compile-opts on it results in
a correctly working program (compiling at -O1 or higher
results in the test failing due to a problem with how we
output eh info into the IR).

llvm-svn: 45285
2007-12-21 19:16:16 +00:00
Christopher Lamb 7d82bc46b8 Implement review feedback, including additional transforms
(icmp slt (sub A B) 1) -> (icmp sle A B)
icmp sgt (sub A B) -1) -> (icmp sge A B)

and add testcase.

llvm-svn: 45256
2007-12-20 07:21:11 +00:00
Duncan Sands aa31b92508 When inlining through an 'nounwind' call, mark inlined
calls 'nounwind'.  It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.

llvm-svn: 45218
2007-12-19 21:13:37 +00:00
Christopher Lamb 74dbad9216 Remove an orthogonal transformation of the selection condition from my most recent submission.
llvm-svn: 45169
2007-12-18 20:30:28 +00:00
Christopher Lamb 30291f4a30 Fix typos.
llvm-svn: 45159
2007-12-18 09:45:40 +00:00
Christopher Lamb 8b09a464b4 Fold certain additions through selects (and their compares) so as to eliminate subtractions. This code is often produced by the SMAX expansion in SCEV.
This implements test/Transforms/InstCombine/2007-12-18-AddSelCmpSub.ll

llvm-svn: 45158
2007-12-18 09:34:41 +00:00
Duncan Sands b5a79d0eaa Make invokes of inline asm legal. Teach codegen
how to lower them (with no attempt made to be
efficient, since they should only occur for
unoptimized code).

llvm-svn: 45108
2007-12-17 18:08:19 +00:00
Duncan Sands 8e4847ee95 Make instcombine promote inline asm calls to 'nounwind'
calls.  Remove special casing of inline asm from the
inliner.  There is a potential problem: the verifier
rejects invokes of inline asm (not sure why).  If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created.  This is bad but
I'm not sure what the best approach is.  I'm tempted
to remove the check in the verifier...

llvm-svn: 45073
2007-12-16 15:51:49 +00:00
Wojciech Matyjewicz 309e5a723b 1. "Upgrage" comments.
2. Using zero-extended value of Scale and unsigned division is safe provided
   that Scale doesn't have the sign bit set.
   Previously these 2 instructions:
        %p = bitcast [100 x {i8,i8,i8}]* %x to i8*
        %q = getelementptr i8* %p, i32 -4
   were combined into:
        %q = getelementptr [100 x { i8, i8, i8 }]* %x, i32 0,
               i32 1431655764, i32 0
   what was incorrect.

llvm-svn: 44936
2007-12-12 15:21:32 +00:00
Chris Lattner 6a6b3fb62b Implement constant folding if vector<->vector bitcasts where the number
of source/dest elements changes.  This implements
test/Transforms/InstCombine/bitcast-vector-fold.ll

llvm-svn: 44855
2007-12-11 07:29:44 +00:00
Chris Lattner d2265b45ae Fix PR1850 by removing an unsafe transformation from VMCore/ConstantFold.cpp.
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe.  While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".

llvm-svn: 44817
2007-12-10 22:53:04 +00:00
Duncan Sands 9f76be61d1 Make PruneEH update the nounwind/noreturn attributes
on functions as it calculates them.

llvm-svn: 44802
2007-12-10 19:09:40 +00:00
Devang Patel bd75910fa7 If ExitValue operand is also defined in Loop header then
insert new ExitValue after this operand definition.

This fixes PR1828.

llvm-svn: 44539
2007-12-03 19:17:21 +00:00
Duncan Sands 5208d1ab4a Add some convenience methods for querying attributes, and
use them.

llvm-svn: 44403
2007-11-28 17:07:01 +00:00
Duncan Sands ad0ea2d430 Fix PR1146: parameter attributes are longer part of
the function type, instead they belong to functions
and function calls.  This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll).  Hopefully
a bitcode guru (who might that be? :) ) will fix it.

llvm-svn: 44359
2007-11-27 13:23:08 +00:00
Nick Lewycky cdb7e54ca7 Add new SCEV, SCEVSMax. This allows LLVM to analyze do-while loops.
llvm-svn: 44319
2007-11-25 22:41:31 +00:00
Chris Lattner c00e8adfe0 Implement PR1822
llvm-svn: 44318
2007-11-25 21:27:53 +00:00
Duncan Sands 185eeac0f8 Fix PR1816. If a bitcast of a function only exists because of a
trivial difference in function attributes, allow calls to it to
be converted to direct calls.  Based on a patch by Török Edwin.
While there, move the various lists of mutually incompatible
parameters etc out of the verifier and into ParameterAttributes.h.

llvm-svn: 44315
2007-11-25 14:10:56 +00:00
Chris Lattner 893fe3bbd1 Fix PR1816, by correcting the broken definition of APInt::countTrailingZeros.
llvm-svn: 44296
2007-11-23 22:42:31 +00:00
Duncan Sands 8a3e9d2bee Ding dong, the DoesntAccessMemoryFns and
OnlyReadsMemoryFns tables are dead!  We
get more, and more accurate, information
from gcc via the readnone and readonly
function attributes.

llvm-svn: 44288
2007-11-23 19:30:27 +00:00
Chris Lattner a8fbde3f78 Fix a bug where we'd try to find a scev value for a bitcast operand,
even though the bitcast operand did not have integer type.  This fixes
PR1814.

llvm-svn: 44286
2007-11-23 08:46:22 +00:00
Chris Lattner 1985d96dc9 Fix PR1817.
llvm-svn: 44284
2007-11-22 23:47:13 +00:00
Duncan Sands a915b538d3 Turn invokes of nounwind functions into ordinary calls.
llvm-svn: 44280
2007-11-22 22:24:59 +00:00
Duncan Sands 1c97d752df Readonly/readnone functions are allowed to throw
exceptions, so don't turn invokes of them into
calls.

llvm-svn: 44278
2007-11-22 21:40:06 +00:00
Chris Lattner c53b18362a Fix PR1800 by correcting mistaken logic.
llvm-svn: 44188
2007-11-16 06:04:17 +00:00
Chris Lattner a77e74edba Implement PR1796 and Transforms/SimplifyCFG/noreturn-call.ll
by inserting unreachable after no-return calls.

llvm-svn: 44099
2007-11-14 06:19:25 +00:00
Chris Lattner f150ace6cb upgrade test
llvm-svn: 44067
2007-11-13 21:42:48 +00:00
Chris Lattner 61ce4dff7a Implement PR1786 by iterating between dead cycle elimination
and simplifycfg in the rare cases when it is needed.

llvm-svn: 44044
2007-11-13 07:32:38 +00:00
Chris Lattner f9c0fd7488 Tighten up a check for folding away loads from (newly constant) globals. This
fixes a crash on Transforms/GlobalOpt/2007-11-09-GEP-GEP-Crash.ll and 
rdar://5585488.

llvm-svn: 43949
2007-11-09 17:33:02 +00:00
Andrew Lenharth 19ca5c7021 Better check
llvm-svn: 43897
2007-11-08 18:45:15 +00:00
Andrew Lenharth 8cf11aa330 Fix PR1780
llvm-svn: 43893
2007-11-08 17:39:28 +00:00
Chris Lattner d8515f8e80 Implement PR1777 by detecting dependent phis that
all compute the same value.

llvm-svn: 43777
2007-11-06 21:52:06 +00:00
Dan Gohman 4decbc5002 Fix an abort in instcombine when folding creates a vector rem instruction.
llvm-svn: 43743
2007-11-05 23:16:33 +00:00
Devang Patel b98d2050a2 If a value is incoming from outside the loop then the value does not need remapping and the value is never tracked through LastValueMap.
llvm-svn: 43728
2007-11-05 19:32:30 +00:00
Duncan Sands 399d97987b Change uses of getTypeSize to getABITypeSize, getTypeStoreSize
or getTypeSizeInBits as appropriate in ScalarReplAggregates.
The right change to make was not always obvious, so it would
be good to have an sroa guru review this.  While there I noticed
some bugs, and fixed them: (1) arrays of x86 long double have
holes due to alignment padding, but this wasn't being spotted
by HasStructPadding (renamed to HasPadding).  The same goes
for arrays of oddly sized ints.  Vectors also suffer from this,
in fact the problem for vectors is much worse because basic
vector assumptions seem to be broken by vectors of type with
alignment padding.   I didn't try to fix any of these vector
problems.  (2) The code for extracting smaller integers from
larger ones (in the "int union" case) was wrong on big-endian
machines for integers with size not a multiple of 8, like i1.
Probably this is impossible to hit via llvm-gcc, but I fixed
it anyway while there and added a testcase.  I also got rid of
some trailing whitespace and changed a function name which
had an obvious typo in it.

llvm-svn: 43672
2007-11-04 14:43:57 +00:00
Owen Anderson 2ed651ace7 Fix test/Transforms/DeadStoreElimination/PartialStore.ll, which had been
silently failing because of an incorrect run line for some time.

llvm-svn: 43605
2007-11-01 05:29:16 +00:00
Chris Lattner 6ab19ed78d Fix InstCombine/2007-10-31-StringCrash.ll by removing an obvious
(in hindsight) infinite recursion.  Simplify the code.

llvm-svn: 43597
2007-11-01 02:30:35 +00:00
Chris Lattner 74709473ed Fix InstCombine/2007-10-31-RangeCrash.ll
llvm-svn: 43596
2007-11-01 02:18:41 +00:00
Dan Gohman 9f39660c20 Add support for folding binary operators with vector zero operands.
llvm-svn: 43510
2007-10-30 19:00:49 +00:00
Chris Lattner 00860d7574 update testcase
llvm-svn: 43452
2007-10-29 17:06:35 +00:00
Chris Lattner c541c3ee15 Model stacksave and stackrestore as both writing memory, since we
don't model their dependences on allocas correctly.  This fixes
PR1745.

llvm-svn: 43442
2007-10-29 05:47:52 +00:00
Chris Lattner 9a641510bd Fix PR1749 and InstCombine/2007-10-28-EmptyField.ll by handling
zero-length fields better.

llvm-svn: 43427
2007-10-29 02:40:02 +00:00
Chris Lattner 4a15e04aee Fix PR1752 and LoopSimplify/2007-10-28-InvokeCrash.ll: terminators
can have uses too.  Wouldn't it be nice if invoke didn't exist? :)

llvm-svn: 43426
2007-10-29 02:30:37 +00:00
Chris Lattner c62877e9da Implement a couple of foldings for ordered and unordered comparisons,
implementing cases related to PR1738.

llvm-svn: 43289
2007-10-24 05:38:08 +00:00
Bill Wendling ac5c93040f Don't branch fold inline asm statements.
llvm-svn: 43191
2007-10-19 21:09:55 +00:00
Devang Patel c0ced49a14 This test now passes.
llvm-svn: 43183
2007-10-19 17:11:01 +00:00
Chris Lattner 9715d9fb59 Fix PR1735 and Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll by
fixing some obviously broken code :(

llvm-svn: 43141
2007-10-18 18:49:29 +00:00
Devang Patel 9497767458 XFAIL for now.
llvm-svn: 43111
2007-10-18 00:48:43 +00:00
Devang Patel b3dac3f5d9 Do not raise free() call that is called through invoke instruction.
llvm-svn: 43083
2007-10-17 20:12:58 +00:00
Devang Patel 91ff13edcc Apply "Instead of loading small c string constant, use integer constant directly" transformation while processing load instruction.
llvm-svn: 43070
2007-10-17 07:24:40 +00:00
Chris Lattner ad618f66e6 Fix a bug in my patch last night that broke InstCombine/2007-10-12-Crash.ll
llvm-svn: 42920
2007-10-12 18:05:47 +00:00
Chris Lattner 3e99eb25ee testcase for PR1728
llvm-svn: 42890
2007-10-12 05:29:53 +00:00
Devang Patel 899cc56612 Lower memcpy if it makes sense.
llvm-svn: 42864
2007-10-11 17:21:57 +00:00
Devang Patel a69f987b66 Fix bug in updating dominance frontier after loop
unswitch when frontier includes basic blocks that 
are not inside loop.

llvm-svn: 42654
2007-10-05 22:29:34 +00:00
Devang Patel 2a60ff1aeb Relax unsafe use check. If there is one unconditional use inside the loop then it is safe to promote value even if there is another conditional use inside the loop.
llvm-svn: 42493
2007-10-01 18:12:58 +00:00
Devang Patel 7bba386f72 Handle multiple induction variables.
This fixes PR714.

llvm-svn: 42309
2007-09-25 18:24:48 +00:00
Devang Patel 87d7e8ebcb Add transformation to update loop interation space. Now,
for (i=A; i<N; i++) {
  if (i < X && i > Y)
    do_something();
}

is transformed into

U=min(N,X); L=max(A,Y);
for (i=L;i<U;i++)
  do_somethihg();                            

llvm-svn: 42299
2007-09-25 17:31:19 +00:00
Devang Patel 9e30e1a3be Do not promote null values because it may be unsafe to do so.
llvm-svn: 42270
2007-09-24 20:02:42 +00:00
Devang Patel 361e52f39c Fix PR1692
llvm-svn: 42209
2007-09-21 21:18:19 +00:00
Duncan Sands 416b9f0410 Testcase for PR1678.
llvm-svn: 42171
2007-09-20 18:56:24 +00:00
Nick Lewycky e7be16a053 Excuse me.
llvm-svn: 42158
2007-09-20 00:57:00 +00:00
Nick Lewycky eae7e7d00b Fix optimization. %x = sub %x, %y does not imply that %y is zero.
llvm-svn: 42157
2007-09-20 00:48:36 +00:00
Devang Patel 464276f831 Avoid unsafe promotion.
llvm-svn: 42149
2007-09-19 20:18:51 +00:00
Gabor Greif 49122edc98 rename test, it is obviously misspelled
llvm-svn: 42108
2007-09-18 21:42:39 +00:00
Devang Patel fcda998ab2 Fix PR1657
llvm-svn: 42075
2007-09-18 01:54:42 +00:00
Dan Gohman 2ac2652779 Instcombine x-((x/y)*y) into a remainder operator.
llvm-svn: 42035
2007-09-17 17:31:57 +00:00
Chris Lattner dd76f2f4ab remove obsolete tests.
llvm-svn: 41984
2007-09-15 17:38:04 +00:00
Duncan Sands 94580c7522 Test that a call to a trampoline is turned into a call to
the underlying nested function.

llvm-svn: 41846
2007-09-11 15:07:50 +00:00
Chris Lattner 6cf04f4952 remove obsolete testcase
llvm-svn: 41820
2007-09-10 23:51:41 +00:00
Chris Lattner 52fe869374 Fix a buggy constant folding transformation when handling aliases.
llvm-svn: 41818
2007-09-10 23:42:42 +00:00
Dale Johannesen 62a48cea56 Add missing llvm-dis.
llvm-svn: 41813
2007-09-10 22:47:59 +00:00
Chris Lattner c75cbe6473 Prevent tailcallelim from breaking "recursive" calls to builtins.
llvm-svn: 41804
2007-09-10 20:58:55 +00:00
Devang Patel f8ab0a9acc Filter exit conditions which are not yet handled.
llvm-svn: 41800
2007-09-10 18:33:42 +00:00
Chris Lattner 85a51e0060 Don't zap back to back volatile load/stores
llvm-svn: 41759
2007-09-07 05:33:03 +00:00
Nick Lewycky b0b066eaaa When the two operands of an icmp are equal, there are five possible predicates
that would make the icmp true. Fixes PR1637.

llvm-svn: 41740
2007-09-06 01:10:22 +00:00
Dale Johannesen 6480cc6f8c Change all floating constants that are not exactly
representable to use hex format.

llvm-svn: 41722
2007-09-05 17:50:36 +00:00
Anton Korobeynikov 24fb6b2f8c Don't promote volatile loads/stores. This is needed (for example) to handle setjmp/longjmp properly.
This fixes PR1520.

llvm-svn: 41461
2007-08-26 21:43:30 +00:00
Devang Patel c1ef32ef3d Constant split values needs upper bound and lower bound check, just like any other split value.
llvm-svn: 41389
2007-08-25 01:09:14 +00:00
Devang Patel 4e63e1f5b5 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
Devang Patel c2e2d15f45 Do not split loops rejected by processOneIterationLoop().
llvm-svn: 41194
2007-08-20 20:24:15 +00:00
Devang Patel cec2ad95f4 Add loop index split tests.
llvm-svn: 41146
2007-08-17 22:02:15 +00:00
Dan Gohman ada7205b76 Convert tests using "grep -c ... | grep ..." to use the count script.
llvm-svn: 41100
2007-08-15 13:49:33 +00:00
Dan Gohman f9dd170e36 Convert tests using "| wc -l | grep ..." to use the count script.
llvm-svn: 41097
2007-08-15 13:36:28 +00:00
Chris Lattner 1399f64e3b oops, forgot to commit this.
llvm-svn: 41034
2007-08-12 16:55:14 +00:00
Chris Lattner 99c8ee2977 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
Chris Lattner a8e4b4bc7b 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 8052019a20 It's safe to fold not of fcmp.
llvm-svn: 40870
2007-08-06 20:04:16 +00:00
Chandler Carruth 7132e00de7 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
Chris Lattner 9ea0287e25 I don't have time to restore this functionality right now.
llvm-svn: 40743
2007-08-02 17:43:39 +00:00
Chris Lattner 498137dbfc Reduced testcase for PR1594
llvm-svn: 40740
2007-08-02 17:11:24 +00:00
Devang Patel a882328e61 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
Chris Lattner b0418fc607 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
Chris Lattner d7cb625a9e Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll
llvm-svn: 40720
2007-08-02 04:47:05 +00:00
Devang Patel 561b0c29a3 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
Owen Anderson 4d34e40c6d Forgot to update these files for the FastDSE changes.
llvm-svn: 40674
2007-08-01 16:53:51 +00:00
Owen Anderson 10e52eddb3 Rename FastDSE to just DSE.
llvm-svn: 40668
2007-08-01 06:36:51 +00:00
Owen Anderson 2464f4f048 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 549e775e67 Fix a bug in GetKnownAlignment of packed structs.
llvm-svn: 40649
2007-07-31 20:13:21 +00:00
Dan Gohman 54ec4bfa5f 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 d58fa6b09f Fix a misoptimization in aha.
llvm-svn: 40642
2007-07-31 17:43:14 +00:00
Devang Patel dd34d91e1a Bunch of tests to check loop passes.
llvm-svn: 40629
2007-07-31 08:04:17 +00:00
Owen Anderson d66e285b2e Fix a bug caused by indiscriminantly asking for the dominators of a predecessor.
llvm-svn: 40595
2007-07-30 16:57:08 +00:00
Owen Anderson 0f692f27a3 Fix a bug introduced in my last commit.
llvm-svn: 40542
2007-07-26 18:57:04 +00:00
Owen Anderson dbf23ccaa0 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
Owen Anderson 3b8cc30a61 Fix what is _hopefully_ the last corner case for loops.
llvm-svn: 40503
2007-07-25 23:54:42 +00:00
Owen Anderson 8707412593 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 3c67004d47 Fix an infinite loop on 300.twolf.
llvm-svn: 40497
2007-07-25 22:03:06 +00:00
Owen Anderson 9b796348bd 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 7bf26ee444 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 5e5599b7ce 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
Owen Anderson ab6ec2eac2 Add a GVN pass, using the value numbering code I developed for GVNPRE and the
load elimination code from RedundantLoadElimination.

llvm-svn: 40469
2007-07-24 17:55:58 +00:00
Devang Patel 13b25df0e9 Unreachable block is not a root node in post dominator tree.
llvm-svn: 40458
2007-07-24 01:02:25 +00:00
Owen Anderson 9baaaa52e6 Rename a lot of things to change FastDLE to RedundantLoadElimination.
llvm-svn: 40457
2007-07-24 00:17:04 +00:00
Owen Anderson 0a75315d35 Add testcases for FastDLE.
llvm-svn: 40449
2007-07-23 22:18:05 +00:00
Owen Anderson 59a6840d47 Move these tests to use FastDSE instead of old DSE.
llvm-svn: 40444
2007-07-23 20:49:13 +00:00
Chris Lattner 7649abce46 This xform isn't safe, removing it.
llvm-svn: 40378
2007-07-21 21:27:27 +00:00
Dan Gohman e31a61eeca Optimize alignment of loads and stores.
llvm-svn: 40102
2007-07-20 16:34:21 +00:00
Reid Spencer 314e1cb7ee For PR1553:
Change the keywords for the zext and sext parameter attributes to be 
zeroext and signext so they don't conflict with the keywords for the
instructions of the same name. This gets around the ambiguity.

llvm-svn: 40069
2007-07-19 23:13:04 +00:00
Devang Patel 86dff8f8be New test.
llvm-svn: 40023
2007-07-18 23:47:02 +00:00
Chris Lattner d8bdf53335 rename function to avoid llvm-upgrade warning
llvm-svn: 39895
2007-07-16 04:09:00 +00:00
Chris Lattner d4fef8dbca Implement shift-simplify.ll:test[45].
First teach instcombine that sign bit checks only demand the 
sign bit, this allows simplify demanded bits to hack on 
expressions better.

Second, teach instcombine that ashr is useless if only the
sign bit is demanded.

llvm-svn: 39880
2007-07-15 20:54:51 +00:00
Chris Lattner 06205d5567 Implement shift-simplify.ll:test3, turning:
(X << 31) <s 0  --> (X&1) != 0

This happens dozens of times in the CFE.

llvm-svn: 39879
2007-07-15 20:42:37 +00:00
Devang Patel 52c2dd4699 New test.
llvm-svn: 39768
2007-07-11 23:54:25 +00:00
Owen Anderson 8b99e0ab20 Fix an error where ANTIC_OUT was ending up with more than one expression of
the same value number.  This fixes an infinite loop on 444.namd.

llvm-svn: 37967
2007-07-07 20:13:57 +00:00
Owen Anderson 02e9698293 Fix a bunch of issues found in a testcase from 400.perlbench.
llvm-svn: 37929
2007-07-05 23:11:26 +00:00
Owen Anderson ca1a184fd8 Fix another bug, this time in PREing select instructions.
llvm-svn: 37878
2007-07-04 22:33:23 +00:00
Owen Anderson cd94fc982a Fix a typo that was killing GVNPRE of select instructions.
llvm-svn: 37871
2007-07-04 18:26:18 +00:00
Owen Anderson 664e260a9c Fix an error in phi translation of GEPs that was causing failures.
llvm-svn: 37868
2007-07-04 04:51:16 +00:00
Owen Anderson 2e4b6feac2 Add support for performing GVNPRE on GEP instructions.
llvm-svn: 37862
2007-07-03 23:51:19 +00:00
Owen Anderson 59bd053fc5 Add support for performing GVNPRE on cast instructions, and add a testcase for this.
llvm-svn: 37856
2007-07-03 18:37:08 +00:00
Zhou Sheng bf61346b1c Test case for recent patch for IndVarSimplify.cpp
llvm-svn: 37838
2007-07-02 08:02:14 +00:00
John Criswell 2660cef6d7 Convert .cvsignore files
llvm-svn: 37801
2007-06-29 16:35:07 +00:00
Owen Anderson d630147c44 Add a test for performing GVNPRE on select instructions.
llvm-svn: 37782
2007-06-28 23:50:31 +00:00
Owen Anderson 43790570ad Add tests for performing GVNPRE on the three vector-specific instructions.
llvm-svn: 37744
2007-06-27 04:06:32 +00:00
Chris Lattner b2a9048dc4 new testcase, the inliner shouldn't inline this.
llvm-svn: 37722
2007-06-25 21:49:53 +00:00
Owen Anderson bfd1673366 Rename variables to expose the fact that this test is failing.
llvm-svn: 37711
2007-06-24 08:17:41 +00:00
Chris Lattner 181ebd6f88 new testcase miscompiled by instcombine, reduced from perl
llvm-svn: 37691
2007-06-21 18:09:25 +00:00
Owen Anderson 0b7c12be82 Testcase for instances where a constant only occurs as an operand to a phi node.
llvm-svn: 37653
2007-06-19 05:55:01 +00:00
Owen Anderson 3552c9e845 Add a new testcase for memory corruption issues.
llvm-svn: 37648
2007-06-19 05:41:22 +00:00
Owen Anderson d2028a549f Testcase where GVNPRE was getting confused by invoke instructions.
llvm-svn: 37609
2007-06-16 00:25:10 +00:00
Owen Anderson ad9743225e Add a testcase where GVNPRE what getting confused by a loop.
llvm-svn: 37594
2007-06-15 17:54:05 +00:00
Chris Lattner 9923af42cf add vector versions of this test
llvm-svn: 37588
2007-06-15 06:22:32 +00:00
Chris Lattner a8de4cccd9 testcase for PR1510
llvm-svn: 37583
2007-06-15 05:57:20 +00:00
Owen Anderson b1c82db828 Add a test where phi translation was producing a null result.
llvm-svn: 37563
2007-06-12 22:42:35 +00:00
Owen Anderson 6d1df658c0 Testcase where GVNPRE crashes on functions with no exit nodes.
llvm-svn: 37555
2007-06-12 16:56:00 +00:00
Owen Anderson 3c0c1376ea Make the run line for this test correct. Thanks to Chris for spotting it.
llvm-svn: 37552
2007-06-12 04:40:48 +00:00
Owen Anderson ee35eab57f Add a GVN-PRE basic regression test.
llvm-svn: 37549
2007-06-12 00:49:33 +00:00
Tanya Lattner cb90f1d881 Instruct the inliner to obey the noinline attribute. Add test case.
llvm-svn: 37481
2007-06-06 21:59:26 +00:00
Lauro Ramos Venancio be59acbfcc Add a test for PR1499.
llvm-svn: 37473
2007-06-06 17:10:02 +00:00
Nick Lewycky 3b70bb2778 new testcase for PR1487
llvm-svn: 37458
2007-06-06 04:11:21 +00:00
Chris Lattner 084c20fcc0 new testcase for PR1491
llvm-svn: 37422
2007-06-04 22:23:17 +00:00
Chris Lattner ed24b3b2fa Testcase for PR1421
llvm-svn: 37357
2007-05-30 06:10:46 +00:00
Chris Lattner 49a34fcca7 testcase for PR1446
llvm-svn: 37325
2007-05-24 18:42:47 +00:00
Chris Lattner e44b6a6aaf new testcase for PR1435
llvm-svn: 37304
2007-05-23 06:35:52 +00:00
Chris Lattner faa31904e4 new testcase
llvm-svn: 37255
2007-05-19 06:50:37 +00:00
Dan Gohman 6164a1b279 Add a testcase for unrolling loops with unknown tripcounts.
llvm-svn: 37238
2007-05-18 19:59:23 +00:00
Devang Patel f9ed308aba New test.
llvm-svn: 37184
2007-05-17 22:05:20 +00:00
Chris Lattner 120548e508 New testcase that crashes instcombine
llvm-svn: 37056
2007-05-15 00:15:49 +00:00
Chris Lattner 3b4ae44057 this crashes globalopt
llvm-svn: 37021
2007-05-13 21:28:25 +00:00
Chris Lattner b6d85ad1e1 new testcase that crashes instcombine
llvm-svn: 36983
2007-05-11 05:55:38 +00:00
Devang Patel d385e3970f Drop ModuleID from comment.
llvm-svn: 36982
2007-05-11 00:45:58 +00:00
Devang Patel 00a08d129e New test.
llvm-svn: 36954
2007-05-09 08:19:24 +00:00
Devang Patel 519f2997cc New test.
llvm-svn: 36953
2007-05-09 08:08:46 +00:00
Chris Lattner 75d56499c6 add the & back. I'm not sure why bill removed it.
llvm-svn: 36945
2007-05-08 20:08:06 +00:00
Bill Wendling 0c976b8762 Spare '&' in the RUN line.
llvm-svn: 36933
2007-05-08 07:49:07 +00:00
Chris Lattner e8f14fb4cd this test is now in Target/README.txt
llvm-svn: 36812
2007-05-05 22:44:27 +00:00
Chris Lattner 2601579ec9 remove an old xfailed test
llvm-svn: 36810
2007-05-05 22:42:02 +00:00
Chris Lattner 3dde023021 un-xfail this.
llvm-svn: 36808
2007-05-05 22:41:13 +00:00
Chris Lattner df37169381 move these xfailed tests to lib/Target/README.txt
llvm-svn: 36805
2007-05-05 22:28:33 +00:00
Chris Lattner 4dc9a76ad8 Move Mem2Reg/DifferingTypes.ll -> ScalarRepl/DifferingTypes.ll. -scalarrepl
implements this xform.

llvm-svn: 36804
2007-05-05 22:22:03 +00:00
Chris Lattner c103b49f52 remvoe two tests that cee has never gotten right
llvm-svn: 36803
2007-05-05 22:19:49 +00:00
Chris Lattner 580d824e5d new testcase for PR1385
llvm-svn: 36783
2007-05-05 18:48:52 +00:00
Chris Lattner 8b332d32be new testacse for PR1384
llvm-svn: 36774
2007-05-05 01:59:05 +00:00
Chris Lattner 193d2f09f0 update syntax
llvm-svn: 36531
2007-04-28 06:03:12 +00:00
Chris Lattner 1df6c1c5b0 new testcase
llvm-svn: 36520
2007-04-28 00:54:45 +00:00
Chris Lattner 7ebda6ba37 new testcase, should be able to eliminate the alloca and memcpy
llvm-svn: 36428
2007-04-25 06:29:34 +00:00
Devang Patel cbb4994f6b New test.
llvm-svn: 36379
2007-04-23 22:39:53 +00:00
Reid Spencer 4388f0b4fa For PR1146:
Make ParamAttrsList objects unique. You can no longer directly create or
destroy them but instead must go through the ParamAttrsList::get()
interface.

llvm-svn: 36327
2007-04-22 05:46:44 +00:00
Reid Spencer 2bb29e778a Add a .cvsignore file.
llvm-svn: 36323
2007-04-21 21:53:04 +00:00
Devang Patel 74ede29a27 Add PR number for reference.
llvm-svn: 36184
2007-04-16 23:52:37 +00:00
Devang Patel 369bec184b New test case.
llvm-svn: 36181
2007-04-16 23:02:22 +00:00
Reid Spencer 8c756a9ded Fix this test from Duncan's experiment.
llvm-svn: 36176
2007-04-16 21:57:14 +00:00
Chris Lattner 6d9b520091 fix incorrectly upgraded test
llvm-svn: 36169
2007-04-16 21:24:14 +00:00
Reid Spencer 6e87ec4351 For PR1319:
Remove && from the end of the lines to prevent tests from throwing run
lines into the background. Also, clean up places where the same command
is run multiple times by using a temporary file.

llvm-svn: 36142
2007-04-16 17:36:08 +00:00
Reid Spencer 4dcf8bff4b For PR1319:
Fix syntax of tests to ensure grep pattern is properly quoted.

llvm-svn: 36134
2007-04-16 15:31:49 +00:00
Reid Spencer 86f337eeda For PR1319:
Fix test syntax per new rules.

llvm-svn: 36133
2007-04-16 15:15:52 +00:00
Reid Spencer caaf8a1597 For PR1336:
Un-XFAIL this since it now passes with fix to llvm-upgrade.

llvm-svn: 36104
2007-04-16 02:57:47 +00:00
Reid Spencer 2875d2eadc For PR1336:
Correct this test case. It was passing a uint where a ubyte was expected.

llvm-svn: 36101
2007-04-16 02:09:24 +00:00
Reid Spencer f0cb944fd3 For PR1336:
Un-XFAIL this now that its working.

llvm-svn: 36100
2007-04-16 01:49:16 +00:00
Reid Spencer 6584cf60f2 For PR1336:
XFAIL tests covered by the PR. These will be un-XFAILed as they are fixed.

llvm-svn: 36093
2007-04-15 23:00:46 +00:00
Chris Lattner d3fd9ecb2d testcase for PR1335
llvm-svn: 36089
2007-04-15 21:37:53 +00:00
Reid Spencer a551c041f9 For PR1319:
Upgrade to use new Tcl exec based test harness. This exposes 3 bugs that
were previously not being reported:
test/Transforms/GlobalDCE/2002-08-17-FunctionDGE.ll
test/Transforms/GlobalOpt/memset.ll
test/Transforms/IndVarsSimplify/exit_value_tests.llx

llvm-svn: 36065
2007-04-15 09:21:47 +00:00
Reid Spencer 951d8dc29f For PR1319:
Upgrade to use new Tcl exec based test harness.

llvm-svn: 36062
2007-04-15 08:30:33 +00:00
Reid Spencer 8eba4c3d12 For PR1319:
Convert to use the new Tcl expr based test harness.

llvm-svn: 36061
2007-04-15 08:01:33 +00:00
Reid Spencer ede8c3b92c For PR1319:
Make use of the END. facility on all files > 1K so that we aren't wasting CPU
cycles searching for RUN: lines that we'll never find.

llvm-svn: 36059
2007-04-15 07:38:21 +00:00
Reid Spencer 1114b48736 Fix this test in a slightly more obvious way.
llvm-svn: 36058
2007-04-15 07:37:04 +00:00
Reid Spencer 8d9056c56c For PR1319:
Upgrade to use new Tcl exec based test harness

llvm-svn: 36055
2007-04-15 06:53:51 +00:00
Reid Spencer 7b78d371a6 Use %prcontext, $prcontext is not resolving for some reason.
llvm-svn: 36054
2007-04-15 06:52:45 +00:00
Reid Spencer 63fc5df7ba PR1319:
Upgrade tests to new Tcl exec based test harness requirements.

llvm-svn: 36053
2007-04-15 06:51:14 +00:00
Zhou Sheng 8e58ad31ae This test case is incorrect. Remove it.
llvm-svn: 36048
2007-04-15 05:59:49 +00:00
Reid Spencer ae81c8880a For PR1319:
Convert to new test system. This exposes IsDigit.ll as failing.

llvm-svn: 36046
2007-04-15 05:16:38 +00:00
Reid Spencer 5374aeae70 For PR1319:
Conver to new test system.

llvm-svn: 36045
2007-04-15 05:03:58 +00:00
Reid Spencer d025c07cce Keep lines a reasonable length.
llvm-svn: 36043
2007-04-15 04:54:53 +00:00
Jeff Cohen 610e1240ed Patch supplied by gabor.
llvm-svn: 36042
2007-04-15 03:09:23 +00:00
Chris Lattner efcb4f6ed4 new testcase
llvm-svn: 36039
2007-04-15 01:00:37 +00:00
Owen Anderson 0f6ccef96c XFAIL this for now.
llvm-svn: 36036
2007-04-14 23:57:41 +00:00
Reid Spencer f70b8e5d79 Oops. A little aggressive on the name changes there.
llvm-svn: 36029
2007-04-14 23:17:58 +00:00
Reid Spencer bc7533c140 For PR1913:
Convert to new test system. This exposes test/Transforms/ConstProp/calls.ll

llvm-svn: 36027
2007-04-14 23:04:54 +00:00
Chris Lattner 45ab14d084 new testcase
llvm-svn: 36024
2007-04-14 23:00:51 +00:00
Reid Spencer cfe6e77e7b For PR1319:
Convert to new test system.

llvm-svn: 36023
2007-04-14 22:54:01 +00:00
Reid Spencer 3fc53d6c53 Changes to fix problems with "make check". Apparently you can redefine
functions and Tcl's just tickled with that. The fix is to give the "new"
test system a different interface function name.

llvm-svn: 36022
2007-04-14 22:51:29 +00:00
Chris Lattner 8a08819105 manually upgrade test. Add a new test2. I have no way to see if this works
because of the tclification.  :(

llvm-svn: 36019
2007-04-14 22:27:33 +00:00
Reid Spencer af1a99f3a7 This test should have been updated with llvm 1.7!
llvm-svn: 36014
2007-04-14 20:21:37 +00:00
Reid Spencer 91948d4cad For PR1319:
Upgrade tests to work with new llvm.exp version of llvm_runtest.

llvm-svn: 36013
2007-04-14 20:13:02 +00:00
Reid Spencer be88bc4cb4 This test needs to use egrep.
llvm-svn: 36012
2007-04-14 20:02:51 +00:00
Reid Spencer 2441c0ae3e Fix a test test llvm.exp found.
llvm-svn: 36006
2007-04-14 18:33:31 +00:00
Reid Spencer 7e4bde71c5 bool -> i1 (found by llvm.exp)
llvm-svn: 36005
2007-04-14 18:30:06 +00:00
Reid Spencer 26f762270f Fix a syntax error that llvm.exp found.
llvm-svn: 36004
2007-04-14 18:28:16 +00:00
Reid Spencer 0c0fe0afa7 Fix an "already-upgraded" test that llvm.exp found.
llvm-svn: 36003
2007-04-14 18:26:02 +00:00
Chris Lattner ebf3cfccdb new testcase
llvm-svn: 35983
2007-04-14 01:17:38 +00:00
Chris Lattner a930c3d4e4 testcase for PR1201
llvm-svn: 35980
2007-04-14 00:19:36 +00:00
Reid Spencer 9f9fe70b11 Add the SCCP regression tests for APInt expressions. These test cases
turned up some regressions that have since been fixed. We don't want to
loose the regression tests.

Test cases by Guoling Han.

llvm-svn: 35974
2007-04-13 22:33:10 +00:00
Reid Spencer 8e25101211 The "implementation" keyword is no more!
llvm-svn: 35919
2007-04-11 20:06:03 +00:00
Reid Spencer d029c7e666 Make the llvm-runtest function much more amenable by eliminating all the
global variables that needed to be passed in. This makes it possible to
add new global variables with only a couple changes (Makefile and llvm-dg.exp)
instead of touching every single dg.exp file.

llvm-svn: 35918
2007-04-11 19:56:59 +00:00
Chris Lattner 45ae13bb41 adjust test
llvm-svn: 35907
2007-04-11 16:04:04 +00:00
Chris Lattner 81f14c63da sext of compares.
llvm-svn: 35892
2007-04-11 06:57:54 +00:00
Chris Lattner 764ec15b3f new testcase
llvm-svn: 35889
2007-04-11 06:52:24 +00:00
Devang Patel d284fd1145 Add test case for PR 1154.
llvm-svn: 35865
2007-04-10 16:57:08 +00:00
Chris Lattner ec0020433b new testcase
llvm-svn: 35851
2007-04-09 23:51:49 +00:00
Devang Patel 4ccfdd7465 Add check for opt crash.
llvm-svn: 35849
2007-04-09 23:40:15 +00:00
Devang Patel 5391501f05 Add Loop Rotate test cases.
llvm-svn: 35838
2007-04-09 22:22:42 +00:00
Chris Lattner e04c652f5d new testcase for PR1304
llvm-svn: 35791
2007-04-09 01:37:35 +00:00
Chris Lattner 418bf4eb1c new testcase for PR1286
llvm-svn: 35787
2007-04-09 01:10:13 +00:00
Chris Lattner 659ff4ca8d this xform is correct, not an xfail
llvm-svn: 35766
2007-04-08 08:02:39 +00:00
Chris Lattner b79728b1ae tweak this to test the right thing.
llvm-svn: 35762
2007-04-08 07:52:40 +00:00
Chris Lattner 8ca3d48984 new testcase, should simplify down to a xor/and/xor sequence.
llvm-svn: 35759
2007-04-08 07:45:36 +00:00
Chris Lattner 3dc477d5e3 testcase for PR1307
llvm-svn: 35705
2007-04-06 23:36:59 +00:00
Chris Lattner 992b451e33 new testcase, update old one.
llvm-svn: 35699
2007-04-06 18:56:54 +00:00
Chris Lattner cf1f986099 new testcase that crashes globalopt
llvm-svn: 35688
2007-04-05 21:09:29 +00:00
Jeff Cohen 9da1cde86c Any add is wrong, regardless of type.
llvm-svn: 35671
2007-04-04 20:40:44 +00:00
Jeff Cohen 62c300a415 Get it right...
llvm-svn: 35670
2007-04-04 20:35:31 +00:00
Dale Johannesen 9234629e60 Test for transformConstExprCastCall fix.
llvm-svn: 35669
2007-04-04 19:18:16 +00:00
Jeff Cohen 6f98cd3710 Add new test.
llvm-svn: 35664
2007-04-04 16:11:23 +00:00
Chris Lattner d4594adf43 new testcase for PR1253
llvm-svn: 35611
2007-04-03 01:45:32 +00:00
Chris Lattner a7152a90d1 fix this testcase so it passes
llvm-svn: 35604
2007-04-02 20:46:28 +00:00
Chris Lattner 2d81c6d706 creative way to add one.
llvm-svn: 35583
2007-04-02 05:35:08 +00:00
Reid Spencer e51961b5ba Fix illegal assembly syntax.
llvm-svn: 35581
2007-04-02 03:24:47 +00:00
Reid Spencer a3bc850712 Add a test case to make sure that constant folding of the bit counting
intrinsics works.

llvm-svn: 35577
2007-04-02 01:45:31 +00:00
Reid Spencer a5f996bd27 Revert the name changes for llvm.bswap to allow (and test) llvm-upgrade of
this intrinsic.

llvm-svn: 35566
2007-04-02 00:51:15 +00:00
Reid Spencer c3d87685ad For PR1297:
Update these test cases to use proper signatures for bswap which is now
and overloaded intrinsic. Its name must be of the form llvm.bswap.i32.i32
since both the parameter and the result or of type "iAny". Also, the
bit counting intrinsics changed to always return i32.

llvm-svn: 35548
2007-04-01 07:36:28 +00:00
Chris Lattner 9729bdd8e3 New testcase
llvm-svn: 35535
2007-04-01 05:34:53 +00:00
Reid Spencer 44259a29c0 Remove use of implementation keyword.
llvm-svn: 35412
2007-03-28 02:38:26 +00:00
Chris Lattner 4ba1036a34 don't use 'not' when we can use a positive test
llvm-svn: 35402
2007-03-28 01:43:43 +00:00
Reid Spencer 90bb12c2e7 new test case for PR1280
llvm-svn: 35401
2007-03-28 01:43:35 +00:00
Reid Spencer 94a8cb4b4e For PR1280:
Remove test cases for and/xor/add -> trunc/sext that use bit widths that
the targets cannot code gen.

llvm-svn: 35399
2007-03-28 01:35:28 +00:00
Chris Lattner 4776ebc195 new testcase
llvm-svn: 35397
2007-03-28 01:31:33 +00:00
Reid Spencer e01d0e8c39 Another test case for PR1271 where bad shift masks were generated.
llvm-svn: 35372
2007-03-26 23:48:52 +00:00
Reid Spencer d9fe01c7a4 Fix this test case to match output after a bug was fixed.
llvm-svn: 35359
2007-03-26 18:04:38 +00:00
Duncan Sands 820ae03fda Fix testsuite hang.
llvm-svn: 35355
2007-03-26 10:59:13 +00:00
Reid Spencer 0bfa19eb13 Test case for PR1271 involving construction of a bad mask to replace a
shift instruction.

llvm-svn: 35349
2007-03-26 05:32:16 +00:00
Reid Spencer 726b0a7fa4 Add a test case for PR1271 (necessary, but not sufficient).
llvm-svn: 35343
2007-03-25 21:30:41 +00:00
Chris Lattner f323838c4c new testcase
llvm-svn: 35340
2007-03-25 20:42:40 +00:00
Reid Spencer e3d00119e6 Remove the last vestiges of this directory.
llvm-svn: 35309
2007-03-24 23:07:49 +00:00
Reid Spencer 562b715dd1 Add more test cases for APIntified InstCombine.
llvm-svn: 35288
2007-03-23 21:57:47 +00:00
Reid Spencer ea8b07ee6b Add test case for testing InstCombine with arbitrary precision integer
types. These tests mimic the integer test cases in the normal InstCombine
test suite but use "strange" integer bit widths.

Most tests written by Zhou Sheng, a few by me.

llvm-svn: 35284
2007-03-23 20:48:34 +00:00
Reid Spencer 02b0b57101 Make this test actually match the generated code.
llvm-svn: 35263
2007-03-22 02:53:05 +00:00
Reid Spencer fa9925e263 Test case for PR1248
llvm-svn: 35251
2007-03-22 00:49:40 +00:00
Reid Spencer 09f4eb1098 Make this test a little simpler/faster.
llvm-svn: 35193
2007-03-19 23:36:19 +00:00
Reid Spencer eb0a221186 Add test case for PR1261, currently XFAILed.
llvm-svn: 35192
2007-03-19 23:28:16 +00:00
Reid Spencer 7953b683fc For PR1258:
Revise numeric value references to accommodate collapsed type planes.

llvm-svn: 35170
2007-03-19 18:27:35 +00:00
Chris Lattner 50fce05a21 add a testcase the resent patches fail on.
llvm-svn: 35167
2007-03-19 18:25:48 +00:00
Chris Lattner 23dd31a3af add PR#
llvm-svn: 35151
2007-03-19 00:17:19 +00:00
Chris Lattner dcd44dbbb0 add pr#
llvm-svn: 35149
2007-03-19 00:15:43 +00:00
Chris Lattner ee3c5d1b78 new testcase
llvm-svn: 35148
2007-03-19 00:11:30 +00:00
Chris Lattner 2c0f36bc39 testcase for SROA with memset etc
llvm-svn: 35147
2007-03-19 00:09:00 +00:00
Chris Lattner 1ada0693ab new testcase
llvm-svn: 35144
2007-03-18 22:50:57 +00:00
Nick Lewycky 17d20fd41e Propagate ValueRanges across equality.
Add some more micro-optimizations: x * 0 = 0, a - x = a --> x = 0.

llvm-svn: 35138
2007-03-18 01:09:32 +00:00
Chris Lattner 091e75bbde testcase for PR1244
llvm-svn: 35081
2007-03-13 14:25:35 +00:00
Anton Korobeynikov 8a6dc102d3 Use range tests in LowerSwitch, where possible
llvm-svn: 35057
2007-03-10 16:46:28 +00:00
Reid Spencer 509acc186e Add a test case for a particular udiv/select transform.
llvm-svn: 34935
2007-03-05 22:51:08 +00:00
Chris Lattner 3a8b0c7607 new testcase
llvm-svn: 34918
2007-03-05 00:01:38 +00:00
Chris Lattner dd3f9f8c3b New testcases for PR1179/PR1232.
llvm-svn: 34895
2007-03-04 00:54:06 +00:00
Chris Lattner 05e93d7f05 new testcase: instcombine should remove all the casts.
llvm-svn: 34869
2007-03-03 05:24:06 +00:00
Chris Lattner c1991789c5 instcombine doesn't do CSE, simplify unrelated detail
llvm-svn: 34867
2007-03-03 02:27:02 +00:00
Chris Lattner 49c505c6e6 new testcase. @foo should be marked fastcc by globalopt
llvm-svn: 34607
2007-02-25 21:04:39 +00:00
Chris Lattner 3b7c905437 testcase for pr1215
llvm-svn: 34547
2007-02-24 01:16:39 +00:00
Chris Lattner 3fec2056a4 testcase for pr1217
llvm-svn: 34545
2007-02-24 01:03:11 +00:00
Chris Lattner 83908e664f fix this testcase
llvm-svn: 34530
2007-02-23 19:39:24 +00:00
Andrew Lenharth f7a5332b53 missed cast elimination
llvm-svn: 34490
2007-02-22 15:17:45 +00:00
Reid Spencer d84d35ba70 For PR1195:
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.

llvm-svn: 34293
2007-02-15 02:26:10 +00:00
Chris Lattner 682918f99b update to new t-d strings.
llvm-svn: 34290
2007-02-15 00:54:16 +00:00
Andrew Lenharth 15a3af28d7 This really only affects pointers in high memory, and only llvm 1.9, but make a regression for it anyway
llvm-svn: 34014
2007-02-07 22:23:47 +00:00
Chris Lattner dd602bcd08 Testcase for a bug responsible for GCC bootstrap failure, fallout from PR411.
llvm-svn: 34004
2007-02-07 19:28:52 +00:00
Chris Lattner ecb38495af Testcase for miscompilation
llvm-svn: 33947
2007-02-06 02:22:37 +00:00
Reid Spencer 3aaaa0b2bd For PR411:
This patch replaces the SymbolTable class with ValueSymbolTable which does
not support types planes. This means that all symbol names in LLVM must now
be unique. The patch addresses the necessary changes to deal with this and
removes code no longer needed as a result. This completes the bulk of the
changes for this PR. Some cleanup patches will follow.

llvm-svn: 33918
2007-02-05 20:47:22 +00:00
Reid Spencer cb4d3f2902 Prepare for PR411
llvm-svn: 33865
2007-02-04 02:11:13 +00:00
Reid Spencer 8de97bba5a For PR1072:
Removing -raise has neglible positive or negative side effects so we are
opting to remove it. See the PR for comparison details.

llvm-svn: 33844
2007-02-03 23:15:56 +00:00
Reid Spencer 2341c22ec7 Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.

llvm-svn: 33776
2007-02-02 02:16:23 +00:00
Chris Lattner 9a677c585c new testcase for serious code pessimization
llvm-svn: 33770
2007-02-01 22:29:26 +00:00
Reid Spencer af6a408117 For PR411:
Update these tests to not use the same name even though the type of the
value differs. After PR411 hits, type planes will be gone and it will be
illegal for a name to be used twice, regardless of type.

llvm-svn: 33660
2007-01-30 16:16:01 +00:00
Chris Lattner d50698107e Testcase for an instcombine miscompilation reduced by Anton.
llvm-svn: 33590
2007-01-27 23:07:12 +00:00
Reid Spencer ce380568b5 For PR761:
Remove "target endian/pointersize" or add "target datalayout" to make
the test parse properly or set the datalayout because defaults changes.

For PR645:
Make global names use the @ prefix.

For llvm-upgrade changes:
Fix test cases or completely remove use of llvm-upgrade for test cases
that cannot survive the new renaming or upgrade capabilities.

llvm-svn: 33533
2007-01-26 08:25:06 +00:00
Chris Lattner c8dc67c2da remove an execution test from llvm/test
llvm-svn: 33344
2007-01-18 22:24:04 +00:00
Chris Lattner bb4e2a547f new testcase that causes instcombine to infinitely loop
llvm-svn: 33342
2007-01-18 22:16:03 +00:00
Reid Spencer 83b3d82672 Regression is gone, don't try to find it on clean target.
llvm-svn: 33296
2007-01-17 07:59:14 +00:00