Substantially speed up combiner-aa in the following ways:
authorNate Begeman <natebegeman@mac.com>
Tue, 15 Sep 2009 00:18:30 +0000 (00:18 +0000)
committerNate Begeman <natebegeman@mac.com>
Tue, 15 Sep 2009 00:18:30 +0000 (00:18 +0000)
commitb6aef5c86736accefb1c61cacaf1bd29e9b25ecd
treeeeb4a694e04518e6888c01e9719f1697f9bed281
parent9cae7053c0381e5ba8c9e758231bfc9a1ccf57de
Substantially speed up combiner-aa in the following ways:

1. Switch from an std::set to a SmallPtrSet for visited chain nodes.
2. Do not force the recursive flattening of token factor nodes, regardless of
   use count.
3. Immediately process newly created TokenFactor nodes.

Also, improve combiner-aa by teaching it that loads to non-overlapping offsets
of relatively aligned objects cannot alias.

These changes result in a >5x speedup for combiner-aa on most testcases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81816 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/DAGCombiner.cpp