SelectBasicBlock is rather slow even when it doesn't do anything; skip the

unnecessary work where possible.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129763 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Friedman 2011-04-19 17:01:08 +00:00
parent fc52163a45
commit 37d38bfbbf

View File

@ -1017,11 +1017,13 @@ void SelectionDAGISel::SelectAllBasicBlocks(const Function &Fn) {
else else
++NumFastIselBlocks; ++NumFastIselBlocks;
// Run SelectionDAG instruction selection on the remainder of the block if (Begin != BI) {
// not handled by FastISel. If FastISel is not run, this is the entire // Run SelectionDAG instruction selection on the remainder of the block
// block. // not handled by FastISel. If FastISel is not run, this is the entire
bool HadTailCall; // block.
SelectBasicBlock(Begin, BI, HadTailCall); bool HadTailCall;
SelectBasicBlock(Begin, BI, HadTailCall);
}
FinishBasicBlock(); FinishBasicBlock();
FuncInfo->PHINodesToUpdate.clear(); FuncInfo->PHINodesToUpdate.clear();