LLVM 20.0.0git
Public Types | Static Public Member Functions | List of all members
llvm::MCUnaryExpr Class Reference

Unary assembler expressions. More...

#include "llvm/MC/MCExpr.h"

Inheritance diagram for llvm::MCUnaryExpr:
Inheritance graph
[legend]

Public Types

enum  Opcode { LNot , Minus , Not , Plus }
 
- Public Types inherited from llvm::MCExpr
enum  ExprKind : uint8_t {
  Binary , Constant , SymbolRef , Unary ,
  Target
}
 

Public Member Functions

Accessors
Opcode getOpcode () const
 Get the kind of this unary expression.
 
const MCExprgetSubExpr () const
 Get the child of this unary expression.
 
- Public Member Functions inherited from llvm::MCExpr
 MCExpr (const MCExpr &)=delete
 
MCExproperator= (const MCExpr &)=delete
 
ExprKind getKind () const
 
SMLoc getLoc () const
 
void print (raw_ostream &OS, const MCAsmInfo *MAI, bool InParens=false) const
 
void dump () const
 
bool isSymbolUsedInExpression (const MCSymbol *Sym) const
 Returns whether the given symbol is used anywhere in the expression or subexpressions.
 
bool evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm, const SectionAddrMap &Addrs) const
 Try to evaluate the expression to an absolute value.
 
bool evaluateAsAbsolute (int64_t &Res) const
 
bool evaluateAsAbsolute (int64_t &Res, const MCAssembler &Asm) const
 
bool evaluateAsAbsolute (int64_t &Res, const MCAssembler *Asm) const
 
bool evaluateKnownAbsolute (int64_t &Res, const MCAssembler &Asm) const
 Aggressive variant of evaluateAsRelocatable when relocations are unavailable (e.g.
 
bool evaluateAsRelocatable (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup) const
 Try to evaluate the expression to a relocatable value, i.e.
 
bool evaluateAsValue (MCValue &Res, const MCAssembler &Asm) const
 Try to evaluate the expression to the form (a - b + constant) where neither a nor b are variables.
 
MCFragmentfindAssociatedFragment () const
 Find the "associated section" for this expression, which is currently defined as the absolute section for constants, or otherwise the section associated with the first defined symbol in the expression.
 

Static Public Member Functions

static bool classof (const MCExpr *E)
 
Construction
static const MCUnaryExprcreate (Opcode Op, const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateLNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateMinus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreateNot (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 
static const MCUnaryExprcreatePlus (const MCExpr *Expr, MCContext &Ctx, SMLoc Loc=SMLoc())
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::MCExpr
 MCExpr (ExprKind Kind, SMLoc Loc, unsigned SubclassData=0)
 
bool evaluateAsRelocatableImpl (MCValue &Res, const MCAssembler *Asm, const MCFixup *Fixup, const SectionAddrMap *Addrs, bool InSet) const
 
unsigned getSubclassData () const
 

Detailed Description

Unary assembler expressions.

Definition at line 437 of file MCExpr.h.

Member Enumeration Documentation

◆ Opcode

Enumerator
LNot 

Logical negation.

Minus 

Unary minus.

Not 

Bitwise negation.

Plus 

Unary plus.

Definition at line 439 of file MCExpr.h.

Member Function Documentation

◆ classof()

static bool llvm::MCUnaryExpr::classof ( const MCExpr E)
inlinestatic

Definition at line 487 of file MCExpr.h.

References E, and llvm::MCExpr::Unary.

◆ create()

const MCUnaryExpr * MCUnaryExpr::create ( Opcode  Op,
const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
static

Definition at line 217 of file MCExpr.cpp.

Referenced by createLNot(), createMinus(), createNot(), createPlus(), and tryFoldHelper().

◆ createLNot()

static const MCUnaryExpr * llvm::MCUnaryExpr::createLNot ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 459 of file MCExpr.h.

References create(), and LNot.

◆ createMinus()

static const MCUnaryExpr * llvm::MCUnaryExpr::createMinus ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

◆ createNot()

static const MCUnaryExpr * llvm::MCUnaryExpr::createNot ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 467 of file MCExpr.h.

References create(), and Not.

Referenced by llvm::AMDGPU::MCKernelDescriptor::bits_set().

◆ createPlus()

static const MCUnaryExpr * llvm::MCUnaryExpr::createPlus ( const MCExpr Expr,
MCContext Ctx,
SMLoc  Loc = SMLoc() 
)
inlinestatic

Definition at line 471 of file MCExpr.h.

References create(), and Plus.

◆ getOpcode()

Opcode llvm::MCUnaryExpr::getOpcode ( ) const
inline

Get the kind of this unary expression.

Definition at line 480 of file MCExpr.h.

References llvm::MCExpr::getSubclassData().

Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), llvm::MCExpr::print(), tryFoldHelper(), and unaryOpKnownBitsMapHelper().

◆ getSubExpr()

const MCExpr * llvm::MCUnaryExpr::getSubExpr ( ) const
inline

Get the child of this unary expression.

Definition at line 483 of file MCExpr.h.

Referenced by llvm::MCExpr::evaluateAsRelocatableImpl(), llvm::MCExpr::print(), tryFoldHelper(), and unaryOpKnownBitsMapHelper().


The documentation for this class was generated from the following files: