//===----------------------------------------------------------------------===//
#define DEBUG_TYPE "twoaddrinstr"
+#include "llvm/Function.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/LiveVariables.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
bool MadeChange = false;
+ DEBUG(std::cerr << "********** REWRITING TWO-ADDR INSTRS **********\n");
+ DEBUG(std::cerr << "********** Function: "
+ << MF.getFunction()->getName() << '\n');
+
for (MachineFunction::iterator mbbi = MF.begin(), mbbe = MF.end();
mbbi != mbbe; ++mbbi) {
for (MachineBasicBlock::iterator mi = mbbi->begin(), me = mbbi->end();
++numTwoAddressInstrs;
- DEBUG(std::cerr << "\tinstruction: "; mi->print(std::cerr, TM));
+ DEBUG(std::cerr << '\t'; mi->print(std::cerr, TM));
assert(mi->getOperand(1).isRegister() &&
mi->getOperand(1).getReg() &&
numInstrsAdded += Added;
MachineBasicBlock::iterator prevMi = prior(mi);
- DEBUG(std::cerr << "\t\tadded instruction: ";
+ DEBUG(std::cerr << "\t\tprepend:\t";
prevMi->print(std::cerr, TM));
if (LV) {
mi->getOperand(0).setUse();
mi->RemoveOperand(1);
- DEBUG(std::cerr << "\t\tmodified original to: ";
+ DEBUG(std::cerr << "\t\trewrite to:\t";
mi->print(std::cerr, TM));
}
}