[llvm-commits] [llvm] r132906 - /llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
Nick Lewycky
nlewycky at google.com
Mon Jun 13 18:05:15 PDT 2011
On 13 June 2011 10:10, Chris Lattner <clattner at apple.com> wrote:
>
> On Jun 13, 2011, at 12:52 AM, Nick Lewycky wrote:
>
> > Author: nicholas
> > Date: Mon Jun 13 02:52:46 2011
> > New Revision: 132906
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=132906&view=rev
> > Log:
> > It's possible that an all-zero GEP may be used as the argument to
> lifetime
> > intrinsics. In fact, we'll optimize a bitcast to that when possible.
> Detect it
> > when looking for the lifetime intrinsics.
> >
> > No test case, noticed by inspection.
>
> Would it make sense to use Value::stripPointerCasts here?
>
Yes it would. Committed in r132954.
>
> -Chris
>
> >
> > Modified:
> > llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
> >
> > Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=132906&r1=132905&r2=132906&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original)
> > +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Mon Jun 13
> 02:52:46 2011
> > @@ -734,11 +734,15 @@
> > if (AI->getType() == Int8PtrTy)
> > return isUsedByLifetimeMarker(AI);
> >
> > - // Do a scan to find all the bitcasts to i8*.
> > + // Do a scan to find all the bitcasts or GEPs to i8*.
> > for (Value::use_iterator I = AI->use_begin(), E = AI->use_end(); I !=
> E;
> > ++I) {
> > if (I->getType() != Int8PtrTy) continue;
> > - if (!isa<BitCastInst>(*I)) continue;
> > + if (GetElementPtrInst *GEPI = dyn_cast<GetElementPtrInst>(*I)) {
> > + if (!GEPI->hasAllZeroIndices()) continue;
> > + } else if (!isa<BitCastInst>(*I)) {
> > + continue;
> > + }
> > if (isUsedByLifetimeMarker(*I))
> > return true;
> > }
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110613/055510db/attachment.html>
More information about the llvm-commits
mailing list