mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-17 21:35:07 +00:00
simplify a bunch of code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121685 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ef5002ba85
commit
eff7edf126
@ -2334,22 +2334,11 @@ bool SimplifyCFGOpt::run(BasicBlock *BB) {
|
||||
if (BI && BI->isConditional()) {
|
||||
// Get the other block.
|
||||
BasicBlock *OtherBB = BI->getSuccessor(BI->getSuccessor(0) == BB);
|
||||
pred_iterator PI = pred_begin(OtherBB);
|
||||
++PI;
|
||||
|
||||
if (PI != pred_end(OtherBB)) {
|
||||
BasicBlock* OnlySucc = NULL;
|
||||
for (succ_iterator SI = succ_begin(BB), SE = succ_end(BB);
|
||||
SI != SE; ++SI) {
|
||||
if (!OnlySucc)
|
||||
OnlySucc = *SI;
|
||||
else if (*SI != OnlySucc) {
|
||||
OnlySucc = 0; // There are multiple distinct successors!
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (OnlySucc == OtherBB) {
|
||||
if (OtherBB->getSinglePredecessor() == 0) {
|
||||
TerminatorInst *BBTerm = BB->getTerminator();
|
||||
if (BBTerm->getNumSuccessors() == 1 &&
|
||||
BBTerm->getSuccessor(0) == OtherBB) {
|
||||
// If BB's only successor is the other successor of the predecessor,
|
||||
// i.e. a triangle, see if we can hoist any code from this block up
|
||||
// to the "if" block.
|
||||
|
Loading…
x
Reference in New Issue
Block a user