Lines Matching defs:guard
981 // are disabled, we can just let the guard variable be of type i8.
993 // Create the guard variable if we don't already have it (as we
995 llvm::GlobalVariable *guard = CGM.getStaticLocalDeclGuardAddress(&D);
996 if (!guard) {
997 // Mangle the name for the guard.
1005 // Create the guard variable with a zero-initializer.
1007 guard = new llvm::GlobalVariable(CGM.getModule(), guardTy,
1011 guard->setVisibility(var->getVisibility());
1013 CGM.setStaticLocalDeclGuardAddress(&D, guard);
1020 // To support the potential use of initialization guard variables
1023 // guard variable to be a 4-byte aligned, 4- byte word with the
1031 llvm::Value *V = Builder.CreateLoad(guard);
1033 isInitialized = Builder.CreateIsNull(V, "guard.uninitialized");
1050 // Load the first byte of the guard variable.
1052 Builder.CreateLoad(Builder.CreateBitCast(guard, CGM.Int8PtrTy));
1064 isInitialized = Builder.CreateIsNull(LI, "guard.uninitialized");
1070 // Check if the first byte of the guard variable is zero.
1079 = Builder.CreateCall(getGuardAcquireFn(CGM, guardPtrTy), guard);
1087 CGF.EHStack.pushCleanup<CallGuardAbort>(EHCleanup, guard);
1096 // Pop the guard-abort cleanup if we pushed one.
1100 Builder.CreateCall(getGuardReleaseFn(CGM, guardPtrTy), guard);
1102 Builder.CreateStore(llvm::ConstantInt::get(guardTy, 1), guard);