[llvm] r185770 - [objc-arc] Remove the alias analysis part of r185764.
David Blaikie
dblaikie at gmail.com
Sun Jul 7 09:45:59 PDT 2013
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/65dfd14b/attachment.html>
More information about the llvm-commits
mailing list