From: Matt Arsenault Date: Tue, 31 Jan 2017 23:48:44 +0000 (+0000) Subject: InferAddressSpaces: Avoid double map lookup X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=08e88e4167807cd40058eae3111f447be20ef377;p=llvm InferAddressSpaces: Avoid double map lookup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@293719 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/InferAddressSpaces.cpp b/lib/Transforms/Scalar/InferAddressSpaces.cpp index 8a8f82af82c..9f03e03892e 100644 --- a/lib/Transforms/Scalar/InferAddressSpaces.cpp +++ b/lib/Transforms/Scalar/InferAddressSpaces.cpp @@ -583,14 +583,12 @@ Optional InferAddressSpaces::updateAddressSpace( // of all its pointer operands. unsigned NewAS = UninitializedAddressSpace; for (Value *PtrOperand : getPointerOperands(V)) { - unsigned OperandAS; - if (InferredAddrSpace.count(PtrOperand)) - OperandAS = InferredAddrSpace.lookup(PtrOperand); - else - OperandAS = PtrOperand->getType()->getPointerAddressSpace(); - NewAS = joinAddressSpaces(NewAS, OperandAS); + auto I = InferredAddrSpace.find(PtrOperand); + unsigned OperandAS = I != InferredAddrSpace.end() ? + I->second : PtrOperand->getType()->getPointerAddressSpace(); // join(flat, *) = flat. So we can break if NewAS is already flat. + NewAS = joinAddressSpaces(NewAS, OperandAS); if (NewAS == FlatAddrSpace) break; }