Home | History | Annotate | Download | only in CodeGen

Lines Matching full:lock

292   // Evaluate the lock operand.  This is guaranteed to dominate the
293 // ARC release and lock-release cleanups.
295 llvm::Value *lock;
297 lock = CGF.EmitARCRetainScalarExpr(lockExpr);
298 lock = CGF.EmitObjCConsumeObject(lockExpr->getType(), lock);
300 lock = CGF.EmitScalarExpr(lockExpr);
302 lock = CGF.Builder.CreateBitCast(lock, CGF.VoidPtrTy);
304 // Acquire the lock.
305 CGF.Builder.CreateCall(syncEnterFn, lock)->setDoesNotThrow();
307 // Register an all-paths cleanup to release the lock.
308 CGF.EHStack.pushCleanup<CallSyncExit>(NormalAndEHCleanup, syncExitFn, lock);