LLVM API Documentation
#include <RegisterCoalescer.h>
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 |
Definition at line 32 of file RegisterCoalescer.h.
| llvm::RegisterCoalescer::RegisterCoalescer | ( | ) | [inline] |
Definition at line 35 of file RegisterCoalescer.h.
| RegisterCoalescer::~RegisterCoalescer | ( | ) | [virtual] |
Definition at line 34 of file RegisterCoalescer.cpp.
| 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.
char RegisterCoalescer::ID = 0 [static] |