Kenneth Uildriks
90fedc6ef9
Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test
...
llvm-svn: 85900
2009-11-03 15:29:06 +00:00
Edward O'Callaghan
f96ce30236
Convert Analysis tests to FileCheck in regards to PR5307.
...
llvm-svn: 85241
2009-10-27 14:54:46 +00:00
Dan Gohman
3b7ba5f35b
Teach BasicAA how to analyze Select instructions, and make it more
...
aggressive on PHI instructions.
llvm-svn: 85158
2009-10-26 21:55:43 +00:00
Dan Gohman
7f2413f18b
Update these tests to match what Loop::print now prints.
...
llvm-svn: 85021
2009-10-24 23:52:07 +00:00
Chris Lattner
1353518b6c
fix test
...
llvm-svn: 84405
2009-10-18 05:03:00 +00:00
Chris Lattner
d2b3a4f7b8
tighten up test3, add test3a for the converse
...
transform, which isn't happening yet.
llvm-svn: 84402
2009-10-18 04:55:26 +00:00
Chris Lattner
457ecd5dab
tighten test2, add a test that it doesn't get transformed in the invalid edge case.
...
llvm-svn: 84401
2009-10-18 04:50:18 +00:00
Nick Lewycky
ecb832fd93
Merge tests into modref.ll. Also add a test for r84174 at Chris' behest!
...
llvm-svn: 84400
2009-10-18 04:41:36 +00:00
Nick Lewycky
91ea404e98
Add a couple new testcases.
...
llvm-svn: 84385
2009-10-18 00:42:07 +00:00
Chris Lattner
ec411e9199
replace a useless test with a useful one
...
llvm-svn: 84383
2009-10-17 23:59:51 +00:00
Nick Lewycky
f01ba005a7
Make use of the result of the loads even though that means adding -instcombine.
...
llvm-svn: 84125
2009-10-14 19:02:13 +00:00
Evan Cheng
c1eed9d120
Another BasicAA fix. If a value does not alias a GEP's base pointer, then it
...
cannot alias the GEP. GEP pointer alias rule states this clearly:
A pointer value formed from a getelementptr instruction is associated with the
addresses associated with the first operand of the getelementptr.
llvm-svn: 84079
2009-10-14 06:41:49 +00:00
Evan Cheng
c745bf2d87
Replace test with a simpler hand crafted one.
...
llvm-svn: 84069
2009-10-14 01:45:10 +00:00
Evan Cheng
c10e88db22
Teach basic AA about PHI nodes. If all operands of a phi NoAlias another value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias.
...
llvm-svn: 84038
2009-10-13 22:02:20 +00:00
Chris Lattner
faa0320f27
don't use dead loads as tests.
...
llvm-svn: 83985
2009-10-13 17:39:29 +00:00
Nick Lewycky
e2782c7614
Teach BasicAA a little something about the atomic intrinsics: they can only
...
modify through the pointer they're given.
llvm-svn: 83959
2009-10-13 07:48:38 +00:00
Victor Hernandez
e6ff7662b6
Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it causes regressions in the nightly tests.
...
llvm-svn: 82784
2009-09-25 18:11:52 +00:00
Victor Hernandez
46cd467310
Auto-upgrade malloc instructions to malloc calls.
...
Reviewed by Devang Patel.
llvm-svn: 82694
2009-09-24 17:47:49 +00:00
Dan Gohman
36bad00bef
Teach ScalarEvolution how to reason about no-wrap flags on loops
...
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.
llvm-svn: 82151
2009-09-17 18:05:20 +00:00
Dan Gohman
0f3ef7be50
Eliminate more redundant llvm-as calls.
...
llvm-svn: 81540
2009-09-11 18:17:12 +00:00
Dan Gohman
1880092722
Change tests from "opt %s" to "opt < %s" so that opt doesn't see the
...
input filename so that opt doesn't print the input filename in the
output so that grep lines in the tests don't unintentionally match
strings in the input filename.
llvm-svn: 81537
2009-09-11 18:01:28 +00:00
Dan Gohman
c8054d90fb
Eliminate more uses of llvm-as and llvm-dis.
...
llvm-svn: 81293
2009-09-09 00:09:15 +00:00
Dan Gohman
4f2527cd6d
Convert a few more opt | llvm-dis to opt -S.
...
llvm-svn: 81261
2009-09-08 22:41:33 +00:00
Dan Gohman
72a13d2476
Use opt -S instead of piping bitcode output through llvm-dis.
...
llvm-svn: 81257
2009-09-08 22:34:10 +00:00
Dan Gohman
9737a63ed8
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
Andreas Neustifter
5673c0aace
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
Daniel Dunbar
a48a2f6055
Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.
...
llvm-svn: 80970
2009-09-03 23:40:10 +00:00
Bill Wendling
92291f6ad0
--- 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
Daniel Dunbar
d8df76eaeb
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
f563ac919b
Reapply profiling tests.
...
llvm-svn: 80908
2009-09-03 07:38:00 +00:00
Andreas Neustifter
69e2afe030
Removed temporarily because of breaking Darwin builds.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086214.html )
llvm-svn: 80799
2009-09-02 16:47:24 +00:00
Andreas Neustifter
da6b0fa8ed
Changed profiling-tool-chain.ll test to use optimal-edge-profiling instead of
...
edge-profiling, this is more useful since the loading of the
optimal-edge-profiling is more complicated.
The edge-profiling is tested in edge-profiling.ll where only the
instrumentation is tested.
llvm-svn: 80791
2009-09-02 14:24:08 +00:00
Daniel Dunbar
0935339f81
Don't force the triple or data layout in this test. We just have to get them
...
from the host and hope that works.
llvm-svn: 80751
2009-09-02 02:43:11 +00:00
Chris Lattner
2d3e0a35bd
rename test so that name reflects what it is testing for.
...
llvm-svn: 80519
2009-08-30 21:36:39 +00:00
Chris Lattner
c7d5796af8
convert to filecheck format.
...
llvm-svn: 80518
2009-08-30 21:36:06 +00:00
Torok Edwin
e8a5863c3f
rm needs -f
...
llvm-svn: 80363
2009-08-28 14:05:07 +00:00
Torok Edwin
483691a185
Remove the llvmprof.out from the test output, otherwise running
...
make check in a non-clean directory causes it to fail (for example when running
make check twice), since execution counts will differ.
llvm-svn: 80362
2009-08-28 13:35:44 +00:00
Andreas Neustifter
ed3a6bedca
Remove profiling output file because two consecutive runs of make check give
...
error.
llvm-svn: 80357
2009-08-28 10:38:26 +00:00
Andreas Neustifter
d8e04ab883
Removed unnecessary file creation during test.
...
llvm-svn: 80356
2009-08-28 10:07:41 +00:00
Andreas Neustifter
52afe22566
Pulled all tests into one test. Removed some redundant tests. Rename.
...
llvm-svn: 80355
2009-08-28 10:00:28 +00:00
Andreas Neustifter
d7f3569555
Readded test from r79615, this tests the complete profiling tool chain. Furhter
...
tests can test only parts of this system.
llvm-svn: 80348
2009-08-28 06:41:00 +00:00
Dan Gohman
d926b985df
Create a ScalarEvolution-based AliasAnalysis implementation.
...
This is a simple AliasAnalysis implementation which works by making
ScalarEvolution queries. ScalarEvolution has a more complete understanding
of arithmetic than BasicAA's collection of ad-hoc checks, so it handles
some cases that BasicAA misses, for example p[i] and p[i+1] within the
same iteration of a loop.
This is currently experimental. It may be that the main use for this pass
will be to help find cases where BasicAA can be profitably extended, or
to help in the development of the overall AliasAnalysis infrastructure,
however it's also possible that it could grow up to become a directly
useful pass.
llvm-svn: 80098
2009-08-26 14:53:06 +00:00
Andreas Neustifter
3fac9a4fc5
Removed profiling test, lli not available on all platforms.
...
llvm-svn: 79633
2009-08-21 15:27:35 +00:00
Andreas Neustifter
f715778de9
Added tests for Profiling Infrastructure.
...
llvm-svn: 79615
2009-08-21 09:36:28 +00:00
Dan Gohman
463d3407e2
Loosen up the regex for this test so that it doesn't implicitly
...
depend on TargetData information.
llvm-svn: 79491
2009-08-19 23:19:36 +00:00
Dan Gohman
e274526d78
Make LLVM Assembly dramatically easier to read by aligning the comments,
...
using formatted_raw_ostream's PadToColumn.
Before:
bb1: ; preds = %bb
%2 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1]
%4 = load double* %3, align 8 ; <double> [#uses=1]
%5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1]
%6 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1]
After:
bb1: ; preds = %bb
%2 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%3 = getelementptr double* %p, i64 %2 ; <double*> [#uses=1]
%4 = load double* %3, align 8 ; <double> [#uses=1]
%5 = fmul double %4, 1.100000e+00 ; <double> [#uses=1]
%6 = sext i32 %i.01 to i64 ; <i64> [#uses=1]
%7 = getelementptr double* %p, i64 %6 ; <double*> [#uses=1]
Several tests required whitespace adjustments.
llvm-svn: 78816
2009-08-12 17:23:50 +00:00
Andreas Bolka
3becda83ef
Add another Strong-SIV testcase.
...
llvm-svn: 78446
2009-08-08 00:21:49 +00:00
Andreas Bolka
787591a594
Fix Strong-SIV testcase.
...
llvm-svn: 78384
2009-08-07 15:42:32 +00:00
Andreas Bolka
13b860992a
ZIV tester for LDA.
...
llvm-svn: 78157
2009-08-05 04:26:05 +00:00
Andreas Bolka
2979eb8f35
Fix LDA testcases.
...
llvm-svn: 78153
2009-08-05 04:03:29 +00:00
Andreas Bolka
71fc19e991
Expand LDA testcases.
...
llvm-svn: 77926
2009-08-02 23:28:14 +00:00
Andreas Bolka
2f84b5ab46
Slightly reformat LDA tests to ease grepping.
...
llvm-svn: 77398
2009-07-28 23:40:40 +00:00
Dan Gohman
9c7f808201
Change the assembly syntax for nsw, nuw, and exact, putting them
...
after their associated opcodes rather than before. This makes them
a little easier to read.
llvm-svn: 77194
2009-07-27 16:11:46 +00:00
Dan Gohman
534d66a426
When attempting to sign-extend an addrec by interpreting
...
the step value as unsigned, the start value and the addrec
itself still need to be treated as signed.
llvm-svn: 77078
2009-07-25 16:03:30 +00:00
Dan Gohman
62ef6a7f1c
Teach ScalarEvolution to make use of no-overflow flags when
...
analyzing add recurrences.
llvm-svn: 77034
2009-07-25 01:22:26 +00:00
Andreas Bolka
dcb9f483bf
FileCheck'ize and expand LDA testcases.
...
llvm-svn: 76880
2009-07-23 15:56:53 +00:00
Dan Gohman
430f0cc544
Replace the original ad-hoc code for determining whether (v pred w) implies
...
(x pred y) with more thorough code that does more complete canonicalization
before resorting to range checks. This helps it find more cases where
the canonicalized expressions match.
llvm-svn: 76671
2009-07-21 23:03:19 +00:00
Dan Gohman
52e14d2272
Add a testcase for PR4569, which is now fixed.
...
llvm-svn: 76526
2009-07-21 00:50:52 +00:00
Torok Edwin
8f2906a2e8
Introduce a pointertracking pass.
...
For now this only computes the allocated size of the memory pointed to by a
pointer, and offset a pointer from allocated pointer.
The actual checkLimits part will come later, after another round of review.
llvm-svn: 75657
2009-07-14 18:44:28 +00:00
Dan Gohman
054d2a7837
Add testcases for PR4538, PR4537, and PR4534.
...
llvm-svn: 75533
2009-07-13 22:30:31 +00:00
Nick Lewycky
3292908132
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.
llvm-svn: 74792
2009-07-04 17:24:52 +00:00
Andreas Bolka
9541801105
Array accesses are independent if the underlying arrays differ.
...
llvm-svn: 74499
2009-06-30 02:12:10 +00:00
Andreas Bolka
9d09e20142
Print pairwise dependence results, add testcases.
...
llvm-svn: 74402
2009-06-28 00:35:22 +00:00
Dan Gohman
5f71a2886a
Add a testcase demoing some of ScalarEvolution's new trip count logic.
...
llvm-svn: 74049
2009-06-24 01:22:30 +00:00
Dan Gohman
53efeb0e45
Fix a bug in the trip-count computation with And/Or. If either of the
...
sides is CouldNotCompute, the resulting exact count must be CouldNotCompute.
llvm-svn: 73920
2009-06-22 23:28:56 +00:00
Dan Gohman
2636693a3c
Fix llvm::ComputeNumSignBits to handle pointer types
...
conservatively correctly, instead of aborting.
llvm-svn: 73908
2009-06-22 22:02:32 +00:00
Dan Gohman
96212b661c
Teach ScalarEvolution how to analyze loops with multiple exit
...
blocks, and also exit blocks with multiple conditions (combined
with (bitwise) ands and ors). It's often infeasible to compute an
exact trip count in such cases, but a useful upper bound can often
be found.
llvm-svn: 73866
2009-06-22 00:31:57 +00:00
Dan Gohman
0104842ee3
Fix ScalarEvolution's backedge-taken count computations to check for
...
overflow when computing a integer division to round up.
Thanks to Nick Lewycky for noticing this!
llvm-svn: 73862
2009-06-21 23:46:38 +00:00
Dan Gohman
eddf77123a
Teach ScalarEvolution how to recognize another xor(and(x, C), C) case.
...
If C is a single bit and the and gets analyzed as a truncate and
zero-extend, the xor can be represnted as an add.
llvm-svn: 73664
2009-06-18 00:00:20 +00:00
Dan Gohman
432af7ace0
Add -disable-output to a bunch of tests that don't care about the output.
...
llvm-svn: 73633
2009-06-17 20:56:26 +00:00
Dan Gohman
b50f5a46e0
Fix ScalarEvolution's Xor handling to not assume that an And
...
that gets recognized with a SCEVZeroExtendExpr must be an And
with a low-bits mask. With r73540, this is no longer the case.
llvm-svn: 73594
2009-06-17 01:22:39 +00:00
Dan Gohman
a5b9645c4b
Split the Add, Sub, and Mul instruction opcodes into separate
...
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.
For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.
This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt
llvm-svn: 72897
2009-06-04 22:49:04 +00:00
Dan Gohman
776e4c8d35
Teach BasicAliasAnalysis to understand constant gep indices that fall
...
beyond their associated static array type.
I believe that this fixes a legitimate bug, because BasicAliasAnalysis
already has code to check for this condition that works for non-constant
indices, however it was missing the case of constant indices. With this
change, it checks for both.
This fixes PR4267, and miscompiles of SPEC 188.ammp and 464.h264.href.
llvm-svn: 72451
2009-05-27 01:48:27 +00:00
Dan Gohman
6350296efc
Teach ScalarEvolution to recognize x^-1 in the case where non-demanded
...
bits have been stripped out by instcombine.
llvm-svn: 72010
2009-05-18 16:29:04 +00:00
Dan Gohman
8c77f1a275
Make ScalarEvolution::isLoopGuardedByCond work even when the edge
...
entering a loop is a non-split critical edge.
llvm-svn: 72004
2009-05-18 15:36:09 +00:00
Dan Gohman
b81dd48fd2
Add nounwind to a few tests.
...
llvm-svn: 72002
2009-05-18 15:16:49 +00:00
Eli Friedman
ebf98b0212
Allow scalar evolution to compute iteration counts for loops with a
...
pointer-based condition. This fixes PR3171.
llvm-svn: 71354
2009-05-09 12:32:42 +00:00
Dan Gohman
35dc9b65ed
Fix bogus overflow checks by replacing them with actual
...
overflow checks.
llvm-svn: 71284
2009-05-08 23:11:16 +00:00
Dan Gohman
2e55cc5a4a
Fold trunc casts into add-recurrence expressions, allowing the
...
add-recurrence to be exposed. Add a new SCEV folding rule to
help simplify expressions in the presence of these extra truncs.
llvm-svn: 71264
2009-05-08 21:03:19 +00:00
Dan Gohman
7227bc88f0
When printing a SCEVUnknown with pointer type, don't print an
...
artificial "ptrtoint", as it tends to clutter up complicated
expressions. The cast operators now print both source and
destination types, which is usually sufficient.
llvm-svn: 70554
2009-05-01 17:02:22 +00:00
Dan Gohman
2b8da35f9d
Extend ScalarEvolution's getBackedgeTakenCount to be able to
...
compute an upper-bound value for the trip count, in addition to
the actual trip count. Use this to allow getZeroExtendExpr and
getSignExtendExpr to fold casts in more cases.
This may eventually morph into a more general value-range
analysis capability; there are certainly plenty of places where
more complete value-range information would allow more folding.
llvm-svn: 70509
2009-04-30 20:47:05 +00:00
Dan Gohman
494dac3f84
Generalize the cast-of-addrec folding to handle folding of SCEVs like
...
(sext i8 {-128,+,1} to i64) to i64 {-128,+,1}, where the iteration
crosses from negative to positive, but is still safe if the trip
count is within range.
llvm-svn: 70421
2009-04-29 22:28:28 +00:00
Dan Gohman
d9775a3be1
Fix this test to match the new output from scalar-evolution.
...
llvm-svn: 70410
2009-04-29 21:06:20 +00:00
Dan Gohman
d9b11b2ef4
Include the source type in SCEV cast expression debug output, and
...
print sext, zext, and trunc, instead of signextend, zeroextend,
and truncate, respectively, for consistency with the main IR.
llvm-svn: 70405
2009-04-29 20:27:52 +00:00
Dan Gohman
807dff7486
Fix a grammaro in a comment.
...
llvm-svn: 70331
2009-04-28 21:54:23 +00:00
Nick Lewycky
b4d9f7a9b3
Simplify trunc(extend(x)) in SCEVs, just for completeness. Also fix some odd
...
whitespace in the same file.
llvm-svn: 69870
2009-04-23 05:15:08 +00:00
Owen Anderson
7d82244be7
Testcase for PR3909.
...
llvm-svn: 69868
2009-04-23 04:33:42 +00:00
Dan Gohman
e14efcc9f4
When turning (ashr(shl(x, n), n)) into sext(trunc(x)), the width of the
...
type to truncate to should be the number of bits of the value that are
preserved, not the number that are clobbered with sign-extension.
This fixes regressions in ldecod.
llvm-svn: 69704
2009-04-21 20:18:36 +00:00
Chris Lattner
d35d43dde8
change this to test for an alias result more directly.
...
llvm-svn: 67046
2009-03-16 18:28:27 +00:00
Nick Lewycky
8e0f9ac051
Add a replacement for 2009-02-12-GEPNoalias.ll that works without -debug.
...
llvm-svn: 67011
2009-03-14 19:40:09 +00:00
Chris Lattner
a18c768e6d
remove a buggy test, it is not ok to use -debug in RUN line.
...
llvm-svn: 66918
2009-03-13 18:19:34 +00:00
Dan Gohman
b4e896baed
Update this test for the LoopInfo::print changes.
...
llvm-svn: 65597
2009-02-27 00:17:49 +00:00
Dan Gohman
0bddac16a8
Rename ScalarEvolution's getIterationCount to getBackedgeTakenCount,
...
to more accurately describe what it does. Expand its doxygen comment
to describe what the backedge-taken count is and how it differs
from the actual iteration count of the loop. Adjust names and
comments in associated code accordingly.
llvm-svn: 65382
2009-02-24 18:55:53 +00:00
Nick Lewycky
c60bd012bc
BasicAA was making the assumption that a local allocation which hadn't escaped
...
couldn't ever be the return of call instruction. However, it's quite possible
that said local allocation is itself the return of a function call. That's
what malloc and calloc are for, actually.
llvm-svn: 64442
2009-02-13 07:06:27 +00:00
Owen Anderson
1caf7fef8e
Finish making AliasAnalysis aware of the fact that most atomic intrinsics only dereference their arguments, and enhance
...
BasicAA to make use of this fact when computing ModRef info.
llvm-svn: 63718
2009-02-04 05:16:46 +00:00
Nick Lewycky
52348300a4
Wind SCEV back in time, to Nov 18th. This 'fixes' PR3275, PR3294, PR3295,
...
PR3296 and PR3302.
llvm-svn: 62160
2009-01-13 09:18:58 +00:00
Nick Lewycky
380292a51a
Don't try to analyze this "backward" case. This is overly conservative
...
pending a correct solution.
llvm-svn: 61589
2009-01-02 18:54:17 +00:00
Nick Lewycky
d80ff135b5
Check that the function prototypes are correct before assuming that the
...
parameters are pointers.
llvm-svn: 61451
2008-12-27 16:20:53 +00:00
Nick Lewycky
2abb108f1b
Resubmit support for the 'nocapture' attribute.
...
The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
without breaking existing users or the file format.
This change will require users to rebuild llvm-gcc to match llvm.
llvm-svn: 61239
2008-12-19 06:39:12 +00:00
Bill Wendling
e38c7400c9
Remove empty test.
...
llvm-svn: 61095
2008-12-16 19:07:17 +00:00