summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2014-01-29 23:18:47 +0000
committerManman Ren <manman.ren@gmail.com>2014-01-29 23:18:47 +0000
commitb681918dddd205fc47e30c67c5350dd2fda2aa1a (patch)
tree44382355465a2d9689d4722d0ef0ed8a31abcd55 /llvm/lib/CodeGen/MachineBasicBlock.cpp
parent933edd04af0b0d2926832e601e982aacda155e2e (diff)
downloadbcm5719-llvm-b681918dddd205fc47e30c67c5350dd2fda2aa1a.tar.gz
bcm5719-llvm-b681918dddd205fc47e30c67c5350dd2fda2aa1a.zip
PGO branch weight: update edge weights in IfConverter.
This commit only handles IfConvertTriangle. To update edge weights of a successor, one interface is added to MachineBasicBlock: /// Set successor weight of a given iterator. setSuccWeight(succ_iterator I, uint32_t weight) An existing testing case test/CodeGen/Thumb2/v8_IT_5.ll is updated, since we now correctly update the edge weights, the cold block is placed at the end of the function and we jump to the cold block. llvm-svn: 200428
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp
index 5bd47c2f1d2..d2df4e5cb8b 100644
--- a/llvm/lib/CodeGen/MachineBasicBlock.cpp
+++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp
@@ -1123,6 +1123,13 @@ uint32_t MachineBasicBlock::getSuccWeight(const_succ_iterator Succ) const {
return *getWeightIterator(Succ);
}
+/// Set successor weight of a given iterator.
+void MachineBasicBlock::setSuccWeight(succ_iterator I, uint32_t weight) {
+ if (Weights.empty())
+ return;
+ *getWeightIterator(I) = weight;
+}
+
/// getWeightIterator - Return wight iterator corresonding to the I successor
/// iterator
MachineBasicBlock::weight_iterator MachineBasicBlock::
OpenPOWER on IntegriCloud