From 93ff2447ecc8eda32052f160df790e8de5251e1c Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Sun, 9 Dec 2012 11:56:01 +0000 Subject: [PATCH] Switch SROA to pop Uses off the back of its visitors' queues. This will more closely match the behavior of the new PtrUseVisitor that I am adding. Hopefully this will not change the actual behavior in any way, but by making the processing order more similar help in debugging. llvm-svn: 169697 --- llvm/lib/Transforms/Scalar/SROA.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/llvm/lib/Transforms/Scalar/SROA.cpp b/llvm/lib/Transforms/Scalar/SROA.cpp index cb9838ef6744..a4b8b47a6745 100644 --- a/llvm/lib/Transforms/Scalar/SROA.cpp +++ b/llvm/lib/Transforms/Scalar/SROA.cpp @@ -522,11 +522,10 @@ public: /// \brief Run the builder over the allocation. bool operator()() { - // Note that we have to re-evaluate size on each trip through the loop as - // the queue grows at the tail. - for (unsigned Idx = 0; Idx < Queue.size(); ++Idx) { - U = Queue[Idx].U; - Offset = Queue[Idx].Offset; + while (!Queue.empty()) { + U = Queue.back().U; + Offset = Queue.back().Offset; + Queue.pop_back(); if (!visit(cast(U->getUser()))) return false; } @@ -851,11 +850,10 @@ public: /// \brief Run the builder over the allocation. void operator()() { - // Note that we have to re-evaluate size on each trip through the loop as - // the queue grows at the tail. - for (unsigned Idx = 0; Idx < Queue.size(); ++Idx) { - U = Queue[Idx].U; - Offset = Queue[Idx].Offset; + while (!Queue.empty()) { + U = Queue.back().U; + Offset = Queue.back().Offset; + Queue.pop_back(); this->visit(cast(U->getUser())); } }