/// Init - Initialize the states.
///
- void init();
+ void init(MachineBasicBlock *mbb = NULL);
/// Reset - Discard previous states and re-initialize the states given for
/// the specific basic block.
void reset(MachineBasicBlock *mbb) {
- MBB = mbb;
clear();
- init();
+ init(mbb);
}
/// forward / backward - Move the internal MBB iterator and update register
#include "llvm/ADT/STLExtras.h"
using namespace llvm;
-void RegScavenger::init() {
+void RegScavenger::init(MachineBasicBlock *mbb) {
+ if (mbb)
+ MBB = mbb;
+
const MachineFunction &MF = *MBB->getParent();
const TargetMachine &TM = MF.getTarget();
const MRegisterInfo *RegInfo = TM.getRegisterInfo();