History log of /external/llvm/include/llvm/Analysis/DominatorInternals.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
55be644df6e8b8ba08ae789ee440c798f21974a0 23-Jan-2011 Cameron Zwarich <zwarich@apple.com> Convert a std::vector to a SmallVector for another 5.4% speedup on domtree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
54cdad97eb77caf841ade5827a1d5da6b2d89df3 23-Jan-2011 Cameron Zwarich <zwarich@apple.com> In the simpler version of the link-eval data structure that we use in dominator
computation, the Ancestor field is always set to the Parent, so we can remove
the explicit link entirely and merge the Parent and Ancestor fields. Instead of
checking for whether an ancestor exists for a node or not, we simply check
whether the node has already been processed. This is simpler if Compress is
inlined into Eval, so I did that as well.

This is about a 3% speedup running -domtree on test-suite + SPEC2000 & SPEC2006,
but it also opens up some opportunities for further improvement.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
11e222da1fe498a3c528d197ab57982e3bb5762d 23-Jan-2011 Cameron Zwarich <zwarich@apple.com> Remove useless struct fields.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
907b56ce7ab26222fa128d5062f8dddf11c81603 23-Jan-2011 Cameron Zwarich <zwarich@apple.com> Convert a std::vector to a SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
5c96c69161aa4480c432027e363d0ea1aa34acee 23-Jan-2011 Cameron Zwarich <zwarich@apple.com> Simplify some code now that we've removed the more optimal (but slower) version
of the link-eval data structure from dominator computation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
113328db1b6c71d6bb8f62ebef193efb1a44f1a4 11-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Put the Dominator improvements back in. They were not the cause of bootstrap miscomparisons.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
cbf39b58919497f711de24fa687b044805f58ae7 11-Jan-2011 Jakob Stoklund Olesen <stoklund@2pi.dk> Speculatively revert the recent improvements to Dominators.h in an attempt to track down the gcc bootstrap miscompare.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
94942cec11ba3dc2592d1195324d2315a58d7711 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Fix a typo in a variable name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
63e07d72f8175cd2d74f0693edf1b0429580d64d 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Move a load into the only branch where it is used and eliminate a temporary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
2a8c22aa6824143fdf4c00d4486c65eca26f6c9f 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Add the explanatory comment from r122680's commit message to the code itself.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
19feb4ca8a804aeda650cb1f700a89c2f2324b77 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Tidy up indentation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
a4d93162cbb95423a9c8f35e38747c08aa8a3516 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Fix a typo, which should also fix the failure on llvm-x86_64-linux-checks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
c9e152b778715afc5cdfdb98cb0e98757ed827d8 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Remove the #ifdef'd code for balancing the eval-link data structure. It doesn't
compile, and everyone's tests have shown it to be slower in practice, even for
quite large graphs.

I also hope to do an optimization that is only correct with the simpler data
structure, which would break this even further.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
8252ad1351594039fa5d6633ff3eef1bafb7fdf9 02-Jan-2011 Cameron Zwarich <zwarich@apple.com> Speed up dominator computation some more by optimizing bucket processing. When
naively implemented, the Lengauer-Tarjan algorithm requires a separate bucket
for each vertex. However, this is unnecessary, because each vertex is only
placed into a single bucket (that of its semidominator), and each vertex's
bucket is processed before it is added to any bucket itself.

Instead of using a bucket per vertex, we use a single array Buckets that has two
purposes. Before the vertex V with DFS number i is processed, Buckets[i] stores
the index of the first element in V's bucket. After V's bucket is processed,
Buckets[i] stores the index of the next element in the bucket to which V now
belongs, if any.

Reading from the buckets can also be optimized. Instead of processing the bucket
of V's parent at the end of processing V, we process the bucket of V itself at
the beginning of processing V. This means that the case of the root vertex can
be simplified somewhat. It also means that we don't need to look up the DFS
number of the semidominator of every node in the bucket we are processing,
since we know it is the current index being processed.

This is a 6.5% speedup running -domtree on test-suite + SPEC2000/2006, with
larger speedups of around 12% on the larger benchmarks like GCC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
2974b6ffbcffcd7fb02958c7382edf45e4a30f14 23-Nov-2010 Cameron Zwarich <zwarich@apple.com> Optimize a common case in the Lengauer-Tarjan dominators algorithm. This gives a
9.7% speedup running domtree on test-suite.

