reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGAtomic.cpp
  747   QualType AtomicTy = E->getPtr()->getType()->getPointeeType();
  756   Address Ptr = EmitPointerWithAlignment(E->getPtr());
  758   if (E->getOp() == AtomicExpr::AO__c11_atomic_init ||
  759       E->getOp() == AtomicExpr::AO__opencl_atomic_init) {
  761     EmitAtomicInit(E->getVal1(), lvalue);
  775     CGM.getDiags().Report(E->getBeginLoc(), diag::warn_atomic_op_misaligned)
  779   llvm::Value *Order = EmitScalarExpr(E->getOrder());
  781       E->getScopeModel() ? EmitScalarExpr(E->getScope()) : nullptr;
  781       E->getScopeModel() ? EmitScalarExpr(E->getScope()) : nullptr;
  783   switch (E->getOp()) {
  794     Dest = EmitPointerWithAlignment(E->getVal1());
  798     Val1 = EmitPointerWithAlignment(E->getVal1());
  802     Val1 = EmitPointerWithAlignment(E->getVal1());
  803     Dest = EmitPointerWithAlignment(E->getVal2());
  812     Val1 = EmitPointerWithAlignment(E->getVal1());
  813     if (E->getOp() == AtomicExpr::AO__atomic_compare_exchange)
  814       Val2 = EmitPointerWithAlignment(E->getVal2());
  816       Val2 = EmitValToTemp(*this, E->getVal2());
  817     OrderFail = EmitScalarExpr(E->getOrderFail());
  818     if (E->getOp() == AtomicExpr::AO__atomic_compare_exchange_n ||
  819         E->getOp() == AtomicExpr::AO__atomic_compare_exchange)
  820       IsWeak = EmitScalarExpr(E->getWeak());
  832       QualType Val1Ty = E->getVal1()->getType();
  833       llvm::Value *Val1Scalar = EmitScalarExpr(E->getVal1());
  871     Val1 = EmitValToTemp(*this, E->getVal1());
  875   QualType RValTy = E->getType().getUnqualifiedType();
  888   else if (E->isCmpXChg())
  896     switch (E->getOp()) {
  971       if (!E->isOpenCL())
  985                  EmitCastToVoidPtr(Ptr.getPointer()), E->getPtr()->getType())),
  994     switch (E->getOp()) {
 1017               EmitCastToVoidPtr(Val1.getPointer()), E->getVal1()->getType())),
 1020                         MemTy, E->getExprLoc(), sizeChars);
 1033                         MemTy, E->getExprLoc(), sizeChars);
 1045                         MemTy, E->getExprLoc(), sizeChars);
 1065                         LoweredMemTy, E->getExprLoc(), sizeChars);
 1077                         MemTy, E->getExprLoc(), sizeChars);
 1089                         MemTy, E->getExprLoc(), sizeChars);
 1101                         LoweredMemTy, E->getExprLoc(), sizeChars);
 1113                         MemTy, E->getExprLoc(), sizeChars);
 1117       LibCallName = E->getValueType()->isSignedIntegerType()
 1121                         LoweredMemTy, E->getExprLoc(), sizeChars);
 1125       LibCallName = E->getValueType()->isSignedIntegerType()
 1129                         LoweredMemTy, E->getExprLoc(), sizeChars);
 1139                         MemTy, E->getExprLoc(), sizeChars);
 1143     if (E->isOpenCL()) {
 1168     if (E->isOpenCL())
 1178     if (E->isCmpXChg())
 1189       if (E->getOp() == AtomicExpr::AO__atomic_nand_fetch)
 1202         RValTy, E->getExprLoc());
 1205   bool IsStore = E->getOp() == AtomicExpr::AO__c11_atomic_store ||
 1206                  E->getOp() == AtomicExpr::AO__opencl_atomic_store ||
 1207                  E->getOp() == AtomicExpr::AO__atomic_store ||
 1208                  E->getOp() == AtomicExpr::AO__atomic_store_n;
 1209   bool IsLoad = E->getOp() == AtomicExpr::AO__c11_atomic_load ||
 1210                 E->getOp() == AtomicExpr::AO__opencl_atomic_load ||
 1211                 E->getOp() == AtomicExpr::AO__atomic_load ||
 1212                 E->getOp() == AtomicExpr::AO__atomic_load_n;
 1221         EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1228         EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1234         EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1240         EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1244         EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1254         RValTy, E->getExprLoc());
 1282   EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1287     EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1297     EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1305     EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1312   EmitAtomicOp(*this, E, Dest, Ptr, Val1, Val2, IsWeak, OrderFail, Size,
 1327       RValTy, E->getExprLoc());