Commit Graph

7932 Commits

Author SHA1 Message Date
Dan Gohman
8d84372836 Change these tests to feed the assembly files to opt directly, instead
of using llvm-as, now that opt supports this.

llvm-svn: 81226
2009-09-08 16:50:01 +00:00
Dan Gohman
cdaa08e706 Re-apply r80926, with fixes: keep the domtree informed of new blocks
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.

Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.

llvm-svn: 81221
2009-09-08 15:45:00 +00:00
Anton Korobeynikov
0b3a620d60 Add NEON 'laned' operations. This fixes another bunch of gcc testsuite fails and
makes the code faster.

llvm-svn: 81220
2009-09-08 15:22:32 +00:00
Dan Gohman
0a1df51219 Unbreak these tests. Chris, please verify that these changes are intended.
llvm-svn: 81217
2009-09-08 14:14:24 +00:00
Anton Korobeynikov
a3c4db1161 Unbreak
llvm-svn: 81205
2009-09-08 07:30:03 +00:00
Evan Cheng
e1047f16e4 When remat'ing and destination virtual register has a sub-register index. Make sure the sub-register class matches the register class of the remat'ed instruction definition register class.
llvm-svn: 81204
2009-09-08 06:39:07 +00:00
Chris Lattner
6c02945d93 disable some irrelevant eh emission
llvm-svn: 81200
2009-09-08 06:26:40 +00:00
Daniel Dunbar
1d03c5c8a7 Add 'lit' support for llvm tests.
- This adds 'make check-lit' from the top-level Makefile.

llvm-svn: 81191
2009-09-08 05:31:44 +00:00
Chris Lattner
2e9f3b2865 fix PR4767, a crash because fp stackifier visited blocks in
depth first order, so it wouldn't process unreachable blocks.
When compiling at -O0, late dead block elimination isn't done
and the bad instructions got to isel.

llvm-svn: 81187
2009-09-08 04:55:44 +00:00
Chris Lattner
12d0bc749f instcombine transforms vector loads that are only used by
extractelement operations into a bitcast of the pointer,
then a gep, then a scalar load.  Disable this when the vector
only has one element, because it leads to infinite loops in
instcombine (PR4908).

This transformation seems like a really bad idea to me, as it
will likely disable CSE of vector load/stores etc and can be
better done in the code generator when profitable.  This
goes all the way back to the first days of packed types,
r25299 specifically.

I'll let those people who care about the performance of vector
code decide what to do with this.

llvm-svn: 81185
2009-09-08 03:44:51 +00:00
Dan Gohman
8f7b263087 Fix an abort on a store of an empty struct member. getValue returns
null in the case of an empty struct, so don't try to call getNumValues
on it.

llvm-svn: 81180
2009-09-08 01:44:02 +00:00
Chris Lattner
ee1d1d3173 Fix PR4882, by making MemCpyOpt not dereference removed stores to get the
context for the newly created operations.
 
Patch by Jakub Staszak!

llvm-svn: 81175
2009-09-08 00:27:14 +00:00
Chris Lattner
37dbbde91b fix ComputeMaskedBits handling of zext/sext/trunc to work with vectors.
This fixes PR4905

llvm-svn: 81174
2009-09-08 00:13:52 +00:00
Dan Gohman
1147a7ba87 Reappy r80998, now that the GlobalOpt bug that it exposed on MiniSAT is fixed.
llvm-svn: 81172
2009-09-07 23:54:19 +00:00
Dan Gohman
572ecc26b6 Fix a thinko: When lowering fneg with xor, bitcast the operands
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.

llvm-svn: 81171
2009-09-07 23:47:14 +00:00
Dan Gohman
3120dffcd8 Add a testcase for the GlobalOpt inbounds fix.
llvm-svn: 81168
2009-09-07 23:04:59 +00:00
Dan Gohman
624543cedb Add inbounds to these getelementptrs, now that GlobalOpt requires this,
to preserve the meaning of these tests.

