projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[SCEVExpander] Have hoistIVInc preserve LCSSA
[oota-llvm.git]
/
lib
/
Analysis
/
BlockFrequencyInfo.cpp
diff --git
a/lib/Analysis/BlockFrequencyInfo.cpp
b/lib/Analysis/BlockFrequencyInfo.cpp
index 46095ffd1d072a0ed2267fc432c2a175616f3410..90b7a339a0fe2d13b37ed0420c74565fe72ac63c 100644
(file)
--- a/
lib/Analysis/BlockFrequencyInfo.cpp
+++ b/
lib/Analysis/BlockFrequencyInfo.cpp
@@
-55,7
+55,7
@@
struct GraphTraits<BlockFrequencyInfo *> {
typedef Function::const_iterator nodes_iterator;
static inline const NodeType *getEntryNode(const BlockFrequencyInfo *G) {
typedef Function::const_iterator nodes_iterator;
static inline const NodeType *getEntryNode(const BlockFrequencyInfo *G) {
- return
G->getFunction()->begin
();
+ return
&G->getFunction()->front
();
}
static ChildIteratorType child_begin(const NodeType *N) {
return succ_begin(N);
}
static ChildIteratorType child_begin(const NodeType *N) {
return succ_begin(N);
@@
-105,6
+105,14
@@
struct DOTGraphTraits<BlockFrequencyInfo*> : public DefaultDOTGraphTraits {
} // end namespace llvm
#endif
} // end namespace llvm
#endif
+BlockFrequencyInfo::BlockFrequencyInfo() {}
+
+BlockFrequencyInfo::BlockFrequencyInfo(const Function &F,
+ const BranchProbabilityInfo &BPI,
+ const LoopInfo &LI) {
+ calculate(F, BPI, LI);
+}
+
void BlockFrequencyInfo::calculate(const Function &F,
const BranchProbabilityInfo &BPI,
const LoopInfo &LI) {
void BlockFrequencyInfo::calculate(const Function &F,
const BranchProbabilityInfo &BPI,
const LoopInfo &LI) {
@@
-121,6
+129,12
@@
BlockFrequency BlockFrequencyInfo::getBlockFreq(const BasicBlock *BB) const {
return BFI ? BFI->getBlockFreq(BB) : 0;
}
return BFI ? BFI->getBlockFreq(BB) : 0;
}
+void BlockFrequencyInfo::setBlockFreq(const BasicBlock *BB,
+ uint64_t Freq) {
+ assert(BFI && "Expected analysis to be available");
+ BFI->setBlockFreq(BB, Freq);
+}
+
/// Pop up a ghostview window with the current block frequency propagation
/// rendered using dot.
void BlockFrequencyInfo::view() const {
/// Pop up a ghostview window with the current block frequency propagation
/// rendered using dot.
void BlockFrequencyInfo::view() const {