mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
random tidying
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83701 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -816,8 +816,9 @@ Value *GVN::GetValueForBlock(BasicBlock *BB, Instruction *Orig,
|
|||||||
else
|
else
|
||||||
NumPreds = std::distance(pred_begin(BB), pred_end(BB));
|
NumPreds = std::distance(pred_begin(BB), pred_end(BB));
|
||||||
|
|
||||||
// Otherwise, the idom is the loop, so we need to insert a PHI node. Do so
|
// Otherwise, we may need to insert a PHI node. Do so now, then get values to
|
||||||
// now, then get values to fill in the incoming values for the PHI.
|
// fill in the incoming values for the PHI. If the PHI ends up not being
|
||||||
|
// needed, we can always remove it later.
|
||||||
PHINode *PN = PHINode::Create(Orig->getType(), Orig->getName()+".rle",
|
PHINode *PN = PHINode::Create(Orig->getType(), Orig->getName()+".rle",
|
||||||
BB->begin());
|
BB->begin());
|
||||||
PN->reserveOperandSpace(NumPreds);
|
PN->reserveOperandSpace(NumPreds);
|
||||||
@@ -832,7 +833,8 @@ Value *GVN::GetValueForBlock(BasicBlock *BB, Instruction *Orig,
|
|||||||
|
|
||||||
VN.getAliasAnalysis()->copyValue(Orig, PN);
|
VN.getAliasAnalysis()->copyValue(Orig, PN);
|
||||||
|
|
||||||
// Attempt to collapse PHI nodes that are trivially redundant
|
// Attempt to collapse PHI nodes that are trivially redundant. This happens
|
||||||
|
// when we construct a PHI that ends up not being needed.
|
||||||
Value *v = CollapsePhi(PN);
|
Value *v = CollapsePhi(PN);
|
||||||
if (!v) {
|
if (!v) {
|
||||||
// Cache our phi construction results
|
// Cache our phi construction results
|
||||||
@@ -1777,8 +1779,8 @@ Value *GVN::AttemptRedundancyElimination(Instruction *orig, unsigned valno) {
|
|||||||
// If we didn't find instances, give up. Otherwise, perform phi construction.
|
// If we didn't find instances, give up. Otherwise, perform phi construction.
|
||||||
if (Results.size() == 0)
|
if (Results.size() == 0)
|
||||||
return 0;
|
return 0;
|
||||||
else
|
|
||||||
return GetValueForBlock(BaseBlock, orig, Results, true);
|
return GetValueForBlock(BaseBlock, orig, Results, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// processInstruction - When calculating availability, handle an instruction
|
/// processInstruction - When calculating availability, handle an instruction
|
||||||
|
@@ -197,9 +197,8 @@ void LCSSA::ProcessInstruction(Instruction *Instr,
|
|||||||
for (Value::use_iterator UI = Instr->use_begin(), E = Instr->use_end();
|
for (Value::use_iterator UI = Instr->use_begin(), E = Instr->use_end();
|
||||||
UI != E;) {
|
UI != E;) {
|
||||||
BasicBlock *UserBB = cast<Instruction>(*UI)->getParent();
|
BasicBlock *UserBB = cast<Instruction>(*UI)->getParent();
|
||||||
if (PHINode *P = dyn_cast<PHINode>(*UI)) {
|
if (PHINode *P = dyn_cast<PHINode>(*UI))
|
||||||
UserBB = P->getIncomingBlock(UI);
|
UserBB = P->getIncomingBlock(UI);
|
||||||
}
|
|
||||||
|
|
||||||
// If the user is in the loop, don't rewrite it!
|
// If the user is in the loop, don't rewrite it!
|
||||||
if (UserBB == Instr->getParent() || inLoop(UserBB)) {
|
if (UserBB == Instr->getParent() || inLoop(UserBB)) {
|
||||||
@@ -231,12 +230,11 @@ void LCSSA::getLoopValuesUsedOutsideLoop(Loop *L,
|
|||||||
for (Loop::block_iterator BB = L->block_begin(), BE = L->block_end();
|
for (Loop::block_iterator BB = L->block_begin(), BE = L->block_end();
|
||||||
BB != BE; ++BB) {
|
BB != BE; ++BB) {
|
||||||
for (BasicBlock::iterator I = (*BB)->begin(), E = (*BB)->end(); I != E; ++I)
|
for (BasicBlock::iterator I = (*BB)->begin(), E = (*BB)->end(); I != E; ++I)
|
||||||
for (Value::use_iterator UI = I->use_begin(), UE = I->use_end(); UI != UE;
|
for (Value::use_iterator UI = I->use_begin(), UE = I->use_end();
|
||||||
++UI) {
|
UI != UE; ++UI) {
|
||||||
BasicBlock *UserBB = cast<Instruction>(*UI)->getParent();
|
BasicBlock *UserBB = cast<Instruction>(*UI)->getParent();
|
||||||
if (PHINode* p = dyn_cast<PHINode>(*UI)) {
|
if (PHINode *p = dyn_cast<PHINode>(*UI))
|
||||||
UserBB = p->getIncomingBlock(UI);
|
UserBB = p->getIncomingBlock(UI);
|
||||||
}
|
|
||||||
|
|
||||||
if (*BB != UserBB && !inLoop(UserBB)) {
|
if (*BB != UserBB && !inLoop(UserBB)) {
|
||||||
AffectedValues.insert(I);
|
AffectedValues.insert(I);
|
||||||
@@ -288,7 +286,7 @@ Value *LCSSA::GetValueForBlock(DomTreeNode *BB, Instruction *OrigInst,
|
|||||||
Phis.insert(std::make_pair(BB, PN));
|
Phis.insert(std::make_pair(BB, PN));
|
||||||
|
|
||||||
// Fill in the incoming values for the block.
|
// Fill in the incoming values for the block.
|
||||||
for (BasicBlock** PI = PredCache.GetPreds(BBN); *PI; ++PI)
|
for (BasicBlock **PI = PredCache.GetPreds(BBN); *PI; ++PI)
|
||||||
PN->addIncoming(GetValueForBlock(DT->getNode(*PI), OrigInst, Phis), *PI);
|
PN->addIncoming(GetValueForBlock(DT->getNode(*PI), OrigInst, Phis), *PI);
|
||||||
return PN;
|
return PN;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user