Andrew Lenharth
79acb69a6f
If adding a link to a collapsed, node, ignore offset.
...
Fixes 2006-03-27-LinkedCollapsed.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27194 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-27 23:39:58 +00:00
Andrew Lenharth
26c2e73da6
no heap is happening here
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26781 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15 19:03:16 +00:00
Andrew Lenharth
3299cae135
remove qsort for now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26779 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15 18:32:18 +00:00
Andrew Lenharth
0c3a0b6607
allow field sensitivity to be a tunable parameter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26777 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15 05:43:41 +00:00
Andrew Lenharth
4bebcdbca1
Handle one offset with growth case seen in povray. Namely, if we have an offset,
...
and the offset lands at a field boundary in the old type, construct a new type,
copying the fields masked by the offset from the old type, and unify with that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26775 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15 04:04:21 +00:00
Andrew Lenharth
24b1ea159e
improve mem intrinsics and add a few things povray uses
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26774 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-15 03:43:59 +00:00
Chris Lattner
03dd465215
Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving
...
PR709, and paving the way for future progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26476 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03 00:00:25 +00:00
Chris Lattner
7238210e1f
Add explicit iostream #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25513 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 23:19:18 +00:00
Chris Lattner
86a5484079
Add explicit #includes of <iostream>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25509 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-22 22:53:01 +00:00
John Criswell
61af913224
Prefix DSA specific options with dsa.
...
Make the dsa-alloc-list and dsa-free-list options hidden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24864 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-19 20:14:38 +00:00
John Criswell
3075160664
Added an option to specify the names of heap freeing functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24863 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-19 19:54:23 +00:00
John Criswell
fa70052063
Added a command line option that allows the user to specify a list of
...
functions that allocate memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24862 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-19 17:38:39 +00:00
Sumant Kowshik
8a3802d5b2
Collapsing node if variable length struct with final field of length zero
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24621 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-06 18:04:30 +00:00
Chris Lattner
83753937a6
don't bother building the archive version of this library
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23927 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 01:08:20 +00:00
Chris Lattner
6d796238b2
implement some prototypes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23920 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 00:38:38 +00:00
Jeff Cohen
00b16889ab
Eliminate all remaining tabs and trailing spaces.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-27 06:12:32 +00:00
Andrew Lenharth
558bc88a00
core changes for varargs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-18 18:34:52 +00:00
Chris Lattner
a1198b5254
Correctly handle global-argument aliases induced in main
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21537 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-25 19:16:31 +00:00
Chris Lattner
63320cc841
Don't mess up SCC traversal when a node has null edges out of it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21536 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-25 19:16:17 +00:00
Chris Lattner
cc1f24585e
Propagate eq sets through the bu graphs to the cbu and eq graphs, fixing
...
a crash of the sfv on 188.ammp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21478 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-23 21:11:05 +00:00
Misha Brukman
dedf2bd5a3
Convert tabs to spaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21439 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-22 04:01:18 +00:00
Misha Brukman
2b37d7cf28
Remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21416 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 21:13:18 +00:00
Chris Lattner
a5ed1bd00b
add support for taking and resolving the address of free.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21396 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 16:09:43 +00:00
Chris Lattner
af2e3e0859
Fix a crash analyzing MultiSource/Benchmarks/MallocBench/gs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21245 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-12 03:59:27 +00:00
Chris Lattner
1231aa3fa6
fix some VC compilation problems, thanks to Jeff C for pointing this out!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21044 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 20:17:09 +00:00
Chris Lattner
0700123431
EquivClassGraphs is now in DataStructure.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21042 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 20:08:17 +00:00
Chris Lattner
2ccc5f1081
use a callee_iterator typedef.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21038 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 20:02:41 +00:00
Chris Lattner
021decc82d
Change the ActualCallees callgraph from hash_multimap<Instruction,Function>
...
to std::set<std::pair<Inst,Func>> to avoid duplicate entries.
This speeds up the CompleteBU pass from 1.99s to .15s on povray and the
eqgraph passes from 1.5s to .16s on the same.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21031 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-02 19:17:18 +00:00
Chris Lattner
9342a939eb
Fix a problem where we not marking incoming arguments to functions with
...
external linkage as incomplete.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20927 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 19:16:59 +00:00
Chris Lattner
93ab219244
remove ...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20883 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-27 21:57:09 +00:00
Chris Lattner
40ee8ce28b
speed up steens by using spliceFrom, improve its precision by realizing that
...
an incomplete node cannot alias a complete node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20882 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-27 21:56:55 +00:00
Chris Lattner
5f4c0a88ee
Don't give up completely, maybe other AA can say something about this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20873 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-27 00:02:33 +00:00
Chris Lattner
1b9a2aac98
Cache mapping information for a call site after computing it for a mod/ref
...
query. If the next mod/ref query happens to be for the same call site
(which is extremely likely), use the cache instead of recomputing the
callee/caller mapping. This makes -aa-eval ***MUCH*** faster with
ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20871 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 23:29:03 +00:00
Chris Lattner
a7337dc2b9
Remove more long dead code: dsa doesn't provide must alias info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20870 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 22:54:46 +00:00
Chris Lattner
5a6a9d4f0c
remove some unsafe code that has long been dead
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20869 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 22:48:42 +00:00
Chris Lattner
bc499de74f
slightly improve mod/ref for DSAA by checking the globals graph for fallback
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20868 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 22:47:03 +00:00
Chris Lattner
b7523418b0
Teach steens-aa two things about mod/ref information:
...
1. If memory never escapes the program, it cannot be mod/ref'd by external
functions.
2. If memory is global never mod/ref'd in the program, it cannot be mod/ref'd
by any call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20867 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 22:43:20 +00:00
Chris Lattner
cf9082589c
no really, don't double count these nodes either!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20837 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 20:54:45 +00:00
Chris Lattner
0423e031d6
Don't count all of the nodes in the SCC once for each function in the SCC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20836 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 20:37:32 +00:00
Chris Lattner
33b4276053
Grow the EQ classes for globals at the end of the BU pass. This shrinks
...
memory usage in the TD pass for 254.gap from 31.3MB to 3.9MB.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20834 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 16:45:43 +00:00
Chris Lattner
20da24c4b9
remove a debugging timer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20827 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 00:06:09 +00:00
Chris Lattner
b2dbdc1301
Two changes here:
...
1. Instead of copying Local graphs to the BU graphs to start with, use
spliceFrom to do the job (which is constant time in this case). On
176.gcc, this chops off .17s from the bu pass.
2. When building SCC graphs, simplify the logic and use spliceFrom to
do the heavy lifting, instead of cloneInto/delete. This slices
another .14s off 176.gcc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20826 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 00:05:04 +00:00
Chris Lattner
ce7068d378
Make the spliceFrom case where one graph is completely empty be constant time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20825 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 00:02:41 +00:00
Chris Lattner
5734e4331e
add a new DSGraph::spliceFrom method, which violently takes the content of
...
one graph and plops it into another, without breaking a sweat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20824 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 23:46:04 +00:00
Chris Lattner
4da120e5d6
This replaces the correct but slow code with a more aggressive scc-finder
...
based approach to find globals and call sites that need to be copied. This
speeds up the BU pass on 176.gcc from 22s back up to 2.3s. Not as good
as 1.5s, but at least it's correct :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20820 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 23:06:02 +00:00
Chris Lattner
09adbbc99e
only look at successors of globals. This gets us down to "only" 22s in the
...
bu pass for 176.gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20818 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 21:17:27 +00:00
Chris Lattner
d8642125e4
Unfortunately, a previous patch was not safe. Revert it, reimplement
...
something correct. Unfortunately this takes 176.gcc's BU phase back
up to 29s from 1.5. This fixes DSGraph/2005-03-24-Global-Arg-Alias.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20817 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 21:07:47 +00:00
Chris Lattner
0d397bd437
don't bother |'ing in 0's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20815 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 18:42:51 +00:00
Chris Lattner
d94b4d5b9c
be more aggressive about incompleteness marking
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20814 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 18:42:28 +00:00
Chris Lattner
c5132e65a6
Fix a crash while promoting a value out of a loop from a global variable
...
when using ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20802 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 04:22:04 +00:00