llvm-svn: 81166
2009-09-07 22:45:41 +00:00
Chris Lattner
dfb4699ba8 tighten test.
llvm-svn: 81159
2009-09-07 22:15:23 +00:00
Chris Lattner
0ebc0d1c4a tweak test, add PR#
llvm-svn: 81158
2009-09-07 22:14:41 +00:00
Daniel Dunbar
c44dc7f8fb Use -output-prefix in bugpoint tests so that outputs go in temp directory (and
we don't race on them).

llvm-svn: 81155
2009-09-07 19:26:18 +00:00
Daniel Dunbar
b220fd9c58 Don't depend on Tcl behavior of redirecting stderr for all commands in a
pipeline.

llvm-svn: 81153
2009-09-07 19:26:02 +00:00
Daniel Dunbar
8721525d8d Avoid Tcl substitution, introduced %llvmgcc_only for this one little test
(%llvmgcc includes a '-w' argument, and this test looks for warnings).

llvm-svn: 81152
2009-09-07 19:25:54 +00:00
Evan Cheng
a191202da5 Revert r80926. It causes loop unswitch assertion and slow down some JIT tests significantly.
llvm-svn: 81101
2009-09-06 02:26:10 +00:00
Daniel Dunbar
452643b58c Revert "Include optional subclass flags, such as inbounds, nsw, etc., ...", this
breaks MiniSAT on x86_64.

llvm-svn: 81098
2009-09-06 00:11:24 +00:00
Daniel Dunbar
1a946234a4 Fix spacing.
llvm-svn: 81097
2009-09-06 00:00:13 +00:00
Daniel Dunbar
3aafa8d4a3 Quote another '%S' in a test.
llvm-svn: 81088
2009-09-05 12:38:44 +00:00
Daniel Dunbar
f96e015ec6 Rename %S metavar to %M (clang uses %S for the basename of the test file).
llvm-svn: 81087
2009-09-05 12:38:35 +00:00
Daniel Dunbar
f86912dda1 Temporary test files should use %t.
llvm-svn: 81086
2009-09-05 12:38:26 +00:00
Daniel Dunbar
ec3b6229d8 Don't depend on arch specific global prefix.
llvm-svn: 81084
2009-09-05 11:53:06 +00:00
Daniel Dunbar
a953c39b9e Eliminate uses of %prcontext.
- I'd appreciate it if someone else eyeballs my changes to make sure I captured
   the intent of the test.

llvm-svn: 81083
2009-09-05 11:35:16 +00:00
Daniel Dunbar
214f0db25c Eliminate some Tclisms.
llvm-svn: 81081
2009-09-05 11:34:46 +00:00
Bob Wilson
013dfaa93a Stabilize the order of live intervals in the priority_queue used by the
linear scan reg alloc.  This fixes a problem I ran into where extracting
a function from a larger file caused the generated code to change (masking
the problem I was trying to debug) because the allocator behaved differently.

This changes the results for two X86 regression checks.  stack-color-with-reg
is improved, with one less instruction, but pr3495 is worse, with one more
copy.  As far as I can tell, these tests were just getting lucky or unlucky,
so I've changed the expected results.

llvm-svn: 81060
2009-09-05 01:19:16 +00:00
Devang Patel
40a0a72be8 While replacing an MDNode elment, properly update MDNode's operand list.
MDNode's operand list does not include all elements.

llvm-svn: 81045
2009-09-04 21:32:05 +00:00
Dale Johannesen
e5f313b4ee Test for llvm-gcc commit 81037.
llvm-svn: 81038
2009-09-04 20:19:09 +00:00
Andreas Neustifter
d842a676d6 Updated tests to use ProfileVerifer to test ProfileLoader and ProfileEstimator.
(Keep disabled test disabled until selfhosted build issue is resolved.)

llvm-svn: 81008
2009-09-04 17:21:59 +00:00
Dan Gohman
8b386a0b63 Include optional subclass flags, such as inbounds, nsw, etc., in the
Constant uniquing tables. This allows distinct ConstantExpr objects
with the same operation and different flags.

Even though a ConstantExpr "a + b" is either always overflowing or
never overflowing (due to being a ConstantExpr), it's still necessary
to be able to represent it both with and without overflow flags at
the same time within the IR, because the safety of the flag may
depend on the context of the use. If the constant really does overflow,
it wouldn't ever be safe to use with the flag set, however the use
may be in code that is never actually executed.

This also makes it possible to merge all the flags tests into a single test.

llvm-svn: 80998
2009-09-04 12:08:11 +00:00
Evan Cheng
46e40befe7 Run branch folding if if-converter make some transformations.
llvm-svn: 80994
2009-09-04 07:47:40 +00:00
Daniel Dunbar
2a64e85835 Remove stale greps.
llvm-svn: 80986
2009-09-04 05:07:52 +00:00
Bob Wilson
25410ac604 Convert tests to FileCheck.
llvm-svn: 80983
2009-09-04 04:07:19 +00:00
Bob Wilson
9e02907942 Convert a test to FileCheck.
llvm-svn: 80975
2009-09-04 00:32:31 +00:00
Daniel Dunbar
e1e99bbb67 Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.
llvm-svn: 80970
2009-09-03 23:40:10 +00:00
Erick Tryzelaar
1ea899cc86 Replace ocamlc tests with ocamlopt tests since they're less noisy.
There's a bug with ocamlc that uses "char*" instead of "const char*" for
global string variables. This causes g++ to be very noisy when linking
ocamlc programs. That's why the ocaml test used to cat to /dev/null.
ocamlopt doesn't have this problem, so we can get rid of the >/dev/null,
which may obscure some problems.

llvm-svn: 80968
2009-09-03 23:27:31 +00:00
Bill Wendling
faf3fd8b85 --- Reverse-merging r80908 into '.':
D    test/Analysis/Profiling

--- Reverse-merging r80907 into '.':
U    lib/Analysis/ProfileInfoLoaderPass.cpp

Attempt to remove failure in the self-hosting build bot.

llvm-svn: 80966
2009-09-03 23:13:46 +00:00
Dan Gohman
c24fb1af4f LLVM currently represents floating-point negation as -0.0 - x. Fix
FastISel to recognize this pattern and emit a floating-point
negation using xor.

llvm-svn: 80963
2009-09-03 22:53:57 +00:00
Daniel Dunbar
23700a97d2 Disable some parts of the profiling-tool-chain test, which is currently failing
on a self-hosted build (although it seems to work on non-self hosted). I'll work
with Andreas to figure this out.

llvm-svn: 80947
2009-09-03 21:09:53 +00:00
Daniel Dunbar
75c14da75f Remove dead greps.
llvm-svn: 80946
2009-09-03 20:59:02 +00:00
Devang Patel
8e274bafa9 There is not any need to copy metadata while merging modules.
llvm-svn: 80941
2009-09-03 20:35:57 +00:00
Dan Gohman
69e9573064 Recognize more opportunities to use SSE min and max instructions,
swapping the operands if necessary.

llvm-svn: 80940
2009-09-03 20:34:31 +00:00
Mon P Wang
24516ac0ca Test cases for vector shifts changes r80935
Changed the old vector shift test to use FileCheck

llvm-svn: 80936
2009-09-03 19:57:35 +00:00
Dan Gohman
66c853f17f Change PHINode::hasConstantValue to have a DominatorTree argument
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.

llvm-svn: 80920
2009-09-03 15:34:35 +00:00