Chris Lattner
d513faf41f
remove fixme comment too.
...
llvm-svn: 120493
2010-11-30 23:25:01 +00:00
Chris Lattner
370797a1fb
check in *all* files. This is now handled by my previous DSE commit.
...
llvm-svn: 120492
2010-11-30 23:23:59 +00:00
NAKAMURA Takumi
6ea8a947e8
test: Check the feature 'loadable_module' with load modules in %llvmshlibdir.
...
%llvmshlibdir should be 'bin' on Cygming.
llvm-svn: 120282
2010-11-29 07:58:32 +00:00
Dan Gohman
22e0e1cecb
Delete unneeded ssp attributes.
...
llvm-svn: 118836
2010-11-11 21:08:46 +00:00
Dan Gohman
dcdfd8dd24
TBAA-enable ArgumentPromotion.
...
llvm-svn: 118804
2010-11-11 18:09:32 +00:00
Dan Gohman
0cc4c7516e
Make Sink tbaa-aware.
...
llvm-svn: 118788
2010-11-11 16:21:47 +00:00
Dan Gohman
3cb92d809b
Add a testcase which demonstrates alias analysis pass precedence.
...
llvm-svn: 118755
2010-11-11 01:03:30 +00:00
Dan Gohman
2e8ca44b81
Fully invalidate cached results when a prior query's size or
...
type is insufficient for, or incompatible with, the current query.
llvm-svn: 118721
2010-11-10 21:45:11 +00:00
Dan Gohman
e3467a7687
Teach FunctionAttrs about the VAArg instruction.
...
llvm-svn: 118627
2010-11-09 20:17:38 +00:00
Dan Gohman
2a9221793a
Add a testcase for a call which BasicAA says only accesses memory through
...
its arguments and which TBAA says doesn't write to memory.
llvm-svn: 118439
2010-11-08 20:20:11 +00:00
Dan Gohman
2cd1fd4a82
Make FunctionAttrs TBAA-aware.
...
llvm-svn: 118417
2010-11-08 17:12:04 +00:00
Dan Gohman
15a43965ac
Teach memdep to use pointsToConstantMemory to determine that loads
...
from constant memory don't alias any stores.
llvm-svn: 117636
2010-10-29 01:14:04 +00:00
Dan Gohman
c16d9afe04
Add a basic testcase for TBAA-aware DSE.
...
llvm-svn: 117632
2010-10-29 00:54:02 +00:00
Dan Gohman
55a028680c
Add some comments.
...
llvm-svn: 116957
2010-10-20 22:04:02 +00:00
Dan Gohman
408beac597
Don't pass the raw invalid pointer used to represent conflicting
...
TBAA information to AliasAnalysis.
llvm-svn: 116751
2010-10-18 21:28:00 +00:00
Dan Gohman
fe8abf88a0
Add a basic testcase for TBAA-aware LICM.
...
llvm-svn: 116745
2010-10-18 21:00:09 +00:00
Dan Gohman
f7a5e20372
Run tbaa before basicaa, since that's how it's expected to be used.
...
llvm-svn: 116731
2010-10-18 18:45:59 +00:00
Dan Gohman
33fcde9b9c
Make TypeBasedAliasAnalysis default to doing nothing, with a command-line
...
option to enable it.
llvm-svn: 116722
2010-10-18 18:17:47 +00:00
Dan Gohman
02538ac4d3
Make BasicAliasAnalysis a normal AliasAnalysis implementation which
...
does normal initialization and normal chaining. Change the default
AliasAnalysis implementation to NoAlias.
Update StandardCompileOpts.h and friends to explicitly request
BasicAliasAnalysis.
Update tests to explicitly request -basicaa.
llvm-svn: 116720
2010-10-18 18:04:47 +00:00
Dan Gohman
65eb03ed6b
Add a simple testcase for tbaa.
...
llvm-svn: 116272
2010-10-11 23:54:13 +00:00
Benjamin Kramer
0aea752f6d
Remove PointerTracking tests.
...
llvm-svn: 115072
2010-09-29 19:20:35 +00:00
Eli Friedman
ab3a128582
PR7959: Handle negative scales in GEPs correctly in BasicAA for non-64-bit
...
targets.
llvm-svn: 114015
2010-09-15 20:08:03 +00:00
Chris Lattner
bb451461ec
remove some noise from tests.
...
llvm-svn: 112889
2010-09-02 22:35:33 +00:00
Michael J. Spencer
7983340465
Fix constant-over-index.ll test on windows.
...
llvm-svn: 112483
2010-08-30 15:08:02 +00:00
Chris Lattner
3decde9305
refix PR1143 by making basicaa analyze zexts of indices aggresively,
...
which I broke with a recent patch.
llvm-svn: 111452
2010-08-18 23:09:49 +00:00
Chris Lattner
a25c05ed15
fix a buggy test
...
llvm-svn: 111354
2010-08-18 04:55:12 +00:00
Chris Lattner
a33edcb56c
fix PR7589: In brief:
...
gep P, (zext x) != gep P, (sext x)
DecomposeGEPExpression was getting this wrong, confusing
basicaa.
llvm-svn: 111352
2010-08-18 04:28:19 +00:00
Chris Lattner
c8e38eb60b
filecheckize and detrivialize.
...
llvm-svn: 111350
2010-08-18 04:25:43 +00:00
Dan Gohman
f7495f286a
When analyzing loop exit conditions combined with and and or, don't
...
make any assumptions about when the two conditions will agree on when
to permit the loop to exit. This fixes PR7845.
llvm-svn: 110758
2010-08-11 00:12:36 +00:00
Tobias Grosser
7fbe6cb429
RegionInfo: Do not assert if a BB is not part of the dominance tree.
...
llvm-svn: 110665
2010-08-10 09:54:35 +00:00
Dan Gohman
e68958fcdf
Implement a proper getModRefInfo for va_arg.
...
llvm-svn: 110458
2010-08-06 18:24:38 +00:00
Dan Gohman
884dd752c3
Implement AccessesArguments checking in the two-callsite form
...
of BasicAA::getModRefInfo. This allows BasicAA to say that two
memset calls to non-aliasing memory locations don't interfere.
llvm-svn: 110393
2010-08-05 23:34:50 +00:00
Dan Gohman
26ef7c7ab7
Fix memdep's code for reasoning about dependences between two calls. A Ref
...
response from getModRefInfo is not useful here. Instead, check for identical
calls only in the NoModRef case.
Reapply r110270, and strengthen it to compensate for the memdep changes.
When both calls are readonly, there is no dependence between them.
llvm-svn: 110382
2010-08-05 22:09:15 +00:00
Dan Gohman
554b012f67
Revert r110270 for now. It appears to uncover a memdep bug.
...
llvm-svn: 110293
2010-08-05 00:43:10 +00:00
Dan Gohman
109561845b
The trouble with testing for "ModRef" and "NoModRef" is that
...
one is a suffix of the other, and FileCheck accepts superstrings.
Adjust the output to avoid this problem.
llvm-svn: 110280
2010-08-04 23:37:55 +00:00
Dan Gohman
bd33dab633
The two-callsite form of AliasAnalysis::getModRefInfo is documented
...
to return Ref if the left callsite only reads memory read or written
by the right callsite; fix BasicAliasAnalysis to implement this.
Add AliasAnalysisEvaluator support for testing the two-callsite
form of getModRefInfo.
llvm-svn: 110270
2010-08-04 22:56:29 +00:00
Tobias Grosser
336734aca6
Add new RegionInfo pass.
...
The RegionInfo pass detects single entry single exit regions in a function,
where a region is defined as any subgraph that is connected to the remaining
graph at only two spots.
Furthermore an hierarchical region tree is built.
Use it by calling "opt -regions analyze" or "opt -view-regions".
llvm-svn: 109089
2010-07-22 07:46:31 +00:00
Dan Gohman
00ef93258a
Remove interprocedural-basic-aa and associated code. The AliasAnalysis
...
interface needs implementations to be consistent, so any code which
wants to support different semantics must use a different interface.
It's not currently worthwhile to add a new interface for this new
concept.
Document that AliasAnalysis doesn't support cross-function queries.
llvm-svn: 107776
2010-07-07 14:27:09 +00:00
Dan Gohman
84f90a387d
Remove context sensitivity concerns from interprocedural-basic-aa, and
...
make it more aggressive in cases where both pointers are known to live
in the same function.
llvm-svn: 107420
2010-07-01 20:08:40 +00:00
Dan Gohman
c0cca7fdda
Revert the part of r107257 which introduced new logic for using
...
nsw and nuw flags from IR Instructions. On further consideration,
this isn't valid.
llvm-svn: 107298
2010-06-30 17:27:11 +00:00
Dan Gohman
725ed0364b
Add a testcase for scev-aa's new capability.
...
llvm-svn: 107258
2010-06-30 07:17:47 +00:00
Dan Gohman
9bbd007f15
Add a few more interesting testcases.
...
llvm-svn: 107177
2010-06-29 18:17:11 +00:00
Dan Gohman
0824affeff
Add an Intraprocedural form of BasicAliasAnalysis, which aims to
...
properly handles instructions and arguments defined in different
functions, or across recursive function iterations.
llvm-svn: 107109
2010-06-29 00:50:39 +00:00
Dan Gohman
7c34ece501
Fix Value::stripPointerCasts and BasicAA to avoid trouble on
...
code in unreachable blocks, which have have use-def cycles.
This fixes PR7514.
llvm-svn: 107071
2010-06-28 21:16:52 +00:00
Dan Gohman
f820bd327d
Allow "exhaustive" trip count evaluation on phi nodes with all
...
constant operands.
llvm-svn: 106537
2010-06-22 13:15:46 +00:00
Dan Gohman
866971ed3d
Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoid
...
assuming that loops are in canonical form, as ScalarEvolution doesn't
depend on LoopSimplify itself. Also, with indirectbr not all loops can
be simplified. This fixes PR7416.
llvm-svn: 106389
2010-06-19 14:17:24 +00:00
Dan Gohman
24ceda8eb0
Revert r106304 (105548 and friends), which are the SCEVComplexityCompare
...
optimizations. There is still some nondeterminism remaining.
llvm-svn: 106306
2010-06-18 19:54:20 +00:00
Dan Gohman
4c807fca97
Reapply 105540, 105542, and 105548, and revert r105732.
...
llvm-svn: 106304
2010-06-18 19:26:04 +00:00
Daniel Dunbar
e16d569932
Workaround SCEV non-determinism on this test, for now, to get buildbots back to
...
green. Dan, please revert this once the real problem is fixed.
llvm-svn: 105732
2010-06-09 17:54:40 +00:00
Dan Gohman
70910a6ab6
Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't go
...
scrounging through SCEVUnknown contents and SCEVNAryExpr operands;
instead just do a simple deterministic comparison of the precomputed
hash data.
Also, since this is more precise, it eliminates the need for the slow
N^2 duplicate detection code.
llvm-svn: 105540
2010-06-07 19:06:13 +00:00