[PATCH] D48202: Generalize MergeBlockIntoPredecessor. Replace uses of MergeBasicBlockIntoOnlyPred.
Chandler Carruth via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 20 11:24:02 PDT 2018
chandlerc requested changes to this revision.
chandlerc added a comment.
This revision now requires changes to proceed.
Still a few things left, but really close.
================
Comment at: lib/CodeGen/CodeGenPrepare.cpp:522
+ SmallVector<WeakTrackingVH, 16> Blocks;
+ for (Function::iterator I = std::next(F.begin()), E = F.end(); I != E;)
+ Blocks.push_back(&*I++);
----------------
You can use a range based loop here now that you're putting them into a temporary array.
================
Comment at: lib/CodeGen/CodeGenPrepare.cpp:598
// Note that this intentionally skips the entry block.
- for (Function::iterator I = std::next(F.begin()), E = F.end(); I != E;) {
- BasicBlock *BB = &*I++;
+ // FIXME: use one line initializer?
+ SmallVector<WeakTrackingVH, 16> Blocks;
----------------
Due to building a WeakTrackingVH, may not work.
But why not use a range based loop below? should be safe now.
================
Comment at: lib/CodeGen/CodeGenPrepare.cpp:779-780
+ MergeBlockIntoPredecessor(DestBB);
+ // Note: BB will not be deleted on this path, its single predecessor will.
+ LLVM_DEBUG(dbgs() << "AFTER:\n" << *SinglePred << "\n\n\n");
return;
----------------
This seems like a bug then -- we can't print the `SinglePred` after it is deleted...
Repository:
rL LLVM
https://reviews.llvm.org/D48202
More information about the llvm-commits
mailing list