mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-30 06:40:53 +00:00
Stop reallocating SunkAddrs for each basic block. When we move to an instruction
worklist, the key will need to become std::pair<BasicBlock*, Value*>. llvm-svn: 122932
This commit is contained in:
parent
ba8ae674d7
commit
eeea9f7113
@ -71,6 +71,12 @@ namespace {
|
||||
/// BackEdges - Keep a set of all the loop back edges.
|
||||
///
|
||||
SmallSet<std::pair<const BasicBlock*, const BasicBlock*>, 8> BackEdges;
|
||||
|
||||
// Keeps track of non-local addresses that have been sunk into a block. This
|
||||
// allows us to avoid inserting duplicate code for blocks with multiple
|
||||
// load/stores of the same address.
|
||||
DenseMap<Value*, Value*> SunkAddrs;
|
||||
|
||||
public:
|
||||
static char ID; // Pass identification, replacement for typeid
|
||||
explicit CodeGenPrepare(const TargetLowering *tli = 0)
|
||||
@ -141,6 +147,9 @@ bool CodeGenPrepare::runOnFunction(Function &F) {
|
||||
MadeChange |= OptimizeBlock(*BB);
|
||||
EverMadeChange |= MadeChange;
|
||||
}
|
||||
|
||||
SunkAddrs.clear();
|
||||
|
||||
return EverMadeChange;
|
||||
}
|
||||
|
||||
@ -968,10 +977,7 @@ bool CodeGenPrepare::OptimizeBlock(BasicBlock &BB) {
|
||||
}
|
||||
}
|
||||
|
||||
// Keep track of non-local addresses that have been sunk into this block.
|
||||
// This allows us to avoid inserting duplicate code for blocks with multiple
|
||||
// load/stores of the same address.
|
||||
DenseMap<Value*, Value*> SunkAddrs;
|
||||
SunkAddrs.clear();
|
||||
|
||||
for (BasicBlock::iterator BBI = BB.begin(), E = BB.end(); BBI != E; ) {
|
||||
Instruction *I = BBI++;
|
||||
|
Loading…
Reference in New Issue
Block a user