LLVM API Documentation

llvm::RegisterCoalescer Class Reference

#include <RegisterCoalescer.h>

Inheritance diagram for llvm::RegisterCoalescer:
[legend]
Collaboration diagram for llvm::RegisterCoalescer:
[legend]

List of all members.

Public Member Functions

 RegisterCoalescer ()
virtual ~RegisterCoalescer ()
virtual bool coalesceFunction (MachineFunction &mf, RegallocQuery &ifd)=0
virtual void reset (MachineFunction &mf)
virtual void getAnalysisUsage (AnalysisUsage &AU) const

Static Public Attributes

static char ID = 0


Detailed Description

An abstract interface for register coalescers. Coalescers must implement this interface to be part of the coalescer analysis group.

Definition at line 32 of file RegisterCoalescer.h.


Constructor & Destructor Documentation

llvm::RegisterCoalescer::RegisterCoalescer (  )  [inline]

Definition at line 35 of file RegisterCoalescer.h.

RegisterCoalescer::~RegisterCoalescer (  )  [virtual]

Definition at line 34 of file RegisterCoalescer.cpp.


Member Function Documentation

virtual bool llvm::RegisterCoalescer::coalesceFunction ( MachineFunction &  mf,
RegallocQuery &  ifd 
) [pure virtual]

Run the coalescer on this function, providing interference data to query. Return whether we removed any copies.

Implemented in llvm::SimpleRegisterCoalescing.

virtual void llvm::RegisterCoalescer::reset ( MachineFunction &  mf  )  [inline, virtual]

Reset state. Can be used to allow a coalescer run by PassManager to be run again by the register allocator.

Definition at line 45 of file RegisterCoalescer.h.

virtual void llvm::RegisterCoalescer::getAnalysisUsage ( AnalysisUsage &  AU  )  const [inline, virtual]

Register allocators must call this from their own getAnalysisUsage to cover the case where the coalescer is not a Pass in the proper sense and isn't managed by PassManager. PassManager needs to know which analyses to make available and which to invalidate when running the register allocator or any pass that might call coalescing. The long-term solution is to allow hierarchies of PassManagers.

Reimplemented in llvm::SimpleRegisterCoalescing.

Definition at line 54 of file RegisterCoalescer.h.


Member Data Documentation

char RegisterCoalescer::ID = 0 [static]

Reimplemented in llvm::SimpleRegisterCoalescing.

Definition at line 34 of file RegisterCoalescer.h.


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