LLVM 20.0.0git
Public Member Functions | Static Public Member Functions | Static Public Attributes | Friends | List of all members
llvm::MCRegister Class Reference

Wrapper class representing physical registers. Should be passed by value. More...

#include "llvm/MC/MCRegister.h"

Public Member Functions

constexpr MCRegister (unsigned Val=0)
 
constexpr operator unsigned () const
 
constexpr unsigned id () const
 
constexpr bool isValid () const
 
constexpr bool operator== (const MCRegister &Other) const
 Comparisons between register objects.
 
constexpr bool operator!= (const MCRegister &Other) const
 
constexpr bool operator== (unsigned Other) const
 Comparisons against register constants.
 
constexpr bool operator!= (unsigned Other) const
 
constexpr bool operator== (int Other) const
 
constexpr bool operator!= (int Other) const
 
constexpr bool operator== (MCPhysReg Other) const
 
constexpr bool operator!= (MCPhysReg Other) const
 

Static Public Member Functions

static constexpr bool isStackSlot (unsigned Reg)
 This is the portion of the positive number space that is not a physical register.
 
static constexpr bool isPhysicalRegister (unsigned Reg)
 Return true if the specified register number is in the physical register namespace.
 
static MCRegister from (unsigned Val)
 Check the provided unsigned value is a valid MCRegister.
 

Static Public Attributes

static constexpr unsigned NoRegister = 0u
 
static constexpr unsigned FirstPhysicalReg = 1u
 
static constexpr unsigned FirstStackSlot = 1u << 30
 
static constexpr unsigned VirtualRegFlag = 1u << 31
 

Friends

hash_code hash_value (const MCRegister &)
 

Detailed Description

Wrapper class representing physical registers. Should be passed by value.

Definition at line 33 of file MCRegister.h.

Constructor & Destructor Documentation

◆ MCRegister()

constexpr llvm::MCRegister::MCRegister ( unsigned  Val = 0)
inlineconstexpr

Definition at line 38 of file MCRegister.h.

Member Function Documentation

◆ from()

static MCRegister llvm::MCRegister::from ( unsigned  Val)
inlinestatic

◆ id()

constexpr unsigned llvm::MCRegister::id ( ) const
inlineconstexpr

◆ isPhysicalRegister()

static constexpr bool llvm::MCRegister::isPhysicalRegister ( unsigned  Reg)
inlinestaticconstexpr

Return true if the specified register number is in the physical register namespace.

Definition at line 67 of file MCRegister.h.

References FirstPhysicalReg, and FirstStackSlot.

Referenced by llvm::Register::asMCReg(), from(), llvm::Register::isPhysicalRegister(), llvm::MCRegUnitIterator::MCRegUnitIterator(), llvm::MCSubRegIterator::MCSubRegIterator(), and llvm::MCSuperRegIterator::MCSuperRegIterator().

◆ isStackSlot()

static constexpr bool llvm::MCRegister::isStackSlot ( unsigned  Reg)
inlinestaticconstexpr

This is the portion of the positive number space that is not a physical register.

StackSlot values do not exist in the MC layer, see Register::isStackSlot() for the more information on them.

Definition at line 61 of file MCRegister.h.

References FirstStackSlot, and VirtualRegFlag.

Referenced by llvm::Register::isStack(), and llvm::Register::isStackSlot().

◆ isValid()

constexpr bool llvm::MCRegister::isValid ( ) const
inlineconstexpr

◆ operator unsigned()

constexpr llvm::MCRegister::operator unsigned ( ) const
inlineconstexpr

Definition at line 71 of file MCRegister.h.

◆ operator!=() [1/4]

constexpr bool llvm::MCRegister::operator!= ( const MCRegister Other) const
inlineconstexpr

Definition at line 87 of file MCRegister.h.

References llvm::Other.

◆ operator!=() [2/4]

constexpr bool llvm::MCRegister::operator!= ( int  Other) const
inlineconstexpr

Definition at line 97 of file MCRegister.h.

References llvm::Other.

◆ operator!=() [3/4]

constexpr bool llvm::MCRegister::operator!= ( MCPhysReg  Other) const
inlineconstexpr

Definition at line 102 of file MCRegister.h.

References llvm::Other.

◆ operator!=() [4/4]

constexpr bool llvm::MCRegister::operator!= ( unsigned  Other) const
inlineconstexpr

Definition at line 95 of file MCRegister.h.

References llvm::Other.

◆ operator==() [1/4]

constexpr bool llvm::MCRegister::operator== ( const MCRegister Other) const
inlineconstexpr

Comparisons between register objects.

Definition at line 84 of file MCRegister.h.

References llvm::Other.

◆ operator==() [2/4]

constexpr bool llvm::MCRegister::operator== ( int  Other) const
inlineconstexpr

Definition at line 96 of file MCRegister.h.

References llvm::Other.

◆ operator==() [3/4]

constexpr bool llvm::MCRegister::operator== ( MCPhysReg  Other) const
inlineconstexpr

Definition at line 99 of file MCRegister.h.

References llvm::Other.

◆ operator==() [4/4]

constexpr bool llvm::MCRegister::operator== ( unsigned  Other) const
inlineconstexpr

Comparisons against register constants.

E.g.

  • R == AArch64::WZR
  • R == 0

Definition at line 94 of file MCRegister.h.

References llvm::Other.

Friends And Related Function Documentation

◆ hash_value

hash_code hash_value ( const MCRegister Reg)
friend

Definition at line 123 of file MCRegister.h.

Member Data Documentation

◆ FirstPhysicalReg

constexpr unsigned llvm::MCRegister::FirstPhysicalReg = 1u
staticconstexpr

Definition at line 53 of file MCRegister.h.

Referenced by isPhysicalRegister().

◆ FirstStackSlot

constexpr unsigned llvm::MCRegister::FirstStackSlot = 1u << 30
staticconstexpr

◆ NoRegister

constexpr unsigned llvm::MCRegister::NoRegister = 0u
staticconstexpr

◆ VirtualRegFlag

constexpr unsigned llvm::MCRegister::VirtualRegFlag = 1u << 31
staticconstexpr

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