54 Commits

Author SHA1 Message Date
Owen Anderson
b6e4ff0d85 Stub out a new updating interface to AliasAnalysis, allowing stateful analyses to be informed when
a pointer value has potentially become escaping.  Implementations can choose to either fall back to
conservative responses for that value, or may recompute their analysis to accomodate the change.

llvm-svn: 122777
2011-01-03 21:38:41 +00:00
Owen Anderson
4423070356 We can count properly.
llvm-svn: 122773
2011-01-03 21:08:22 +00:00
Dan Gohman
e1d8d3a2e4 Fix a typo that Bill spotted.
llvm-svn: 121909
2010-12-15 23:09:41 +00:00
Dan Gohman
b3f04f468e Document some more AliasAnalysis infrastructure limitations.
llvm-svn: 121874
2010-12-15 18:45:20 +00:00
Dan Gohman
4bd64fa805 Introduce a new PartialAlias response for AliasAnalysis. For most
AliasAnalysis consumers, PartialAlias will be treated as MayAlias.

For AliasAnalysis chaining, MayAlias says "procede to the next analysis".
PartialAlias will be used to indicate that the query should terminate,
even though it didn't reach MustAlias or NoAlias.

llvm-svn: 121507
2010-12-10 19:38:58 +00:00
Dan Gohman
b83aed95c9 -basicaa is no longer the default.
llvm-svn: 119163
2010-11-15 18:07:16 +00:00
Dan Gohman
f2d817192b Update the descriptions of NoModRef and ModRef to be consistent
with the descriptions of Mod and Ref.

llvm-svn: 112557
2010-08-30 23:47:24 +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
ece6906ea0 Document that BasicAA respects noalias, while InterproceduralBasicAA
does not.

llvm-svn: 107546
2010-07-02 23:52:36 +00:00
Dan Gohman
de25629e4f Describe which dependencies are relevant to noalias, and document how
AliasAnalyses have the choice to respect noalias.

llvm-svn: 107544
2010-07-02 23:46:54 +00:00
Dan Gohman
df12d08b8e Reword the definition of the noalias attribute. The intention is for
the noalias argument on function attributes be usable to model the
C99 restrict keyword on arguments, and to allow AliasAnalysis to
consider a noalias-attributed argument to be an "identified object".

To support this, refactor a new "based on" concept out of the current
pointer aliasing "associated" concept. This "based on" concept is very
similar to (though it is not identical with) the "based on" concept
in C99.

Also, reword the definition of NoAlias to more closely describe the
concept that the optimizer uses.

llvm-svn: 107495
2010-07-02 18:41:32 +00:00
Dan Gohman
b160ba46e8 Add a blurb about -scev-aa.
llvm-svn: 107080
2010-06-28 22:09:52 +00:00
Dan Gohman
a3de0186b8 Document problems that I encountered when working on -scev-aa.
llvm-svn: 106776
2010-06-24 19:34:03 +00:00
mike-m
f375e9a092 Revert r103213. It broke several sections of live website.
llvm-svn: 103219
2010-05-07 00:28:04 +00:00
mike-m
e08af303a6 Overhauled llvm/clang docs builds. Closes PR6613.
NOTE: 2nd part changeset for cfe trunk to follow.

*** PRE-PATCH ISSUES ADDRESSED

- clang api docs fail build from objdir
- clang/llvm api docs collide in install PREFIX/
- clang/llvm main docs collide in install
- clang/llvm main docs have full of hard coded destination
  assumptions and make use of absolute root in static html files;
  namely CommandGuide tools hard codes a website destination
  for cross references and some html cross references assume
  website root paths

*** IMPROVEMENTS

- bumped Doxygen from 1.4.x -> 1.6.3
- splits llvm/clang docs into 'main' and 'api' (doxygen) build trees
- provide consistent, reliable doc builds for both main+api docs
- support buid vs. install vs. website intentions
- support objdir builds
- document targets with 'make help'
- correct clean and uninstall operations
- use recursive dir delete only where absolutely necessary
- added call function fn.RMRF which safeguards against botched 'rm -rf';
  if any target (or any variable is evaluated) which attempts
  to remove any dirs which match a hard-coded 'safelist', a verbose
  error will be printed and make will error-stop.

llvm-svn: 103213
2010-05-06 23:45:43 +00:00
Chris Lattner
5ea3e65929 remove anders-aa from mainline, it isn't maintained and is
tantalyzing enough that people keep trying to use it.

llvm-svn: 97483
2010-03-01 19:24:17 +00:00
Chris Lattner
88874ec60a Remove the AliasAnalysis::getMustAliases method, which is dead.
The hasNoModRefInfoForCalls isn't worth it as a filter because 
basicaa provides m/r info and everything chains to it, so remove
it.

llvm-svn: 89599
2009-11-22 16:01:44 +00:00
Chris Lattner
6a6d3cc852 Update docs to not mention gcse/loadvn and mention memdep and
new stuff.  PR3924.

llvm-svn: 70077
2009-04-25 21:11:37 +00:00
Nick Lewycky
9c7379d077 Recommit this grammar fix that was backed out along with nocapture.
llvm-svn: 61189
2008-12-18 02:15:05 +00:00
Bill Wendling
a397baea88 Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release
builds.

llvm-svn: 61094
2008-12-16 19:06:48 +00:00
Nick Lewycky
ddffe620e4 Introducing nocapture, a parameter attribute for pointers to indicate that the
callee will not introduce any new aliases of that pointer.

