LLVM 24.0.0git
llvm::Rollbacker Class Reference

Rematerializer listener with the ability to re-create deleted registers and rollback rematerializations. More...

#include "llvm/CodeGen/Rematerializer.h"

Inheritance diagram for llvm::Rollbacker:
[legend]

Public Member Functions

 Rollbacker ()=default
void rollback (Rematerializer &Remater)
 Re-creates all deleted registers and rolls back all rematerializations that were recorded.
void rematerializerNoteRegCreated (const Rematerializer &Remater, RegisterIdx RegIdx) override
 Called just after register NewRegIdx is created (following a rematerialization).
void rematerializerNoteRegWillBeDeleted (const Rematerializer &Remater, RegisterIdx RegIdx) override
 Called just before register RegIdx is deleted from the MIR.
void rematerializerNoteMIWillBeDeleted (const Rematerializer &Remater, MachineInstr &MI) override
 Called just before unrematerializable instruction MI is deleted from the MIR because it has become a dead definition.
Public Member Functions inherited from llvm::Rematerializer::Listener
virtual ~Listener ()=default

Additional Inherited Members

Public Types inherited from llvm::Rematerializer::Listener
using RegisterIdx = Rematerializer::RegisterIdx

Detailed Description

Rematerializer listener with the ability to re-create deleted registers and rollback rematerializations.

Starts recording register deletions and rematerializations as soon as it is attached to the rematerializer.

Definition at line 550 of file Rematerializer.h.

Constructor & Destructor Documentation

◆ Rollbacker()

Member Function Documentation

◆ rematerializerNoteMIWillBeDeleted()

void Rollbacker::rematerializerNoteMIWillBeDeleted ( const Rematerializer & Remater,
MachineInstr & MI )
overridevirtual

Called just before unrematerializable instruction MI is deleted from the MIR because it has become a dead definition.

Reimplemented from llvm::Rematerializer::Listener.

Definition at line 1010 of file Rematerializer.cpp.

References llvm::MachineBasicBlock::end(), and MI.

Referenced by Rollbacker().

◆ rematerializerNoteRegCreated()

void Rollbacker::rematerializerNoteRegCreated ( const Rematerializer & Remater,
RegisterIdx NewRegIdx )
overridevirtual

Called just after register NewRegIdx is created (following a rematerialization).

At this point the rematerialization exists in the Remater state and the MIR but does not yet have any user.

Reimplemented from llvm::Rematerializer::Listener.

Definition at line 973 of file Rematerializer.cpp.

References assert(), llvm::Rematerializer::getOriginOf(), and llvm::Rematerializer::isRematerializedRegister().

Referenced by Rollbacker().

◆ rematerializerNoteRegWillBeDeleted()

void Rollbacker::rematerializerNoteRegWillBeDeleted ( const Rematerializer & Remater,
RegisterIdx RegIdx )
overridevirtual

Called just before register RegIdx is deleted from the MIR.

At this point the register still exists in the MIR but no longer has any user.

Reimplemented from llvm::Rematerializer::Listener.

Definition at line 981 of file Rematerializer.cpp.

References DefMI, llvm::Rematerializer::Reg::DefMI, llvm::MachineBasicBlock::end(), llvm::Rematerializer::getReg(), and llvm::Rematerializer::isRematerializedRegister().

Referenced by Rollbacker().

◆ rollback()


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