]> granicus.if.org Git - clang/commitdiff
Add codgen for BI__builtin_llvm_memory_barrier.
authorTanya Lattner <tonic@nondot.org>
Sat, 16 Jan 2010 01:21:14 +0000 (01:21 +0000)
committerTanya Lattner <tonic@nondot.org>
Sat, 16 Jan 2010 01:21:14 +0000 (01:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93611 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGBuiltin.cpp

index 866c58780b9cc2498cffd5561c81544ac37793de..7b903c833c3ed26eaed043e0a5f5fb849ec11a5a 100644 (file)
@@ -556,6 +556,18 @@ RValue CodeGenFunction::EmitBuiltinExpr(const FunctionDecl *FD,
     return RValue::get(0);
   }
 
+  case Builtin::BI__builtin_llvm_memory_barrier: {
+    Value *C[5] = {
+      EmitScalarExpr(E->getArg(0)),
+      EmitScalarExpr(E->getArg(1)),
+      EmitScalarExpr(E->getArg(2)),
+      EmitScalarExpr(E->getArg(3)),
+      EmitScalarExpr(E->getArg(4))
+    };
+    Builder.CreateCall(CGM.getIntrinsic(Intrinsic::memory_barrier), C, C + 5);
+    return RValue::get(0);
+  }
+      
     // Library functions with special handling.
   case Builtin::BIsqrt:
   case Builtin::BIsqrtf: