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

The main job of the Region is to point to new instructions generated by vectorization passes. More...

#include "llvm/SandboxIR/Region.h"

Public Types

using iterator = decltype(Insts.begin())
 

Public Member Functions

 Region (Context &Ctx, TargetTransformInfo &TTI)
 
 ~Region ()
 
ContextgetContext () const
 
void add (Instruction *I)
 Adds I to the set.
 
void remove (Instruction *I)
 Removes I from the set.
 
bool contains (Instruction *I) const
 Returns true if I is in the Region.
 
bool empty () const
 Returns true if the Region has no instructions.
 
iterator begin ()
 
iterator end ()
 
iterator_range< iteratorinsts ()
 
const ScoreBoardgetScoreboard () const
 \Returns the ScoreBoard data structure that keeps track of instr costs.
 
bool operator== (const Region &Other) const
 This is an expensive check, meant for testing.
 
bool operator!= (const Region &other) const
 
void dump (raw_ostream &OS) const
 
void dump () const
 

Static Public Member Functions

static SmallVector< std::unique_ptr< Region > > createRegionsFromMD (Function &F, TargetTransformInfo &TTI)
 

Friends

raw_ostreamoperator<< (raw_ostream &OS, const Region &Rgn)
 

Detailed Description

The main job of the Region is to point to new instructions generated by vectorization passes.

It is the unit that RegionPasses operate on with their runOnRegion() function.

The region allows us to stack transformations horizontally, meaning that each transformation operates on a single region and the resulting region is the input to the next transformation, as opposed to vertically, which is the common way of applying a transformation across the whole function. This enables us to check for profitability and decide whether we accept or rollback at a region granularity, which is much better than doing this at the function level.

Definition at line 91 of file Region.h.

Member Typedef Documentation

◆ iterator

using llvm::sandboxir::Region::iterator = decltype(Insts.begin())

Definition at line 128 of file Region.h.

Constructor & Destructor Documentation

◆ Region()

llvm::sandboxir::Region::Region ( Context Ctx,
TargetTransformInfo TTI 
)

◆ ~Region()

llvm::sandboxir::Region::~Region ( )

Member Function Documentation

◆ add()

void llvm::sandboxir::Region::add ( Instruction I)

Adds I to the set.

Definition at line 52 of file Region.cpp.

References llvm::sandboxir::ScoreBoard::add(), and I.

Referenced by Region().

◆ begin()

iterator llvm::sandboxir::Region::begin ( )
inline

Definition at line 129 of file Region.h.

References llvm::SetVector< T, Vector, Set, N >::begin().

Referenced by insts().

◆ contains()

bool llvm::sandboxir::Region::contains ( Instruction I) const
inline

Returns true if I is in the Region.

Definition at line 124 of file Region.h.

References llvm::SetVector< T, Vector, Set, N >::contains(), and I.

Referenced by llvm::sandboxir::ScoreBoard::remove().

◆ createRegionsFromMD()

SmallVector< std::unique_ptr< Region > > llvm::sandboxir::Region::createRegionsFromMD ( Function F,
TargetTransformInfo TTI 
)
static

◆ dump() [1/2]

void llvm::sandboxir::Region::dump ( ) const

Definition at line 83 of file Region.cpp.

References llvm::dbgs(), and dump().

Referenced by dump().

◆ dump() [2/2]

void llvm::sandboxir::Region::dump ( raw_ostream OS) const

Definition at line 78 of file Region.cpp.

References I, and OS.

◆ empty()

bool llvm::sandboxir::Region::empty ( ) const
inline

Returns true if the Region has no instructions.

Definition at line 126 of file Region.h.

References llvm::SetVector< T, Vector, Set, N >::empty().

◆ end()

iterator llvm::sandboxir::Region::end ( )
inline

Definition at line 130 of file Region.h.

References llvm::SetVector< T, Vector, Set, N >::end().

Referenced by insts().

◆ getContext()

Context & llvm::sandboxir::Region::getContext ( ) const
inline

Definition at line 117 of file Region.h.

◆ getScoreboard()

const ScoreBoard & llvm::sandboxir::Region::getScoreboard ( ) const
inline

\Returns the ScoreBoard data structure that keeps track of instr costs.

Definition at line 136 of file Region.h.

◆ insts()

iterator_range< iterator > llvm::sandboxir::Region::insts ( )
inline

Definition at line 131 of file Region.h.

References begin(), end(), and llvm::make_range().

◆ operator!=()

bool llvm::sandboxir::Region::operator!= ( const Region other) const
inline

Definition at line 141 of file Region.h.

◆ operator==()

bool llvm::sandboxir::Region::operator== ( const Region Other) const

This is an expensive check, meant for testing.

Definition at line 70 of file Region.cpp.

References llvm::Other.

◆ remove()

void llvm::sandboxir::Region::remove ( Instruction I)

Removes I from the set.

Definition at line 60 of file Region.cpp.

References I, and llvm::sandboxir::ScoreBoard::remove().

Referenced by Region().

Friends And Related Function Documentation

◆ operator<<

raw_ostream & operator<< ( raw_ostream OS,
const Region Rgn 
)
friend

Definition at line 145 of file Region.h.


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