[llvm-commits] [llvm] r145178 - /llvm/trunk/lib/VMCore/AutoUpgrade.cpp

Chris Lattner sabre at nondot.org
Sun Nov 27 00:42:07 PST 2011


Author: lattner
Date: Sun Nov 27 02:42:07 2011
New Revision: 145178

URL: http://llvm.org/viewvc/llvm-project?rev=145178&view=rev
Log:
Eli managed to kill off llvm.membarrier in llvm 3.0 also, this means
that mainline needs no autoupgrade logic for intrinsics yet, woohoo!

Modified:
    llvm/trunk/lib/VMCore/AutoUpgrade.cpp

Modified: llvm/trunk/lib/VMCore/AutoUpgrade.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AutoUpgrade.cpp?rev=145178&r1=145177&r2=145178&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/AutoUpgrade.cpp (original)
+++ llvm/trunk/lib/VMCore/AutoUpgrade.cpp Sun Nov 27 02:42:07 2011
@@ -37,13 +37,10 @@
   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 @@
 // 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.");
   }
 }
 





More information about the llvm-commits mailing list