aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-03-22Several changes here:Chris Lattner
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-22We might as well check the TD graphs as well, even though they are fine.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20774 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Mark external globals incomplete in the BU Globals graph, fixingChris Lattner
Analysis/DSGraph/2005-03-22-IncompleteGlobal.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20773 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22New testcase, the BU pass is marking the global complete in the globals graph.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20772 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Updating my entry.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20771 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Fix a serious bug where we didn't insert globals into the globalset whenChris Lattner
cloning a graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20770 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22hum, it is good to use real instructionsAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20769 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Directly count the number of memory instructions.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20766 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Timers SHOULD NOT record the time taken to count the bytes allocated in the ↵Chris Lattner
heap! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20765 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Remove an iteration pass over the entire scalarmap for each function createdChris Lattner
by not allowing integer constants to get into the scalar map in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20764 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22When making a clone of a DSGraph from the BU pass, make sure to remember thatChris Lattner
this clone is supposed to be used for *ALL* of the functions in the SCC. This fixes the memory explosion problem the TD pass was having, reducing the memory growth from 24MB -> 3.5MB on povray and 270MB ->8.3MB on perlbmk! This obviously also speeds up the TD pass *a lot*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20763 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Don't use operator[], use the new method instead, which is faster. This speedsChris Lattner
up the TD pass about 30% for povray and perlbmk. It's still not clear why copying a 5MB set of graphs turns into a 25MB set of graphs though :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20762 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20761 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22Now that the dead ctor is gone, nothing uses the old node mapping exported byChris Lattner
cloneInto: make it an internally used mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20760 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22remove a dead ctorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20759 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22now that the second argument is always this->ReturnNodes, don't bother ↵Chris Lattner
passing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20758 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22instead of using a local RetValMap, just use the graph we are cloning intoChris Lattner
for the return node map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20757 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22two things: 1)evilness reduction patch, reduces the number of instructions ↵Andrew Lenharth
hiding in the small jump CC moving code. 2)implement div of small data types by FP DIV (also reduces evilness and should speed things up) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20756 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22now that the valuemapping is always the local scalar map, we can eliminateChris Lattner
this identity merge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20755 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22remove the second argument to cloneIntoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20754 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22drop the second argument to cloneInto, which is always the local scalar map.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20753 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22add some timers, don't clone aux nodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20752 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22move this out of lineChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20751 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22move this stuff out of lineChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20750 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-22don't generate temporary scalarmaps.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20749 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21allow passing clone flags down to cloneIntoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20748 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21allow passing clone flags into the ctorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20747 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Enhance the TD pass to build composite graphs when we have indirect callChris Lattner
sites that target multiple callees. If we have a function table, for example, with N callees, and M callers call through it, we used to have to perform O(M*N) graph inlinings. Now we perform O(M+N) inlinings. This speeds up the td pass on perlbmk from 36.26s to 25.75s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20743 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21add a new mapChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20742 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21make this const correctChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20741 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Fix a major problem where we didn't add call graph edges for call sites withChris Lattner
more than 1 callee. This fixes Analysis/DSGraph/FunctionPointerTable-const.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20740 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21New testcase, which is important to handle correctly.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20739 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21We may be adding functions to the Module during initialization, soMisha Brukman
conservatively, it's modified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20735 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21This error message changed.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20734 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Ugh, for some reason, I can't call this unless the reference is const!?!?!?Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20732 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21The reachability cloner should add arguments to merged calls when the RHS ofChris Lattner
the merge has more operands than the LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20731 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Make the first operand of this method be modifiable.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20730 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20729 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21If merging two calls like: foo(A) and bar(B, C), make sure the result has twoChris Lattner
arguments, not one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20728 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21'note to self'Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20727 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Remove a bunch of cruft and dead code for handling the case when types wereChris Lattner
defined in function constant pools. The assembler grammar has long disallowed functions from having constant pools, so all of this stuff is dead. This makes it an immediate error for functions to refer to nonexisting types, fixing Regression/Verifier/2005-03-21-UndefinedTypeReference.ll. Before, references to non-existing types in functions would only be detected when the subsequent function was parsed, due to the call to "ResolveTypes". "ResolveTypes" has not resolved any types for a long time, instead it emitted an error message if no resolved types are left. Since the only caller of this method is in the module code, just inline it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20726 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21New testcase that the assembler incorrectly accepts.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20725 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Make this method non-const. Making it const causes the const version ofTanya Lattner
getIGroup to be called instead of the non-const one. These two methods have (??) different behavior, so this change fixes bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20724 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Change the way that the TD pass inlines graphs. Instead of inlining eachChris Lattner
graph into all of the functions it calls when we visit a graph, change it so that the graph visitor inlines all of the callers of a graph into the current graph when it visits it. While we're at it, inline global information from the GG instead of from each of the callers. The GG contains a superset of the info that the callers do anyway, and this way we only need to do it one time (not one for each caller). This speeds up the TD pass substantially on several programs, and there is still room for improvement. For example, the TD pass used to take 147s on perlbmk, it now takes 36s. On povray, we went from about 5s to 1.97s. 134.perl is down from ~1s for Loc+BU+TD to .6s. The TD pass needs a lot of improvement though, which will occur with later patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20723 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21rename a method add a data structure.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20722 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-21Provide a guaranteed definition of intptr_t. Thansk to Evan Jones forChris Lattner
pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20721 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-20Don't strip modref bits when inlining down the call graph. This fixesChris Lattner
the DSGraph/2003-06-30-TopDownResolve.ll regression from last night. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20717 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-20Remove the ability to keep track of inlined globals, which is always dead.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20716 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-20Remove the InlinedGlobals set which is always empty.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20715 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-20This call is always a noop, remove it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20714 91177308-0d34-0410-b5e6-96231b3b80d8