|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| | doing very similar pointer capture analysis.
Factor out the common logic.  The new version
is from FunctionAttrs since it does a better
job than the version in BasicAliasAnalysis
llvm-svn: 62461 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | was it not very helpful, it was also wrong!  The problem
is shown in the testcase: the alloca might be passed to
a nocapture callee which dereferences it and returns the
original pointer.  But because it was a nocapture call we
think we don't need to track its uses, but we do.
llvm-svn: 61876 | 
| | 
| 
| 
| | llvm-svn: 61873 | 
| | 
| 
| 
| | llvm-svn: 61872 | 
| | 
| 
| 
| 
| 
| | nocapture attributes to them.
llvm-svn: 61610 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | not have pointer type.  In particular, it may
be the condition argument for a select or a GEP
index.  While I was unable to construct a testcase
for which some bits of the original pointer are
captured due to one of these, it's very very close
to being possible - so play safe and exclude these
possibilities.
llvm-svn: 61580 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | the argument to be stored to an alloca by tracking uses
of the alloca.  This occurs 4 times (out of 7121, 0.05%)
in MultiSource/Applications, so may not be worth it.  On
the other hand, it is easy to do and fairly cheap.  The
functions it helps are: W_addcom and W_addlit in spiff;
process_args (argv) in d (make_dparser); ercPixConcealIMB
in JM/ldecod.
llvm-svn: 61570 | 
| | 
| 
| 
| 
| 
| | change.
llvm-svn: 61569 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | functions that don't write can't leak a pointer except through 
the return value, so a void readonly function is implicitly nocapture.
Test these, and add a test that verifies that f1 calling f2 with an 
otherwise dead pointer gets both of them marked nocapture.
llvm-svn: 61552 | 
| | 
| 
| 
| 
| 
| | leading comments.
llvm-svn: 61548 | 
| | 
| 
| 
| 
| 
| | calculating nocapture attributes.
llvm-svn: 61535 | 
| | 
| 
| 
| | llvm-svn: 61532 | 
|  | to work out (in a very simplistic way) which function
arguments (pointer arguments only) are only dereferenced
and so do not escape.  Mark such arguments 'nocapture'.
llvm-svn: 61525 |