The attributes had all bits allocated already, so I decided to collapse
alignment. Alignment was previously stored as a 16-bit integer from bits 16 to
32 of the attribute, but it was required to be a power of 2. Now it's stored in
log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of
space.

You may have already noticed that you only need four bits to encode a 16-bit
power of two, so why five bits? Because the AsmParser accepted 32-bit
alignments, even though we couldn't store them (they were silently discarded).
Now we can store them in memory, but not in the bitcode.

The bitcode format was already storing these as 64-bit VBR integers. So, the
bitcode format stays the same, keeping the alignment values stored as 16 bit
raw values. There's some hideous code in the reader and writer that deals with
this, waiting to be ripped out the moment we run out of bits again and have to
replace the parameter attributes table encoding.

llvm-svn: 61019
2008-12-15 01:34:58 +00:00
Nick Lewycky
4048ca5739 Clarify the meaning of the NoAlias response. The plan is to refer to this from
a future version of LangRef.

llvm-svn: 61010
2008-12-14 21:08:48 +00:00
Misha Brukman
86242e1990 Global replace of yellow W3C "valid HTML/CSS" icons with blue ones.
llvm-svn: 60880
2008-12-11 17:34:48 +00:00
Owen Anderson
888477339e Fix typo.
llvm-svn: 42521
2007-10-02 00:44:20 +00:00
Owen Anderson
d263cfa1c0 Mention memdep in the AA documentation.
llvm-svn: 42519
2007-10-02 00:43:25 +00:00
Chris Lattner
4b32528ba9 note where to get steens-aa and ds-aa
llvm-svn: 37850
2007-07-03 04:41:50 +00:00
Duncan Sands
16f122e6ad Various hopefully correct easy fixes.
llvm-svn: 35506
2007-03-30 12:22:09 +00:00
Reid Spencer
ca05854a71 Changes docs for llvm.cs.uiuc.edu -> llvm.org
llvm-svn: 26746
2006-03-14 05:39:39 +00:00
Chris Lattner
2e6f448d0f update usage of -print-alias-sets
llvm-svn: 25061
2006-01-03 06:04:48 +00:00
Misha Brukman
125255b9f6 Remove extraneous blank lines.
llvm-svn: 16205
2004-09-06 23:00:30 +00:00
Misha Brukman
2361fcff41 * Use the doc_code class for code listings to make it stand out from text
* Wrap text in soft, comfortable <div>s and <p>s
* Wrap lines at 80 cols

llvm-svn: 15311
2004-07-28 22:18:33 +00:00
Chris Lattner
d138437ffc New functionality
llvm-svn: 15266
2004-07-27 07:50:07 +00:00
Misha Brukman
3eef5d4715 * `The' isn't necessary in front of LLVM
* Wrap long line

llvm-svn: 14530
2004-07-01 15:33:24 +00:00
Chris Lattner
9475b96a3c document new pass
llvm-svn: 14471
2004-06-28 19:19:47 +00:00
Chris Lattner
53e5e2accc Fix some broken links
llvm-svn: 14306
2004-06-21 22:52:48 +00:00
Chris Lattner
2a19d83689 Substantially expand and update the alias analysis documentation, including
adding blurbs about all of the implementations we have

llvm-svn: 13669
2004-05-23 21:04:01 +00:00
Misha Brukman
55ba220cee Fix grammar: remove `the' before LLVM.
llvm-svn: 13496
2004-05-12 18:02:00 +00:00
Misha Brukman
c6ef5598ef Put stylesheet after the title.
llvm-svn: 10887
2004-01-15 19:04:12 +00:00
Misha Brukman
8834af99d6 Fix the URL to check the referrer for CSS conformity.
llvm-svn: 10571
2003-12-21 22:53:21 +00:00
Chris Lattner
b8b9163a2f Expand on the AliasSetTracker a bit, so I can remember this next time I come back to it. :)
llvm-svn: 10537
2003-12-19 08:43:07 +00:00
Misha Brukman
3096ca319a Fix the links to match our 'llvm' namespace in doxygen-generated docs.
llvm-svn: 10504
2003-12-17 23:10:49 +00:00
Misha Brukman
423ad188da Since we are now in the 'llvm' namespace, the mangled C++ name of structs
and hence the links, all change.

llvm-svn: 10495
2003-12-17 18:46:49 +00:00
Misha Brukman
e8e932a671 Align the W3C images on the right side, bottom of page.
llvm-svn: 10156
2003-11-22 01:26:21 +00:00
Misha Brukman
58ec434f03 This page now uses valid HTML 4.01 Strict and valid CSS.
llvm-svn: 10152
2003-11-22 01:07:30 +00:00
Misha Brukman
bc2d3308fe Made paragraph structure more consistent.
llvm-svn: 10145
2003-11-21 22:30:25 +00:00
John Criswell
f531f319d2 Merged in RELEASE_1.
llvm-svn: 9538
2003-10-27 18:18:16 +00:00
Misha Brukman
084a3a0773 This is now valid HTML 4.01 Strict.
llvm-svn: 9475
2003-10-24 18:06:11 +00:00
Misha Brukman
9782b036fc Really close the <li> tags.
llvm-svn: 9396
2003-10-23 02:29:42 +00:00
Misha Brukman
90827ecc18 Remove extraneous comments.
llvm-svn: 9395
2003-10-23 01:50:39 +00:00
Misha Brukman
f1e6b1526c * Quote a value in <font> tag.
* Let CVS figure out the last-modified-date for us

llvm-svn: 9394
2003-10-23 01:49:47 +00:00