forked from OSchip/llvm-project
fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h.
llvm-svn: 95748
This commit is contained in:
parent
0a75ceee38
commit
ea26fa9971
|
@ -80,13 +80,6 @@ namespace llvm {
|
|||
DwarfWriter *DW;
|
||||
|
||||
public:
|
||||
/// Flags to specify different kinds of comments to output in
|
||||
/// assembly code. These flags carry semantic information not
|
||||
/// otherwise easily derivable from the IR text.
|
||||
///
|
||||
enum CommentFlag {
|
||||
ReloadReuse = 0x1
|
||||
};
|
||||
|
||||
/// Output stream on which we're printing assembly code.
|
||||
///
|
||||
|
|
|
@ -41,6 +41,14 @@ class MachineInstr : public ilist_node<MachineInstr> {
|
|||
public:
|
||||
typedef MachineMemOperand **mmo_iterator;
|
||||
|
||||
/// Flags to specify different kinds of comments to output in
|
||||
/// assembly code. These flags carry semantic information not
|
||||
/// otherwise easily derivable from the IR text.
|
||||
///
|
||||
enum CommentFlag {
|
||||
ReloadReuse = 0x1
|
||||
};
|
||||
|
||||
private:
|
||||
const TargetInstrDesc *TID; // Instruction descriptor.
|
||||
unsigned short NumImplicitOps; // Number of implicit operands (which
|
||||
|
@ -121,14 +129,14 @@ public:
|
|||
|
||||
/// getAsmPrinterFlag - Return whether an AsmPrinter flag is set.
|
||||
///
|
||||
bool getAsmPrinterFlag(unsigned Flag) const {
|
||||
bool getAsmPrinterFlag(CommentFlag Flag) const {
|
||||
return AsmPrinterFlags & Flag;
|
||||
}
|
||||
|
||||
/// setAsmPrinterFlag - Set a flag for the AsmPrinter.
|
||||
///
|
||||
void setAsmPrinterFlag(unsigned short Flag) {
|
||||
AsmPrinterFlags |= Flag;
|
||||
void setAsmPrinterFlag(CommentFlag Flag) {
|
||||
AsmPrinterFlags |= (unsigned short)Flag;
|
||||
}
|
||||
|
||||
/// getDebugLoc - Returns the debug location id of this MachineInstr.
|
||||
|
|
|
@ -375,7 +375,7 @@ static void EmitComments(const MachineInstr &MI, raw_ostream &CommentOS) {
|
|||
unsigned SrcReg, DstReg, SrcSubIdx, DstSubIdx;
|
||||
if (TM.getInstrInfo()->isMoveInstr(MI, SrcReg, DstReg,
|
||||
SrcSubIdx, DstSubIdx)) {
|
||||
if (MI.getAsmPrinterFlag(AsmPrinter::ReloadReuse))
|
||||
if (MI.getAsmPrinterFlag(MachineInstr::ReloadReuse))
|
||||
CommentOS << " Reload Reuse\n";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#define DEBUG_TYPE "virtregrewriter"
|
||||
#include "VirtRegRewriter.h"
|
||||
#include "llvm/Function.h"
|
||||
#include "llvm/CodeGen/AsmPrinter.h" // FIXME: Layering!
|
||||
#include "llvm/CodeGen/MachineFrameInfo.h"
|
||||
#include "llvm/CodeGen/MachineInstrBuilder.h"
|
||||
#include "llvm/CodeGen/MachineRegisterInfo.h"
|
||||
|
@ -1760,7 +1759,7 @@ private:
|
|||
|
||||
// Mark is killed.
|
||||
MachineInstr *CopyMI = prior(InsertLoc);
|
||||
CopyMI->setAsmPrinterFlag(AsmPrinter::ReloadReuse);
|
||||
CopyMI->setAsmPrinterFlag(MachineInstr::ReloadReuse);
|
||||
MachineOperand *KillOpnd = CopyMI->findRegisterUseOperand(InReg);
|
||||
KillOpnd->setIsKill();
|
||||
UpdateKills(*CopyMI, TRI, RegKills, KillOps);
|
||||
|
@ -2038,7 +2037,7 @@ private:
|
|||
TII->copyRegToReg(MBB, InsertLoc, DesignatedReg, PhysReg, RC, RC);
|
||||
|
||||
MachineInstr *CopyMI = prior(InsertLoc);
|
||||
CopyMI->setAsmPrinterFlag(AsmPrinter::ReloadReuse);
|
||||
CopyMI->setAsmPrinterFlag(MachineInstr::ReloadReuse);
|
||||
UpdateKills(*CopyMI, TRI, RegKills, KillOps);
|
||||
|
||||
// This invalidates DesignatedReg.
|
||||
|
@ -2167,7 +2166,7 @@ private:
|
|||
// virtual or needing to clobber any values if it's physical).
|
||||
NextMII = &MI;
|
||||
--NextMII; // backtrack to the copy.
|
||||
NextMII->setAsmPrinterFlag(AsmPrinter::ReloadReuse);
|
||||
NextMII->setAsmPrinterFlag(MachineInstr::ReloadReuse);
|
||||
// Propagate the sub-register index over.
|
||||
if (SubIdx) {
|
||||
DefMO = NextMII->findRegisterDefOperand(DestReg);
|
||||
|
|
Loading…
Reference in New Issue