[llvm-commits] [llvm] r166454 - /llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
Craig Topper
craig.topper at gmail.com
Mon Oct 22 17:36:24 PDT 2012
On Mon, Oct 22, 2012 at 5:23 PM, Julien Lerouge <jlerouge at apple.com> wrote:
> Author: jlerouge
> Date: Mon Oct 22 19:23:46 2012
> New Revision: 166454
>
> URL: http://llvm.org/viewvc/llvm-project?rev=166454&view=rev
> Log:
> Explain why DenseMap is still used here instead of MapVector.
>
> Modified:
> llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
>
> Modified: llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp?rev=166454&r1=166453&r2=166454&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/PromoteMemoryToRegister.cpp Mon Oct 22
> 19:23:46 2012
> @@ -212,7 +212,11 @@
> ///
> DenseMap<AllocaInst*, unsigned> AllocaLookup;
>
> - /// NewPhiNodes - The PhiNodes we're adding.
> + /// NewPhiNodes - The PhiNodes we're adding. That map is used to
> simplify
> + /// some Phi nodes as we iterate over it, so it should have
> deterministic
> + /// iterators. We could use a MapVector, but since we already
> maintain a
> + /// map from BasicBlock* to a stable numbering (BBNumbers), the
> DenseMap is
> + /// more efficient (also supports removal).
> ///
> DenseMap<std::pair<unsigned, unsigned>, PHINode*> NewPhiNodes;
>
> @@ -588,6 +592,10 @@
> while (EliminatedAPHI) {
> EliminatedAPHI = false;
>
> + // Iterating over NewPhiNodes is deterministic, so it is safe to try
> to
> + // simplify and RUAW them as we go. If it was not, we could add uses
> to
> + // the values we replace with in a non deterministic order, thus
> creating
> + // non deterministic def->use chains.
>
Isn't the acronym RAUW not RUAW?
> for (DenseMap<std::pair<unsigned, unsigned>, PHINode*>::iterator I =
> NewPhiNodes.begin(), E = NewPhiNodes.end(); I != E;) {
> PHINode *PN = I->second;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20121022/406d1b35/attachment.html>
More information about the llvm-commits
mailing list