[objc-arc] Remove the alias analysis part of r185764.
authorMichael Gottesman <mgottesman@apple.com>
Sun, 7 Jul 2013 04:18:03 +0000 (04:18 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Sun, 7 Jul 2013 04:18:03 +0000 (04:18 +0000)
Upon further reflection, the alias analysis part of r185764 is not a safe
change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185770 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/ObjCARC/ObjCARCAliasAnalysis.cpp
test/Transforms/ObjCARC/gvn.ll

index 1a3f383d4c0f808b5f17b0a64eb31bd6d24def38..46b2de713745b3792e9ec7d15ab1061a091cc339 100644 (file)
@@ -150,14 +150,6 @@ ObjCARCAliasAnalysis::getModRefInfo(ImmutableCallSite CS, const Location &Loc) {
     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);
 }
 
index 0773b69ee1ea5494062f8facbfdfd75172cb958b..8d9b1bb84b86bd64e058c46a340c6e161abd1c03 100644 (file)
@@ -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
-}