projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[X86][Haswell][SchedModel] Add architecture specific scheduling models.
[oota-llvm.git]
/
lib
/
CodeGen
/
SpillPlacement.h
diff --git
a/lib/CodeGen/SpillPlacement.h
b/lib/CodeGen/SpillPlacement.h
index a0480d587d6c89a2a4bfc746f962990abde52a15..03cf5cd74246e5fb4299a3ef81284c8cd3cb2d67 100644
(file)
--- a/
lib/CodeGen/SpillPlacement.h
+++ b/
lib/CodeGen/SpillPlacement.h
@@
-24,8
+24,8
@@
//
//===----------------------------------------------------------------------===//
//
//===----------------------------------------------------------------------===//
-#ifndef LLVM_CODEGEN_SPILLPLACEMENT_H
-#define LLVM_CODEGEN_SPILLPLACEMENT_H
+#ifndef LLVM_
LIB_
CODEGEN_SPILLPLACEMENT_H
+#define LLVM_
LIB_
CODEGEN_SPILLPLACEMENT_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SmallVector.h"
@@
-38,12
+38,14
@@
class BitVector;
class EdgeBundles;
class MachineBasicBlock;
class MachineLoopInfo;
class EdgeBundles;
class MachineBasicBlock;
class MachineLoopInfo;
+class MachineBlockFrequencyInfo;
-class SpillPlacement
: public MachineFunctionPass {
+class SpillPlacement : public MachineFunctionPass {
struct Node;
const MachineFunction *MF;
const EdgeBundles *bundles;
const MachineLoopInfo *loops;
struct Node;
const MachineFunction *MF;
const EdgeBundles *bundles;
const MachineLoopInfo *loops;
+ const MachineBlockFrequencyInfo *MBFI;
Node *nodes;
// Nodes that are active in the current computation. Owned by the prepare()
Node *nodes;
// Nodes that are active in the current computation. Owned by the prepare()
@@
-58,12
+60,12
@@
class SpillPlacement : public MachineFunctionPass {
SmallVector<unsigned, 8> RecentPositive;
// Block frequencies are computed once. Indexed by block number.
SmallVector<unsigned, 8> RecentPositive;
// Block frequencies are computed once. Indexed by block number.
- SmallVector<BlockFrequency,
4
> BlockFrequencies;
+ SmallVector<BlockFrequency,
8
> BlockFrequencies;
public:
static char ID; // Pass identification, replacement for typeid.
public:
static char ID; // Pass identification, replacement for typeid.
- SpillPlacement() : MachineFunctionPass(ID), nodes(
0
) {}
+ SpillPlacement() : MachineFunctionPass(ID), nodes(
nullptr
) {}
~SpillPlacement() { releaseMemory(); }
/// BorderConstraint - A basic block has separate constraints for entry and
~SpillPlacement() { releaseMemory(); }
/// BorderConstraint - A basic block has separate constraints for entry and
@@
-140,16
+142,14
@@
public:
/// getBlockFrequency - Return the estimated block execution frequency per
/// function invocation.
/// getBlockFrequency - Return the estimated block execution frequency per
/// function invocation.
- float getBlockFrequency(unsigned Number) const {
- // FIXME: Return the BlockFrequency directly.
- const float Scale = 1.0f / BlockFrequency::getEntryFrequency();
- return BlockFrequencies[Number].getFrequency() * Scale;
+ BlockFrequency getBlockFrequency(unsigned Number) const {
+ return BlockFrequencies[Number];
}
private:
}
private:
-
virtual bool runOnMachineFunction(MachineFunction&)
;
- v
irtual void getAnalysisUsage(AnalysisUsage&) const
;
- v
irtual void releaseMemory()
;
+
bool runOnMachineFunction(MachineFunction&) override
;
+ v
oid getAnalysisUsage(AnalysisUsage&) const override
;
+ v
oid releaseMemory() override
;
void activate(unsigned);
};
void activate(unsigned);
};