clang 22.0.0git
|
Go to the source code of this file.
Functions | |
static Address | emitValToTemp (CIRGenFunction &cgf, Expr *e) |
static bool | isFullSizeType (CIRGenModule &cgm, mlir::Type ty, uint64_t expectedSize) |
Does a store of the given IR type modify the full expected width? | |
static void | emitAtomicCmpXchg (CIRGenFunction &cgf, AtomicExpr *e, bool isWeak, Address dest, Address ptr, Address val1, Address val2, uint64_t size, cir::MemOrder successOrder, cir::MemOrder failureOrder) |
static void | emitAtomicCmpXchgFailureSet (CIRGenFunction &cgf, AtomicExpr *e, bool isWeak, Address dest, Address ptr, Address val1, Address val2, Expr *failureOrderExpr, uint64_t size, cir::MemOrder successOrder) |
static void | emitAtomicOp (CIRGenFunction &cgf, AtomicExpr *expr, Address dest, Address ptr, Address val1, Address val2, Expr *isWeakExpr, Expr *failureOrderExpr, int64_t size, cir::MemOrder order) |
static bool | isMemOrderValid (uint64_t order, bool isStore, bool isLoad) |
|
static |
Definition at line 247 of file CIRGenAtomic.cpp.
References clang::CIRGen::CIRGenBuilderTy::createLoad(), cir::CIRBaseBuilderTy::createNot(), cir::CIRBaseBuilderTy::createPtrBitcast(), clang::CIRGen::CIRGenBuilderTy::createStore(), cir::CIRBaseBuilderTy::createYield(), clang::CIRGen::CIRGenFunction::emitStoreOfScalar(), clang::CIRGen::Address::getAlignment(), clang::CharUnits::getAsAlign(), cir::CIRBaseBuilderTy::getBoolTy(), clang::CIRGen::CIRGenFunction::getBuilder(), clang::CIRGen::Address::getElementType(), clang::CIRGen::CIRGenFunction::getLoc(), clang::CIRGen::CIRGenFunction::getMLIRContext(), clang::CIRGen::Address::getPointer(), clang::Stmt::getSourceRange(), clang::Expr::getType(), clang::AtomicExpr::isVolatile(), clang::CIRGen::CIRGenFunction::makeAddrLValue(), and clang::CIRGen::Address::withPointer().
Referenced by emitAtomicCmpXchgFailureSet(), and emitAtomicCmpXchgFailureSet().
|
static |
Definition at line 287 of file CIRGenAtomic.cpp.
References cir::MissingFeatures::atomicExpr(), clang::CIRGen::CIRGenFunction::cgm, emitAtomicCmpXchg(), clang::CIRGen::CIRGenModule::errorNYI(), clang::Expr::EvaluateAsInt(), clang::CIRGen::CIRGenFunction::getContext(), clang::APValue::getInt(), clang::Stmt::getSourceRange(), cir::isValidCIRAtomicOrderingCABI(), and clang::Expr::EvalResult::Val.
Referenced by EmitAtomicOp(), and emitAtomicOp().
|
static |
Definition at line 332 of file CIRGenAtomic.cpp.
References cir::MissingFeatures::atomicExpr(), cir::MissingFeatures::atomicScope(), cir::MissingFeatures::atomicSyncScopeID(), clang::CIRGen::CIRGenFunction::cgm, clang::CIRGen::CIRGenBuilderTy::createLoad(), clang::CIRGen::CIRGenBuilderTy::createStore(), emitAtomicCmpXchgFailureSet(), clang::CIRGen::CIRGenModule::errorNYI(), clang::Expr::EvaluateAsBooleanCondition(), clang::ast_matchers::expr, clang::CIRGen::CIRGenFunction::getBuilder(), clang::CIRGen::CIRGenFunction::getContext(), clang::CIRGen::CIRGenFunction::getLoc(), and clang::CIRGen::Address::getPointer().
Referenced by clang::CIRGen::CIRGenFunction::emitAtomicExpr().
|
static |
Definition at line 133 of file CIRGenAtomic.cpp.
References clang::CIRGen::CIRGenFunction::createMemTemp(), clang::CIRGen::CIRGenFunction::emitAnyExprToMem(), clang::CIRGen::CIRGenFunction::getLoc(), clang::QualType::getQualifiers(), clang::Stmt::getSourceRange(), and clang::Expr::getType().
Referenced by clang::CIRGen::CIRGenFunction::emitAtomicExpr().
|
static |
Does a store of the given IR type modify the full expected width?
Definition at line 142 of file CIRGenAtomic.cpp.
References clang::CIRGen::CIRGenModule::getDataLayout(), and cir::CIRDataLayout::getTypeStoreSize().
Definition at line 529 of file CIRGenAtomic.cpp.
References cir::isValidCIRAtomicOrderingCABI().
Referenced by clang::CIRGen::CIRGenFunction::emitAtomicExpr().