mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-19 18:24:00 +00:00
Eliminate some uses of DOUT, cerr, and getNameStart().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77145 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -29,6 +29,7 @@
|
||||
#include "llvm/Support/Compiler.h"
|
||||
#include "llvm/Support/Debug.h"
|
||||
#include "llvm/Support/ValueHandle.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
using namespace llvm;
|
||||
|
||||
STATISTIC(NumThreads, "Number of jumps threaded");
|
||||
@ -98,7 +99,7 @@ FunctionPass *llvm::createJumpThreadingPass() { return new JumpThreading(); }
|
||||
/// runOnFunction - Top level algorithm.
|
||||
///
|
||||
bool JumpThreading::runOnFunction(Function &F) {
|
||||
DOUT << "Jump threading on function '" << F.getNameStart() << "'\n";
|
||||
DEBUG(errs() << "Jump threading on function '" << F.getName() << "'\n");
|
||||
TD = getAnalysisIfAvailable<TargetData>();
|
||||
|
||||
FindLoopHeaders(F);
|
||||
@ -118,8 +119,8 @@ bool JumpThreading::runOnFunction(Function &F) {
|
||||
// edges which simplifies the CFG.
|
||||
if (pred_begin(BB) == pred_end(BB) &&
|
||||
BB != &BB->getParent()->getEntryBlock()) {
|
||||
DOUT << " JT: Deleting dead block '" << BB->getNameStart()
|
||||
<< "' with terminator: " << *BB->getTerminator();
|
||||
DEBUG(errs() << " JT: Deleting dead block '" << BB->getName()
|
||||
<< "' with terminator: " << *BB->getTerminator());
|
||||
LoopHeaders.erase(BB);
|
||||
DeleteDeadBlock(BB);
|
||||
Changed = true;
|
||||
@ -172,8 +173,8 @@ BasicBlock *JumpThreading::FactorCommonPHIPreds(PHINode *PN, Value *Val) {
|
||||
if (CommonPreds.size() == 1)
|
||||
return CommonPreds[0];
|
||||
|
||||
DOUT << " Factoring out " << CommonPreds.size()
|
||||
<< " common predecessors.\n";
|
||||
DEBUG(errs() << " Factoring out " << CommonPreds.size()
|
||||
<< " common predecessors.\n");
|
||||
return SplitBlockPredecessors(PN->getParent(),
|
||||
&CommonPreds[0], CommonPreds.size(),
|
||||
".thr_comm", this);
|
||||
@ -261,8 +262,8 @@ bool JumpThreading::ProcessBlock(BasicBlock *BB) {
|
||||
// terminator to an unconditional branch. This can occur due to threading in
|
||||
// other blocks.
|
||||
if (isa<ConstantInt>(Condition)) {
|
||||
DOUT << " In block '" << BB->getNameStart()
|
||||
<< "' folding terminator: " << *BB->getTerminator();
|
||||
DEBUG(errs() << " In block '" << BB->getName()
|
||||
<< "' folding terminator: " << *BB->getTerminator());
|
||||
++NumFolds;
|
||||
ConstantFoldTerminator(BB);
|
||||
return true;
|
||||
@ -291,8 +292,8 @@ bool JumpThreading::ProcessBlock(BasicBlock *BB) {
|
||||
BBTerm->getSuccessor(i)->removePredecessor(BB);
|
||||
}
|
||||
|
||||
DOUT << " In block '" << BB->getNameStart()
|
||||
<< "' folding undef terminator: " << *BBTerm;
|
||||
DEBUG(errs() << " In block '" << BB->getName()
|
||||
<< "' folding undef terminator: " << *BBTerm);
|
||||
BranchInst::Create(BBTerm->getSuccessor(MinSucc), BBTerm);
|
||||
BBTerm->eraseFromParent();
|
||||
return true;
|
||||
@ -418,8 +419,8 @@ bool JumpThreading::ProcessBranchOnDuplicateCond(BasicBlock *PredBB,
|
||||
else if (PredBI->getSuccessor(0) != BB)
|
||||
BranchDir = false;
|
||||
else {
|
||||
DOUT << " In block '" << PredBB->getNameStart()
|
||||
<< "' folding terminator: " << *PredBB->getTerminator();
|
||||
DEBUG(errs() << " In block '" << PredBB->getName()
|
||||
<< "' folding terminator: " << *PredBB->getTerminator());
|
||||
++NumFolds;
|
||||
ConstantFoldTerminator(PredBB);
|
||||
return true;
|
||||
@ -430,9 +431,9 @@ bool JumpThreading::ProcessBranchOnDuplicateCond(BasicBlock *PredBB,
|
||||
// If the dest block has one predecessor, just fix the branch condition to a
|
||||
// constant and fold it.
|
||||
if (BB->getSinglePredecessor()) {
|
||||
DOUT << " In block '" << BB->getNameStart()
|
||||
<< "' folding condition to '" << BranchDir << "': "
|
||||
<< *BB->getTerminator();
|
||||
DEBUG(errs() << " In block '" << BB->getName()
|
||||
<< "' folding condition to '" << BranchDir << "': "
|
||||
<< *BB->getTerminator());
|
||||
++NumFolds;
|
||||
DestBI->setCondition(ConstantInt::get(Type::Int1Ty, BranchDir));
|
||||
ConstantFoldTerminator(BB);
|
||||
@ -443,8 +444,8 @@ bool JumpThreading::ProcessBranchOnDuplicateCond(BasicBlock *PredBB,
|
||||
// involves code duplication. Check to see if it is worth it.
|
||||
unsigned JumpThreadCost = getJumpThreadDuplicationCost(BB);
|
||||
if (JumpThreadCost > Threshold) {
|
||||
DOUT << " Not threading BB '" << BB->getNameStart()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n";
|
||||
DEBUG(errs() << " Not threading BB '" << BB->getName()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -507,8 +508,8 @@ bool JumpThreading::ProcessSwitchOnDuplicateCond(BasicBlock *PredBB,
|
||||
|
||||
// Otherwise, we're safe to make the change. Make sure that the edge from
|
||||
// DestSI to DestSucc is not critical and has no PHI nodes.
|
||||
DOUT << "FORWARDING EDGE " << *DestVal << " FROM: " << *PredSI;
|
||||
DOUT << "THROUGH: " << *DestSI;
|
||||
DEBUG(errs() << "FORWARDING EDGE " << *DestVal << " FROM: " << *PredSI);
|
||||
DEBUG(errs() << "THROUGH: " << *DestSI);
|
||||
|
||||
// If the destination has PHI nodes, just split the edge for updating
|
||||
// simplicity.
|
||||
@ -706,8 +707,8 @@ bool JumpThreading::ProcessJumpOnPHI(PHINode *PN) {
|
||||
BasicBlock *BB = PN->getParent();
|
||||
unsigned JumpThreadCost = getJumpThreadDuplicationCost(BB);
|
||||
if (JumpThreadCost > Threshold) {
|
||||
DOUT << " Not threading BB '" << BB->getNameStart()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n";
|
||||
DEBUG(errs() << " Not threading BB '" << BB->getName()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -771,8 +772,8 @@ bool JumpThreading::ProcessBranchOnLogical(Value *V, BasicBlock *BB,
|
||||
// See if the cost of duplicating this block is low enough.
|
||||
unsigned JumpThreadCost = getJumpThreadDuplicationCost(BB);
|
||||
if (JumpThreadCost > Threshold) {
|
||||
DOUT << " Not threading BB '" << BB->getNameStart()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n";
|
||||
DEBUG(errs() << " Not threading BB '" << BB->getName()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -857,8 +858,8 @@ bool JumpThreading::ProcessBranchOnCompare(CmpInst *Cmp, BasicBlock *BB) {
|
||||
// See if the cost of duplicating this block is low enough.
|
||||
unsigned JumpThreadCost = getJumpThreadDuplicationCost(BB);
|
||||
if (JumpThreadCost > Threshold) {
|
||||
DOUT << " Not threading BB '" << BB->getNameStart()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n";
|
||||
DEBUG(errs() << " Not threading BB '" << BB->getNameStart()
|
||||
<< "' - Cost is too high: " << JumpThreadCost << "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -882,26 +883,26 @@ bool JumpThreading::ThreadEdge(BasicBlock *BB, BasicBlock *PredBB,
|
||||
|
||||
// If threading to the same block as we come from, we would infinite loop.
|
||||
if (SuccBB == BB) {
|
||||
DOUT << " Not threading across BB '" << BB->getNameStart()
|
||||
<< "' - would thread to self!\n";
|
||||
DEBUG(errs() << " Not threading across BB '" << BB->getName()
|
||||
<< "' - would thread to self!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// If threading this would thread across a loop header, don't thread the edge.
|
||||
// See the comments above FindLoopHeaders for justifications and caveats.
|
||||
if (LoopHeaders.count(BB)) {
|
||||
DOUT << " Not threading from '" << PredBB->getNameStart()
|
||||
<< "' across loop header BB '" << BB->getNameStart()
|
||||
<< "' to dest BB '" << SuccBB->getNameStart()
|
||||
<< "' - it might create an irreducible loop!\n";
|
||||
DEBUG(errs() << " Not threading from '" << PredBB->getName()
|
||||
<< "' across loop header BB '" << BB->getName()
|
||||
<< "' to dest BB '" << SuccBB->getName()
|
||||
<< "' - it might create an irreducible loop!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// And finally, do it!
|
||||
DOUT << " Threading edge from '" << PredBB->getNameStart() << "' to '"
|
||||
<< SuccBB->getNameStart() << "' with cost: " << JumpThreadCost
|
||||
<< ", across block:\n "
|
||||
<< *BB << "\n";
|
||||
DEBUG(errs() << " Threading edge from '" << PredBB->getName() << "' to '"
|
||||
<< SuccBB->getNameStart() << "' with cost: " << JumpThreadCost
|
||||
<< ", across block:\n "
|
||||
<< *BB << "\n");
|
||||
|
||||
// Jump Threading can not update SSA properties correctly if the values
|
||||
// defined in the duplicated block are used outside of the block itself. For
|
||||
|
Reference in New Issue
Block a user