[llvm] r185770 - [objc-arc] Remove the alias analysis part of r185764.

Michael Gottesman mgottesman at apple.com
Sun Jul 7 19:15:40 PDT 2013


r185782.

On Jul 7, 2013, at 9:45 AM, David Blaikie <dblaikie at gmail.com> wrote:

> 
> On Jul 6, 2013 9:21 PM, "Michael Gottesman" <mgottesman at apple.com> wrote:
> >
> > Author: mgottesman
> > Date: Sat Jul  6 23:18:03 2013
> > New Revision: 185770
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=185770&view=rev
> > Log:
> > [objc-arc] Remove the alias analysis part of r185764.
> >
> > Upon further reflection, the alias analysis part of r185764 is not a safe
> > change.
> 
> Got a test case you could add so no one makes this mistake again?
> 
> >
> > Modified:
> >     llvm/trunk/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
> >     llvm/trunk/test/Transforms/ObjCARC/gvn.ll
> >
> > Modified: llvm/trunk/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp?rev=185770&r1=185769&r2=185770&view=diff
> > ==============================================================================
> > --- llvm/trunk/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp (original)
> > +++ llvm/trunk/lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp Sat Jul  6 23:18:03 2013
> > @@ -150,14 +150,6 @@ ObjCARCAliasAnalysis::getModRefInfo(Immu
> >      break;
> >    }
> >
> > -  // Handle special objective c calls defaulting to chaining.
> > -  const Function *F = CS.getCalledFunction();
> > -  if (F)
> > -    return StringSwitch<AliasAnalysis::ModRefResult>(F->getName())
> > -      .Case("objc_sync_start", NoModRef)
> > -      .Case("objc_sync_stop", NoModRef)
> > -      .Default(AliasAnalysis::getModRefInfo(CS, Loc));
> > -
> >    return AliasAnalysis::getModRefInfo(CS, Loc);
> >  }
> >
> >
> > Modified: llvm/trunk/test/Transforms/ObjCARC/gvn.ll
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/ObjCARC/gvn.ll?rev=185770&r1=185769&r2=185770&view=diff
> > ==============================================================================
> > --- llvm/trunk/test/Transforms/ObjCARC/gvn.ll (original)
> > +++ llvm/trunk/test/Transforms/ObjCARC/gvn.ll Sat Jul  6 23:18:03 2013
> > @@ -3,8 +3,6 @@
> >  @x = common global i8* null, align 8
> >
> >  declare i8* @objc_retain(i8*)
> > -declare i32 @objc_sync_start(i8*)
> > -declare i32 @objc_sync_stop(i8*)
> >
> >  ; GVN should be able to eliminate this redundant load, with ARC-specific
> >  ; alias analysis.
> > @@ -22,19 +20,3 @@ entry:
> >    %t = load i8** @x
> >    ret i8* %t
> >  }
> > -
> > -; CHECK: define i8* @test1(i32 %n)
> > -; CHECK-NEXT: entry:
> > -; CHECK-NEXT: %s = load i8** @x
> > -; CHECK-NEXT: call i32 @objc_sync_start
> > -; CHECK-NEXT: call i32 @objc_sync_stop
> > -; CHECK-NEXT: ret i8* %s
> > -; CHECK-NEXT: }
> > -define i8* @test1(i32 %n) nounwind {
> > -entry:
> > -  %s = load i8** @x
> > -  %0 = call i32 @objc_sync_start(i8* %s)
> > -  %t = load i8** @x
> > -  %1 = call i32 @objc_sync_stop(i8* %s)
> > -  ret i8* %t
> > -}
> >
> >
> > _______________________________________________
> > 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/20130707/977a4074/attachment.html>


More information about the llvm-commits mailing list