Chris Lattner
45d10470c9
Fix a bug pointed out by Zhongxing Xu
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30831 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-09 17:28:13 +00:00
Chris Lattner
90aa839c88
Fix more static dtor issues
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30725 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-04 21:52:35 +00:00
Chris Lattner
b336409673
Fix some more static dtor issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30724 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-04 21:49:37 +00:00
Jim Laskey
ec20402c90
Add ability to annotate (color) nodes in a viewGraph.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30686 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-02 12:26:53 +00:00
Chris Lattner
39d78d623a
Fixme is already done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30685 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-01 22:46:33 +00:00
Chris Lattner
ab38358fa0
Teach globalsmodref-aa to track scalar pointer global variables which point
...
to unaliased allocations. Use this information to disambiguate pointers loaded
from them. This is a very common case, so it's worthwhile to handle efficiently.
This implements Analysis/GlobalsModRef/indirect-global.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30684 91177308-0d34-0410-b5e6-96231b3b80d8
2006-10-01 22:36:45 +00:00
Chris Lattner
003cbf35f4
Eliminate ConstantBool::True and ConstantBool::False. Instead, provide
...
ConstantBool::getTrue() and ConstantBool::getFalse().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30666 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-28 23:36:21 +00:00
Chris Lattner
193c2d886f
Simplify some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30658 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-28 23:14:29 +00:00
Devang Patel
79db5b7370
Fix DFS walk.
...
Fix http://llvm.org/bugs/show_bug.cgi?id=923
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30630 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-27 17:18:05 +00:00
Nick Lewycky
e81f725b3a
Explain change with a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30443 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-17 17:51:00 +00:00
Nick Lewycky
38c7c42a32
Fix PR912. The input to erase() must not be a reference to the data
...
being erased.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30442 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-17 16:23:36 +00:00
Devang Patel
f93f68347f
Untabify.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30168 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 23:29:19 +00:00
Devang Patel
c8719e9353
Use iterative do-while loop instead of recursive DFSPass calls to
...
reduce amount of stack space used at runtime.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30167 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 23:22:37 +00:00
Devang Patel
4b8f36f106
Do not rely on std::sort and std::erase to get list of unique
...
exit blocks. The output is dependent on addresses of basic block.
Add and use Loop::getUniqueExitBlocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29966 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-29 22:29:16 +00:00
Reid Spencer
3a9ec2463d
For PR387:
...
Close out this long standing bug by removing the remaining overloaded
virtual functions in LLVM. The -Woverloaded-virtual option is now turned on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29934 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 01:02:49 +00:00
Chris Lattner
a5370172b6
simplify AnalysisGroup registration, eliminating one typeid call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29932 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-28 00:42:29 +00:00
Chris Lattner
7f8897f22e
eliminate RegisterOpt. It does the same thing as RegisterPass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29925 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:42:52 +00:00
Chris Lattner
43d64b8526
Fit to 80 cols
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29922 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:31:12 +00:00
Chris Lattner
5d8925c7c5
Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29921 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 22:30:17 +00:00
Chris Lattner
a4f0b3a084
s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29911 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-27 12:54:02 +00:00
Chris Lattner
3dd965c954
Fix PR885
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29794 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-21 17:20:01 +00:00
Chris Lattner
69b3992154
Make Loop::getExitBlocks significantly faster for large loops. Instead of
...
pounding on Loop::contains (which is O(n) in the size of the loop), use a
sorted vector, which is O(log(N)) for each query. This speeds up Duraid's
horrible testcase from ~72s to ~31s in a debug build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29645 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-12 05:02:03 +00:00
Chris Lattner
880ddb018a
Speed up Loop::isLCSSAForm by using a binary search and single-entry cache.
...
This reduces LCSSA pass time from 1.5s to 0.96s when run on eon in release+asserts mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-08-02 00:14:16 +00:00
Chris Lattner
d85340f4ec
Change the callgraph representation to store the callsite along with the
...
target CG node. This allows the inliner to properly update the callgraph
when using the pruning inliner. The pruning inliner may not copy over all
call sites from a callee to a caller, so the edges corresponding to those
call sites should not be copied over either.
This fixes PR827 and Transforms/Inline/2006-07-12-InlinePruneCGUpdate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29120 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-12 18:29:36 +00:00
Jim Laskey
16d42c6ac6
It was pointed out that DEBUG() is only available with -debug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29106 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-11 18:25:13 +00:00
Jim Laskey
e37fe9b3a1
Ensure that dump calls that are associated with asserts are removed from
...
non-debug build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29105 91177308-0d34-0410-b5e6-96231b3b80d8
2006-07-11 17:58:07 +00:00
Chris Lattner
9525528a7d
Use hidden visibility to make symbols in an anonymous namespace get
...
dropped. This shrinks libllvmgcc.dylib another 67K
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28975 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-28 23:17:24 +00:00
Andrew Lenharth
cc131c4032
add some missing externals
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28955 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-28 01:16:06 +00:00
Chris Lattner
356d8c2499
Handle alias sets that have been unified, and thus can have other references
...
to them. This fixes a regression in my previous checkin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28951 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-27 23:56:13 +00:00
Chris Lattner
f299857496
Don't implement AliasSetTracker::remove in terms of deleteValue. deleteValue
...
causes the pointer to be removed from the underlying alias analysis
implementation as well. This impl of remove is also significantly faster than
the old one. This fixes:
Regression/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28950 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-27 23:48:59 +00:00
Reid Spencer
9d5b532de9
For PR801:
...
Refactor the Graph writing code to use a common implementation which is
now in lib/Support/GraphWriter.cpp. This completes the PR.
Patch by Anton Korobeynikov. Thanks, Anton!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28925 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-27 16:49:46 +00:00
Chris Lattner
959e321a1b
Fix a stale pointer issue that caused 300.twolf to fail to build on zion
...
last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28916 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-26 19:20:48 +00:00
Andrew Lenharth
ab390d045a
Do partial inlining in BU. This resolves more call sites. Also add options to merge in globals during recursion and to back annotate DSNodes when function pointers are resolved. This makes PA work for a whole lot more things (unresolved call sites being what has been killing various DSA based passes)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28859 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-19 18:23:36 +00:00
Andrew Lenharth
3770500f88
Fix a bug, don't drop indirect call sites, especially if there is nothing known about them yet, and restore a simple version of a removed function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28857 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-19 15:42:47 +00:00
Chris Lattner
5cff2677a6
Constant fold sqrtf
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28853 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-17 18:17:52 +00:00
Andrew Lenharth
c269c5269a
Add a error message to cbu to match bu
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28819 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-16 14:43:36 +00:00
Andrew Lenharth
73a38a9071
move header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28818 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-16 14:33:53 +00:00
Owen Anderson
3cc86cc11f
Update isLCSSAForm to handle PHI nodes specially for live-out detection. This
...
is the same as the recent patch to LCSSA.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28773 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-13 20:45:22 +00:00
Owen Anderson
c2cc15cf9d
Re-commit the safe parts of my 6/9 patch. Still working on fixing the unsafe parts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28748 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-11 19:22:28 +00:00
Evan Cheng
b9b2b309d3
Back out Owen's 6/9 changes. They broke MultiSource/Benchmarks/Prolangs-C/bison (and perhaps others).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28747 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-11 09:32:57 +00:00
Owen Anderson
f25c19c6b5
Make Loop able to verify that it is in LCSSA-form, and have the LCSSA pass assert
...
on this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28738 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-09 18:33:30 +00:00
Reid Spencer
4f1bd9e996
For PR780:
...
1. Fix the macros in IncludeFile.h to put everything in the llvm namespace
2. Replace the previous explicit mechanism in all the .h and .cpp files
with the macros in IncludeFile.h
This gets us a consistent mechanism throughout LLVM for ensuring linkage.
Next step is to make sure its used in enough places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28715 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-07 22:00:26 +00:00
Reid Spencer
6df60a9eff
For PR780:
...
Break the "IncludeFile" mechanism into its own header file and adjust other
files accordingly. Use this facility for the IntrinsicInst problem which
was the subject of PR800.
More to follow on this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28709 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-07 20:00:19 +00:00
Reid Spencer
3e0c154240
For PR798:
...
Add support for Graphviz. Patch contributed by Anton Korobeynikov.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28684 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-05 15:44:46 +00:00
Chris Lattner
080e25d884
Fix -pedantic warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28634 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01 17:17:46 +00:00
Reid Spencer
192913e281
Change from using a stub function to a stub variable for passing to the
...
IncludeFile hack to ensure linkage of analysis passes. This works around
some -pedantic warnings about assigning an object to a function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28621 91177308-0d34-0410-b5e6-96231b3b80d8
2006-06-01 07:02:51 +00:00
Andrew Lenharth
40932272c7
move calltarget to dsa
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28546 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-29 23:39:48 +00:00
Andrew Lenharth
632cd52162
Since there was interest on the mailing list, this is a utility pass that
...
uses DSA to make find targets of calls. It provides a very convinient
interface to DSA results to do things with indirect calls, such as
write a devirtualizer (which I have and may commit one of these days).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28545 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-29 22:58:38 +00:00
Chris Lattner
d74ea2bbd8
Patches to make the LLVM sources more -pedantic clean. Patch provided
...
by Anton Korobeynikov! This is a step towards closing PR786.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28447 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-24 17:04:05 +00:00
Chris Lattner
82db0696a1
Remove dead variable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28249 91177308-0d34-0410-b5e6-96231b3b80d8
2006-05-12 17:41:45 +00:00
Chris Lattner
97156e7984
Implement Transforms/IndVarsSimplify/complex-scev.ll, a case where we didn't
...
recognize some simple affine IV's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27982 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-26 18:34:07 +00:00
Andrew Lenharth
94a8d7785c
slightly more useful error message
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27971 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-25 19:33:41 +00:00
Andrew Lenharth
ceeb17d8d8
better c99 struct handling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27970 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-25 19:33:23 +00:00
Andrew Lenharth
9df47b5928
Another simple case type merge case to try
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27831 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:34:34 +00:00
Andrew Lenharth
613926904f
deal with memchr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27830 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:34:02 +00:00
Andrew Lenharth
5e091f3e32
friendlier error message
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27829 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 15:33:35 +00:00
Andrew Lenharth
92e2196f0b
stupid stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27821 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-19 03:45:25 +00:00
Andrew Lenharth
1c212dec24
I understand now. Shoot.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27819 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 22:36:11 +00:00
Andrew Lenharth
a544266db7
llvm.memc* improvements. helps PA a lot in some specmarks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27812 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 20:59:52 +00:00
Andrew Lenharth
2dbf23afb4
llvm.memc* improvements. helps PA a lot in some specmarks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27811 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-18 19:54:11 +00:00
Chris Lattner
0fa07f95b6
Implement value #'ing for vector operations, implementing
...
Regression/Transforms/GCSE/vectorops.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27691 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-14 05:10:20 +00:00
Andrew Lenharth
99c1942ba7
Handle some kernel code than ends in [0 x sbyte]. I think this is safe
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27672 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-13 19:31:49 +00:00
Andrew Lenharth
aed967dbfe
revert this, this is safe, if conservative. leave a note to that effect
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27428 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-05 02:42:36 +00:00
Chris Lattner
1f239300d3
Signed shr by a constant is not the same as sdiv by 2^k
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27395 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-04 06:11:42 +00:00
Chris Lattner
60a05cc118
Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and
...
PR726 by performing consistent signed division, not consistent unsigned
division when evaluating scev's. Do not touch udivs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27326 91177308-0d34-0410-b5e6-96231b3b80d8
2006-04-01 04:48:52 +00:00
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
Nate Begeman
442b32b5c5
Fix PR681 by using the standard Lengauer and Tarjan algorithm for dominator
...
set construction, rather than intersecting various std::sets. This reduces
the memory usage for the testcase in PR681 from 496 to 26MB of ram on my
darwin system, and reduces the runtime from 32.8 to 0.8 seconds on a
2.5GHz G5. This also enables future code sharing between Dom and PostDom
now that they share near-identical implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26707 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-11 02:20:46 +00:00
Chris Lattner
cad25379d3
Use autogenerated mod/ref info for intrinsics.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26670 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-09 22:31:29 +00:00
Chris Lattner
2cfdd2854c
Fix a crash compiling Obsequi
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26529 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-04 21:48:01 +00:00
Chris Lattner
5a3cf8de5d
Be more conservative with our symbolic alias analysis. In particular,
...
don't assume that A[1][0] and A[0][i] can't alias. "i" might be out of
range, or even negative. This fixes a miscompilation of 188.ammp (which
does bad pointer tricks) with the new CFE.
Testcase here: Analysis/BasicAA/2006-03-03-BadArraySubscript.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26515 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-04 02:06:34 +00:00
Chris Lattner
01ac91e2fd
updates for recent changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26481 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-03 01:21:36 +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
60330ff193
add an assert
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26178 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-14 20:14:17 +00:00
Chris Lattner
ca1a4bebb3
Pull the InsertCastOfTo out of the header, implement CSE'ing of arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25973 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:51:53 +00:00
Chris Lattner
03f774ad80
Value# select instructions, allowing -gcse to remove duplicates
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25969 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:15:29 +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
Reid Spencer
0b118206bf
For PR411:
...
This patch is an incremental step towards supporting a flat symbol table.
It de-overloads the intrinsic functions by providing type-specific intrinsics
and arranging for automatically upgrading from the old overloaded name to
the new non-overloaded name. Specifically:
llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64
llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64
llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64
llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64
llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64
New code should not use the overloaded intrinsic names. Warnings will be
emitted if they are used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-16 21:12:35 +00:00
Chris Lattner
25abb1dc09
Change ET-Forest to automatically recalculate its DFSnum's if too many slow
...
queries are made.
Patch by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25323 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14 20:55:09 +00:00
Chris Lattner
c54b1c1f8b
Add a new CallGraph::getOrInsertFunction for clients to use when updating
...
the callgraph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25317 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14 20:03:00 +00:00
Chris Lattner
1694ec615f
add a dump method to CallGraph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25314 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14 19:17:02 +00:00
Nate Begeman
6fb3bd6a65
Add bswap intrinsics as documented in the Language Reference
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25309 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-14 01:25:24 +00:00
Chris Lattner
45a0e9b04d
Switch loopinfo to using ETForest instead of DominatorSet to compute itself.
...
Patch by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25199 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-11 05:08:29 +00:00
Reid Spencer
365320e49a
Remove unused inclusion of SymbolTable.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25170 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-10 03:48:34 +00:00
Chris Lattner
10673b63b0
Fix a problem exposed by the et-forest work. Load-vn needs these passes live
...
whenever it is live, not just when load-vn is computed initially
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25146 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-08 09:10:04 +00:00
Chris Lattner
ccacd3ccc2
Initial implementation of the ET-Forest data structure for dominators and
...
post-dominators. This code was written/adapted by Daniel Berlin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25144 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-08 08:22:18 +00:00
Chris Lattner
4983cf7321
Make the -print-alias-sets pass work for printing out something other than
...
the default aa impl results.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25062 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-03 06:05:22 +00:00
Chris Lattner
03839956e2
Separate the call graph implementation from its interface. This implements
...
the rough idea sketched out in http://nondot.org/sabre/LLVMNotes/CallGraphClass.txt ,
allowing new spiffy implementations of the callgraph interface to be built.
Many thanks to Saem Ghani for contributing this!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24944 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-22 06:07:52 +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
4b5086cc71
post-dom-frontiers requires proper post-dominance
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24409 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-18 07:28:26 +00:00
Andrew Lenharth
f6947c1bb8
prevent cse of readcyclecounter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24303 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-11 19:02:54 +00:00
Andrew Lenharth
51b8d54922
continued readcyclecounter support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24300 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-11 16:47:30 +00:00
Chris Lattner
df14a04b5c
Fix a problem that Nate noticed with LSR:
...
When inserting code for an addrec expression with a non-unit stride, be
more careful where we insert the multiply. In particular, insert the multiply
in the outermost loop we can, instead of the requested insertion point.
This allows LSR to notice the mul in the right loop, reducing it when it gets
to it. This allows it to reduce the multiply, where before it missed it.
This happens quite a bit in the test suite, for example, eliminating 2
multiplies in art, 3 in ammp, 4 in apsi, reducing from 1050 multiplies to
910 muls in galgel (!), from 877 to 859 in applu, and 36 to 30 in bzip2.
This speeds up galgel from 16.45s to 16.01s, applu from 14.21 to 13.94s and
fourinarow from 66.67s to 63.48s.
This implements Transforms/LoopStrengthReduce/nested-reduce.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24102 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-30 06:24:33 +00:00
Chris Lattner
eb99bd30e9
remove a dead file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24085 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-29 04:43:38 +00:00
John Criswell
bd9d37026a
Move some constant folding functions into LLVMAnalysis since they are used
...
by Analysis and Transformation passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24038 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-27 16:00:10 +00:00
John Criswell
a115643357
Move some constant folding code shared by Analysis and Transform passes
...
into the LLVMAnalysis library.
This allows LLVMTranform and LLVMTransformUtils to be archives and linked
with LLVMAnalysis.a, which provides any missing definitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24036 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-27 15:54:34 +00:00
Chris Lattner
f941a0fe6c
Remove this pass, it is not useful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23949 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 02:35:43 +00:00
Chris Lattner
f36aeedaa3
DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23940 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 02:26:13 +00:00
Chris Lattner
ab0ed3592b
Only build .a file versions of these libraries, instead of .a and .o versions.
...
This should speed up build times.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23933 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 01:59:48 +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
4fb1b21b31
expose a ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23924 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 01:00:45 +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
Chris Lattner
25d196880b
move this to the analyze tool
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23918 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-24 00:27:36 +00:00
Chris Lattner
bed21de39b
wrap a long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23507 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-28 22:30:58 +00:00
Chris Lattner
b6a69e70e0
Add a new getLoopLatch() method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23315 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-12 17:03:55 +00:00
Chris Lattner
ab466d769a
floor/ceil don't read/write memory. This allows gcse to eliminate 6 calls
...
in mesa.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23015 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24 16:58:56 +00:00
Chris Lattner
ff2006aa74
Fix Transforms/LoopStrengthReduce/2005-08-15-AddRecIV.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22797 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16 00:37:01 +00:00
Chris Lattner
db25de496c
Teach LLVM to know how many times a loop executes when constructed with
...
a < expression, e.g.: for (i = m; i < n; ++i)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22793 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-15 23:33:51 +00:00
Chris Lattner
05bd374b1f
Fix an obvious oops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22742 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-10 00:59:40 +00:00
Chris Lattner
a0740fbcc7
implement two helper methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22736 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-09 23:36:33 +00:00
Misha Brukman
e2d7fdf62c
* Unbreak optimized build (noticed by Eric van Riet Paap)
...
* Comment #endif clauses for readability
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22646 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-04 14:16:48 +00:00
Chris Lattner
b06f677c53
add support for Graphviz when viewing CFGs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22620 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-03 17:55:05 +00:00
Nate Begeman
36f891bdf6
Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that
...
other passes may use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22557 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-30 00:12:19 +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
d3513e026b
Remove glibc specific functions, and mark a couple as C99
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22384 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-11 20:35:20 +00:00
Andrew Lenharth
d9793e6c0a
because on alpha:
...
# define errno (*__errno_location ())
*shakes head
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22383 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-11 17:41:12 +00:00
Andrew Lenharth
c826aea982
the correct fix was to fix AliasAnalysis.getModRefInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22268 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-20 15:25:22 +00:00
Andrew Lenharth
e3e1739b7d
prevent GCSE from forwarding stores to loads around vaarg. This is uggly, and I am trying to fix the AliasInfo, as it should catch the problem instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22266 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-20 15:02:05 +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
42e3c81c5f
By definition, 'tail' calls cannot access the stack frame of their caller.
...
Expose this as a simple form of mod/ref information. This implements
BasicAA/tailcall-modref.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21796 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-08 23:58:12 +00:00
Chris Lattner
998fffdda1
These intrinsics do not access memory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21718 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 05:21:04 +00:00
Misha Brukman
f4f85998bf
Remove extra blank line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21706 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-05 23:43:47 +00:00
Chris Lattner
eed37bad01
Add llvm.sqrt intrinsic, patch contributed by Morten Ofstad
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21627 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-30 03:44:07 +00:00
Chris Lattner
5b103c20e3
These functions can set errno!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21609 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-28 21:52:31 +00:00
Chris Lattner
318c149823
Make interval partition print correctly, patch contributed by
...
Vladimir Prus!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21566 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-26 14:48:28 +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
Chris Lattner
3fe4d3cb5b
Malloc/Free have mod/ref effects. Do not allow CSE of function calls that
...
call malloc/free. This fixes PR555.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21443 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-22 05:36:59 +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
fd93908ae8
Remove trailing whitespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21427 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21 23:48:37 +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
6128690c62
Don't make this require loopsimplify. It works BETTER with loop simplify
...
but should not require it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21123 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-06 21:45:00 +00:00
Chris Lattner
bd135c7706
do not crash when using -debug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21092 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-05 01:12:03 +00:00
Chris Lattner
8a9763c3cd
do not dereference an extra layer of pointers to determine if an external
...
call can modify a memory location. This fixes
test/Regression/Analysis/Andersens/modreftest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21088 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-04 22:23:21 +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
175b9635cc
import all of the rest of the stubs that dsa uses for direct comparison
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20932 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 20:36:05 +00:00
Chris Lattner
77b505670c
learn about some more functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20929 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 20:04:24 +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
cfba7981eb
there is no point comparing against null pointer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20925 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 17:44:52 +00:00
Chris Lattner
76bc5ce5c4
Fix a major problem with global variable initializers. This could cause
...
us to have stuff pointing to the null pointer, which makes no sense
(the null ptr is an ssa value, not the null object)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20922 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 17:21:53 +00:00
Chris Lattner
4de57fd9e9
add some more functions, ignore setcc for constraints!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20917 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 06:52:20 +00:00
Chris Lattner
8a44643d61
Handle "known" external calls context sensitively, add support for realloc
...
and a couple of other functions that are important.
Handle aggregate undef values for gv initializers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20914 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-29 06:09:07 +00:00
Chris Lattner
f392c64ec6
Teach andersens that non-escaping memory cannot be mod/ref'd by external fn calls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20891 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-28 06:21:17 +00:00
Misha Brukman
be5e2f4f9b
Fix grammar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20890 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-28 04:32:12 +00:00
Chris Lattner
c3c9fd0dd6
Make anders-aa much more precise by not being completely pessimistic about
...
external functions. Teach it about a few important ones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20889 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-28 04:03:52 +00:00
Chris Lattner
493f6366cb
wrap some long lines
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20884 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-27 22:03:46 +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
267a1b02a2
teach andersens about undef
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20881 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-27 18:58:23 +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
e70492d0e2
Factor out percentage printing into its own function. Make two changes to
...
the function: print more precision XX.X% instead of XX%, and cast to ULL
before scaling by 100/1000 to avoid wrap around for large numbers of queries
(such as occur for 253.perlbmk and 176.gcc)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20872 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 23:56: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
0772e78789
Interchange this loop so that we test all pointers against one call site
...
before moving on to the next call site. This will be a more efficient way
to compute the mod/ref set for AA implementations like DSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20866 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-26 22:16:44 +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
2958eeabcf
Treat free operations as volatile, since they cannot be moved. This fixes
...
Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20830 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-25 05:49:37 +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
Chris Lattner
7d671b88e8
teach ds-aa about mod/ref for external function calls.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20801 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 03:04:50 +00:00
Chris Lattner
62da315c85
Simplify dead code into a fixme :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20800 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 02:41:19 +00:00
Chris Lattner
c4417f98e5
fix a compiler crash in runtime/libprofile
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20799 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-24 01:22:52 +00:00
Chris Lattner
f5eaf3c62c
wrap a long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20797 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 23:51:12 +00:00
Chris Lattner
ec6518ddc2
If we are calling an external function, chain to another AA to potentially
...
decide, don't just immediately give up.
This implements GlobalsModRef/chaining-analysis.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20796 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 23:49:47 +00:00
Chris Lattner
8cfd24df54
Make this more efficient by only making one virtual method call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20793 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 23:26:58 +00:00
Chris Lattner
d433bde071
Make this a bit more aggressive
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20792 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 22:06:41 +00:00
Chris Lattner
65512d2525
a hack to allow count-aa to work with ds-aa :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20791 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 21:59:34 +00:00
Chris Lattner
cf9f20189f
Add two options to allow -count-aa to print queries either (1) all queries,
...
or (2) only queries that are not successful (e.g. return may alias)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20790 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 21:59:07 +00:00
Chris Lattner
c14f59cb72
turn a dead conditional into an assert.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20787 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 20:12:08 +00:00
Chris Lattner
e3f1d8a525
Totally gut mergeInGraph. There is absolutely no reason to be merging
...
global roots in from callees to callers. The BU graphs do not have accurate
globals information and all of the clients know it. Instead, just make sure
the GG is up-to-date, and they will be perfectly satiated.
This speeds up the BU pass on 176.gcc from 5.5s to 1.5s, and Loc+BU+TD
from 7s to 2.7s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20786 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 20:08:59 +00:00
Chris Lattner
eb39492deb
wrap a long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20785 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 16:43:11 +00:00
Chris Lattner
943814bb01
Make -steens-aa more conservative (aka correct) by making sure to obey
...
incompleteness flags.
Make it more aggressive by taking field sensitive information into
account.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20781 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 01:48:09 +00:00
Chris Lattner
2f72f9462b
implement Analysis/DSGraph/field-sensitive.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20779 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-23 01:47:19 +00:00
Chris Lattner
1e9d1475bc
Several changes here:
...
1. Increase max node size from 64->256 to avoid collapsing an important
structure in 181.mcf
2. If we have multiple calls to an indirect call node with an indirect
callee, fold these call nodes together, to avoid DSA turning apoc into
a flaming fireball of death when analyzing 176.gcc.
With this change, 176.gcc now takes ~7s to analyze for loc+bu+td, with
5.7s of that in the BU pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20775 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22 23:54:52 +00:00