clang 22.0.0git
StmtOpenACC.cpp File Reference

Go to the source code of this file.

Functions

static std::optional< std::pair< const Expr *, const Expr * > > getBinaryAssignOpArgs (const Expr *Op, bool &IsCompoundAssign)
static std::optional< std::pair< const Expr *, const Expr * > > getBinaryAssignOpArgs (const Expr *Op)
static std::optional< std::pair< const Expr *, bool > > getUnaryOpArgs (const Expr *Op)
static std::optional< OpenACCAtomicConstruct::SingleStmtInfogetReadStmtInfo (const Expr *E, bool ForAtomicComputeSingleStmt=false)
static std::optional< OpenACCAtomicConstruct::SingleStmtInfogetWriteStmtInfo (const Expr *E)
static std::optional< OpenACCAtomicConstruct::SingleStmtInfogetUpdateStmtInfo (const Expr *E)
static OpenACCAtomicConstruct::StmtInfo getCaptureStmtInfo (const Stmt *AssocStmt)
 The statement associated with an atomic capture comes in 1 of two forms: A compound statement containing two statements, or a single statement.

Function Documentation

◆ getBinaryAssignOpArgs() [1/2]

std::optional< std::pair< const Expr *, const Expr * > > getBinaryAssignOpArgs ( const Expr * Op)
static

Definition at line 345 of file StmtOpenACC.cpp.

References getBinaryAssignOpArgs().

◆ getBinaryAssignOpArgs() [2/2]

std::optional< std::pair< const Expr *, const Expr * > > getBinaryAssignOpArgs ( const Expr * Op,
bool & IsCompoundAssign )
static

◆ getCaptureStmtInfo()

OpenACCAtomicConstruct::StmtInfo getCaptureStmtInfo ( const Stmt * AssocStmt)
static

The statement associated with an atomic capture comes in 1 of two forms: A compound statement containing two statements, or a single statement.

In either case, the compound/single statement is decomposed into 2 separate operations, eihter a read/write, read/update, or update/read. This function figures out that information in the form listed in the standard (filling in V, X, or Expr) for each of these operations.

Definition at line 463 of file StmtOpenACC.cpp.

References clang::cast(), OpenACCAtomicConstruct::StmtInfo::createReadUpdate(), OpenACCAtomicConstruct::StmtInfo::createReadWrite(), OpenACCAtomicConstruct::StmtInfo::createUpdateRead(), getReadStmtInfo(), getUpdateStmtInfo(), getWriteStmtInfo(), clang::Read, clang::Update, and Write.

Referenced by OpenACCAtomicConstruct::getAssociatedStmtInfo().

◆ getReadStmtInfo()

std::optional< OpenACCAtomicConstruct::SingleStmtInfo > getReadStmtInfo ( const Expr * E,
bool ForAtomicComputeSingleStmt = false )
static

◆ getUnaryOpArgs()

std::optional< std::pair< const Expr *, bool > > getUnaryOpArgs ( const Expr * Op)
static

Definition at line 351 of file StmtOpenACC.cpp.

Referenced by getUpdateStmtInfo().

◆ getUpdateStmtInfo()

◆ getWriteStmtInfo()