Class AtomicExpr

Inheritance Relationships

Base Type

Class Documentation

class seq::AtomicExpr : public seq::Expr

Public Types

enum Op


enumerator XCHG
enumerator ADD
enumerator SUB
enumerator AND
enumerator NAND
enumerator OR
enumerator XOR
enumerator MAX
enumerator MIN

Public Functions

AtomicExpr(AtomicExpr::Op op, Var *lhs, Expr *rhs)
void resolveTypes() override

Performs type resolution on this expression and all sub-expressions/statements/etc. This is called prior to Expr::getType().

llvm::Value *codegen0(BaseFunc *base, llvm::BasicBlock *&block) override

Performs code generation for this expression.


value representing expression result; possibly null if type is void

  • base: the function containing this expression

  • block: reference to block where code should be generated; possibly modified to point to a new block where codegen should resume

AtomicExpr *clone(Generic *ref) override

Clones this expression. ref is used internally to keep track of cloned objects, and to make sure we don’t clone certain objects twice.


cloned expression

  • ref: generic object that is being cloned