Dan Gohman
723717853b
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
c9307490ce
Eliminate more redundant llvm-as calls.
...
llvm-svn: 81540
2009-09-11 18:17:12 +00:00
Dan Gohman
205b641954
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
142428ce64
Eliminate more uses of llvm-as and llvm-dis.
...
llvm-svn: 81293
2009-09-09 00:09:15 +00:00
Dan Gohman
a3ab9b3b9e
Convert a few more opt | llvm-dis to opt -S.
...
llvm-svn: 81261
2009-09-08 22:41:33 +00:00
Dan Gohman
c95df8b6d8
Use opt -S instead of piping bitcode output through llvm-dis.
...
llvm-svn: 81257
2009-09-08 22:34:10 +00:00
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
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
Daniel Dunbar
e1e99bbb67
Revert "--- Reverse-merging r80908 into '.':", I already "fixed" this.
...
llvm-svn: 80970
2009-09-03 23:40:10 +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
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
eed0ecc21a
Reapply profiling tests.
...
llvm-svn: 80908
2009-09-03 07:38:00 +00:00
Andreas Neustifter
3418f26ee5
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
3b25ffcef0
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
3b7954c9bf
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
4c06cf3a4f
rename test so that name reflects what it is testing for.
...
llvm-svn: 80519
2009-08-30 21:36:39 +00:00
Chris Lattner
0ad4b1ca5e
convert to filecheck format.
...
llvm-svn: 80518
2009-08-30 21:36:06 +00:00
Torok Edwin
f1fbd8af64
rm needs -f
...
llvm-svn: 80363
2009-08-28 14:05:07 +00:00
Torok Edwin
b9c2b743ea
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
c2d92270a2
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
e4c8ff4447
Removed unnecessary file creation during test.
...
llvm-svn: 80356
2009-08-28 10:07:41 +00:00
Andreas Neustifter
da88343196
Pulled all tests into one test. Removed some redundant tests. Rename.
...
llvm-svn: 80355
2009-08-28 10:00:28 +00:00
Andreas Neustifter
233f8ec4db
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
cfb6234d13
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
fb55ceecf3
Removed profiling test, lli not available on all platforms.
...
llvm-svn: 79633
2009-08-21 15:27:35 +00:00
Andreas Neustifter
b11ab6b931
Added tests for Profiling Infrastructure.
...
llvm-svn: 79615
2009-08-21 09:36:28 +00:00
Dan Gohman
7965c57a0f
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
9f80d2be6b
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
facd1be2d6
Add another Strong-SIV testcase.
...
llvm-svn: 78446
2009-08-08 00:21:49 +00:00
Andreas Bolka
8c032970b9
Fix Strong-SIV testcase.
...
llvm-svn: 78384
2009-08-07 15:42:32 +00:00
Andreas Bolka
4d59f26912
ZIV tester for LDA.
...
llvm-svn: 78157
2009-08-05 04:26:05 +00:00
Andreas Bolka
1532dc3110
Fix LDA testcases.
...
llvm-svn: 78153
2009-08-05 04:03:29 +00:00
Andreas Bolka
d713824363
Expand LDA testcases.
...
llvm-svn: 77926
2009-08-02 23:28:14 +00:00
Andreas Bolka
7d6b4c24e6
Slightly reformat LDA tests to ease grepping.
...
llvm-svn: 77398
2009-07-28 23:40:40 +00:00
Dan Gohman
39c0d3b10a
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
c126330ef1
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
13aabe2ba4
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
fa70ad653b
FileCheck'ize and expand LDA testcases.
...
llvm-svn: 76880
2009-07-23 15:56:53 +00:00
Dan Gohman
190d29cb5c
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
7a836d6400
Add a testcase for PR4569, which is now fixed.
...
llvm-svn: 76526
2009-07-21 00:50:52 +00:00
Torok Edwin
bbccd95874
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
5d53d0b73b
Add testcases for PR4538, PR4537, and PR4534.
...
llvm-svn: 75533
2009-07-13 22:30:31 +00:00
Nick Lewycky
d9573d899d
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
71ef361d1d
Array accesses are independent if the underlying arrays differ.
...
llvm-svn: 74499
2009-06-30 02:12:10 +00:00
Andreas Bolka
bed5622fb7
Print pairwise dependence results, add testcases.
...
llvm-svn: 74402
2009-06-28 00:35:22 +00:00
Dan Gohman
60844e20f0
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
058143a236
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
b85ac02513
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
db7860aa40
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
eb0a67278b
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