| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 20065
|
|
|
|
|
|
|
|
|
|
|
|
| |
into a temporary graph, remember it for later, then inline the tmp graph into
the call site.
In the case where there are other call sites to the same set of functions, this
permits us to just inline the temporary graph instead of all of the callees.
This turns N*M inlining situations into an N+M inlining situation.
llvm-svn: 20036
|
|
|
|
| |
llvm-svn: 20035
|
|
|
|
| |
llvm-svn: 20031
|
|
|
|
| |
llvm-svn: 20018
|
|
|
|
| |
llvm-svn: 19980
|
|
|
|
| |
llvm-svn: 19979
|
|
|
|
|
|
| |
a tasty speedup.
llvm-svn: 19978
|
|
|
|
|
|
| |
different names. Large SCC's tend to be big, so this saves a lot of time.
llvm-svn: 19970
|
|
|
|
| |
llvm-svn: 19968
|
|
|
|
| |
llvm-svn: 19942
|
|
|
|
| |
llvm-svn: 19941
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|