Fix a quadratic algorithm in MachineBranchProbabilityInfo.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 20 Aug 2012 22:01:38 +0000 (22:01 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 20 Aug 2012 22:01:38 +0000 (22:01 +0000)
commit990ca5517fd6666d4049b6b8281d9df99da11637
treeeba24e2322ff7ca69f040973f3c5654ab03f3ae0
parente7fdef420d0c8a825555d246da259342c48bd527
Fix a quadratic algorithm in MachineBranchProbabilityInfo.

The getSumForBlock function was quadratic in the number of successors
because getSuccWeight would perform a linear search for an already known
iterator.

This patch was originally committed as r161460, but reverted again
because of assertion failures. Now that duplicate Machine CFG edges have
been eliminated, this works properly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162233 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/MachineBasicBlock.h
include/llvm/CodeGen/MachineBranchProbabilityInfo.h
lib/CodeGen/MachineBasicBlock.cpp
lib/CodeGen/MachineBranchProbabilityInfo.cpp