Eli managed to kill off llvm.membarrier in llvm 3.0 also, this means
authorChris Lattner <sabre@nondot.org>
Sun, 27 Nov 2011 08:42:07 +0000 (08:42 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 27 Nov 2011 08:42:07 +0000 (08:42 +0000)
that mainline needs no autoupgrade logic for intrinsics yet, woohoo!

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

lib/VMCore/AutoUpgrade.cpp

index 76eda7501e72b58810fb45e3dfb6dd650ed7a850..373524cdf38f24ba329c438d49a91c44c1d2e1d3 100644 (file)
@@ -37,13 +37,10 @@ static bool UpgradeIntrinsicFunction1(Function *F, Function *&NewFn) {
   if (Name.size() <= 8 || !Name.startswith("llvm."))
     return false;
   Name = Name.substr(5); // Strip off "llvm."
-  
+
   switch (Name[0]) {
   default: break;
-  case 'm':
-    if (Name == "memory.barrier")
-      return true;
-    break;
+  // SOMEDAY: Add some.
   }
 
   //  This may not belong here. This function is effectively being overloaded 
@@ -75,38 +72,15 @@ bool llvm::UpgradeGlobalVariable(GlobalVariable *GV) {
 // order to seamlessly integrate with existing context.
 void llvm::UpgradeIntrinsicCall(CallInst *CI, Function *NewFn) {
   Function *F = CI->getCalledFunction();
-  LLVMContext &C = CI->getContext();
-  ImmutableCallSite CS(CI);
 
   assert(F && "CallInst has no function associated with it.");
 
-  if (!NewFn) {
-    if (F->getName() == "llvm.memory.barrier") {
-      IRBuilder<> Builder(C);
-      Builder.SetInsertPoint(CI->getParent(), CI);
-
-      // Note that this conversion ignores the "device" bit; it was not really
-      // well-defined, and got abused because nobody paid enough attention to
-      // get it right. In practice, this probably doesn't matter; application
-      // code generally doesn't need anything stronger than
-      // SequentiallyConsistent (and realistically, SequentiallyConsistent
-      // is lowered to a strong enough barrier for almost anything).
-
-      if (cast<ConstantInt>(CI->getArgOperand(1))->getZExtValue())
-        Builder.CreateFence(SequentiallyConsistent);
-      else if (!cast<ConstantInt>(CI->getArgOperand(0))->getZExtValue())
-        Builder.CreateFence(Release);
-      else if (!cast<ConstantInt>(CI->getArgOperand(3))->getZExtValue())
-        Builder.CreateFence(Acquire);
-      else
-        Builder.CreateFence(AcquireRelease);
-
-      // Remove intrinsic.
-      CI->eraseFromParent();
-    } else {
-      llvm_unreachable("Unknown function for CallInst upgrade.");
-    }
-    return;
+  if (NewFn) return;
+  
+  if (F->getName() == "llvm.something eventually") {
+    // UPGRADE HERE.
+  } else {
+    llvm_unreachable("Unknown function for CallInst upgrade.");
   }
 }