Reviewed by Chris Lattner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
a53fe6070cae7d2feccb542b8ba24b37d3fdd027 23-Oct-2010 Benjamin Kramer <benny.kra@googlemail.com> SmallVectorize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
0764e39a921ae424e2ac8c7ba114b67040eba8f6 13-Jul-2010 Eric Christopher <echristo@apple.com> 80-columns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
da995609e6e963eaa77346d43b0a33b81e53a785 08-Jul-2010 Gabor Greif <ggreif@gmail.com> only dereference iterator once in the loop
(by caching the result we save a potentially expensive dereference)

also use typedefs to shorten type declarations

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
24dcbaf75618277b049ddf488a37ede3177613dc 16-Jan-2010 Tobias Grosser <grosser@fim.uni-passau.de> Fix PR6047

Nodes that had children outside of the post dominator tree (infinite loops)
where removed from the post dominator tree. This seems to be wrong. Leave them
in the tree.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
365ccd3a919b017f79140028dac15ef0c70641dd 08-Jan-2010 Tobias Grosser <grosser@fim.uni-passau.de> Remove workaround in PostDominators

Remove a FIXME and unify code that was necessary to work around broken
updateDFSNumbers(). Before updateDFSNumbers() did not work correctly for post
dominators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
d68a07650cdb2e18f18f362ba533459aa10e01b6 05-Jan-2009 Dan Gohman <gohman@apple.com> Tidy up #includes, deleting a bunch of unnecessary #includes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
34cd4a484e532cc463fd5a4bf59b88d13c5467c1 05-May-2008 Evan Cheng <evan.cheng@apple.com> Fix more -Wshorten-64-to-32 warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
46bb007014414c966586a983dbf24f38490e0f22 04-May-2008 Owen Anderson <resistor@mac.com> Fix PR1098 by correcting the postdominators analysis.

Patch by Florian Brandner.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
1f23e163190f85e46f2009bf43ee4fe8299044e4 16-Apr-2008 Owen Anderson <resistor@mac.com> Major repairs to the post-dominators implementation. Patch from Florian Brandner!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
discussion of this change. Boy are my fingers tired. ;-)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
5d32ec4cb002973cb12bc21a3fe12364794168c8 31-Oct-2007 Owen Anderson <resistor@mac.com> Some fixes to get MachineDomTree working better.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
4d6d5783d8f803a9ae1ad64b16643f7ddeacbc1b 25-Oct-2007 Owen Anderson <resistor@mac.com> Make it possible for DomTreeBase to be constructed from MachineFunction's as well as just Function's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
7b714321df4d286018d594c9c9f132f343dbabdc 18-Oct-2007 Owen Anderson <resistor@mac.com> Move Split<...>() into DomTreeBase. This should make the #include's of DominatorInternals.h
in CodeExtractor and LoopSimplify unnecessary.

Hartmut, could you confirm that this fixes the issues you were seeing?


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
05d2318fbde7b603bd6de690f18d48e0ef44d81d 17-Oct-2007 Owen Anderson <resistor@mac.com> Move splitBlock into DomTreeBase from DomTree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
49b653aa6aaaed17be1c611c5722b5b9ff31a905 16-Oct-2007 Owen Anderson <resistor@mac.com> Template DominatorTreeBase by node type. This is the next major step towards
having dominator information on MBB's.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
9cb7f49ee9d8c77f5ae82e36befde2b3094fdd02 03-Oct-2007 Owen Anderson <resistor@mac.com> Completely merge the implementation details of DomTree and PostDomTree.

Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this,


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
ab528fe0fb7caa96ce789bf872d7058aec8ae7c8 30-Sep-2007 Owen Anderson <resistor@mac.com> Template-ize more of the DomTree internal implementation details. Only the calculate() methods for DomTree and PostDomTree remain to be merged/template-ized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
3c5f0233e094ec5cea8e0f95af72fe29a7ce851d 29-Sep-2007 Duncan Sands <baldrick@free.fr> Add newline at end of file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
303f47b1dd3166a8abcd5425f863f7b4815a8e42 28-Sep-2007 Owen Anderson <resistor@mac.com> Have PostDomTree use the newly templated DFSPass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h
58ec8825d46085841a1af55ee7f8117ad25ecf2f 28-Sep-2007 Owen Anderson <resistor@mac.com> Convert DFSPass into a templated friend function, in preparation for making it common to DomTree and PostDomTree.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Analysis/DominatorInternals.h