| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Change the FunctionCalls and AuxFunctionCalls vectors into std::lists.
This makes many operations on these lists much more natural, and avoids
*exteremely* expensive copying of DSCallSites (e.g. moving nodes around
between lists, erasing a node from not the end of the vector, etc).
With a profile build of analyze, this speeds up BU DS from 25.14s to
12.59s on 176.gcc. I expect that it would help TD even more, but I don't
have data for it.
This effectively eliminates removeIdenticalCalls and children from the
profile, going from 6.53 to 0.27s.
llvm-svn: 19939
|
| |
|
|
|
|
|
|
|
|
| |
If needed, this can be resurrected from CVS.
Note that several of the interfaces (e.g. the IPModRef ones) are supersumed
by generic AliasAnalysis interfaces that have been written since this code
was developed (and they are not DSA specific).
llvm-svn: 19864
|
| |
|
|
|
|
| |
program.
llvm-svn: 19818
|
| |
|
|
| |
llvm-svn: 19506
|
| |
|
|
| |
llvm-svn: 19424
|
| |
|
|
| |
llvm-svn: 19412
|
| |
|
|
|
|
| |
Add some ifdefs for some stuff I like to be able to toggle easily
llvm-svn: 18665
|
| |
|
|
| |
llvm-svn: 18630
|
| |
|
|
|
|
| |
Add getModRefInfo method to avoid overloaded virtuals
llvm-svn: 18601
|
| |
|
|
|
|
|
| |
Make only one print method to avoid overloaded virtual warnings when \
compiled with -Woverloaded-virtual
llvm-svn: 18589
|
| |
|
|
| |
llvm-svn: 17632
|
| |
|
|
| |
llvm-svn: 17631
|
| |
|
|
| |
llvm-svn: 17457
|
| |
|
|
| |
llvm-svn: 17377
|
| |
|
|
| |
llvm-svn: 17375
|
| |
|
|
| |
llvm-svn: 17367
|
| |
|
|
| |
llvm-svn: 17358
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Calls to external global VARIABLES should not be treated as a call to an
external function
2. Efficiently deleting an element from a vector by using std::swap with
the back, then pop_back is NOT a good way to keep the vector sorted.
3. Our hope of having stuff get deleted by making them redundant just won't
work. In particular, if we have three calls in sequence that should be
merged: A, B, C first we unify B into A. To be sure that they appeared
identical (so B would be erased) we set B = A. On the next step, we
unified C into A and set C = A. Unfortunately, this is no guarantee that
C = B, so we would fail to delete the dead call. Switch to a more
explicit scheme.
llvm-svn: 17357
|
| |
|
|
| |
llvm-svn: 17356
|
| |
|
|
|
|
|
|
|
| |
* change some uses of NH.getNode() in a bool context to use !NH.isNull()
* Fix a bunch of places where we depended on the (undefined) order of
evaluation of arguments to function calls to ensure that getNode() was
called before getOffset(). In practice, this was NOT happening.
llvm-svn: 17354
|
| |
|
|
| |
llvm-svn: 17306
|
| |
|
|
| |
llvm-svn: 17260
|
| |
|
|
| |
llvm-svn: 17155
|
| |
|
|
| |
llvm-svn: 17136
|
| |
|
|
| |
llvm-svn: 17055
|
| |
|
|
| |
llvm-svn: 16950
|
| |
|
|
| |
llvm-svn: 16892
|
| |
|
|
| |
llvm-svn: 16885
|
| |
|
|
|
|
|
| |
a map. This caused problems if a later object happened to be allocated at
the free'd object's address.
llvm-svn: 16813
|
| |
|
|
| |
llvm-svn: 16779
|
| |
|
|
|
|
|
| |
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
llvm-svn: 16436
|
| |
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
| |
|
|
| |
llvm-svn: 15415
|
| |
|
|
| |
llvm-svn: 15334
|
| |
|
|
| |
llvm-svn: 15328
|
| |
|
|
|
|
| |
"Support/Debug.h".
llvm-svn: 15089
|
| |
|
|
|
|
|
|
| |
- Replace ConstantPointerRef usage with GlobalValue usage
- Minimize redundant isa<GlobalValue> usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14942
|
| |
|
|
| |
llvm-svn: 14864
|
| |
|
|
| |
llvm-svn: 14842
|
| |
|
|
| |
llvm-svn: 14682
|
| |
|
|
| |
llvm-svn: 14665
|
| |
|
|
| |
llvm-svn: 14663
|
| |
|
|
|
|
|
|
|
|
|
|
| |
is HOPELESSLY broken. The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.
As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call. This fixes some obscure bugs
handling non-forwarded node handles.
llvm-svn: 14660
|
| |
|
|
| |
llvm-svn: 14622
|
| |
|
|
| |
llvm-svn: 14455
|
| |
|
|
| |
llvm-svn: 14452
|
| |
|
|
| |
llvm-svn: 14448
|
| |
|
|
| |
llvm-svn: 14446
|
| |
|
|
|
|
| |
several mallocbench programs, including perl.
llvm-svn: 14342
|
| |
|
|
| |
llvm-svn: 14327
|