mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
Give MachineMemOperand an operator<<, factoring out code from
two different places for printing MachineMemOperands. Drop the virtual from Value::dump and instead give Value a protected virtual hook that can be overridden by subclasses to implement custom printing. This lets printing be more consistent, and simplifies printing of PseudoSourceValue values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1198,6 +1198,11 @@ static void WriteAsOperandInternal(raw_ostream &Out, const Value *V,
|
||||
return;
|
||||
}
|
||||
|
||||
if (V->getValueID() == Value::PseudoSourceValueVal) {
|
||||
V->print(Out);
|
||||
return;
|
||||
}
|
||||
|
||||
char Prefix = '%';
|
||||
int Slot;
|
||||
if (Machine) {
|
||||
@@ -2076,10 +2081,17 @@ void Value::print(raw_ostream &ROS, AssemblyAnnotationWriter *AAW) const {
|
||||
} else if (isa<InlineAsm>(this)) {
|
||||
WriteAsOperand(OS, this, true, 0);
|
||||
} else {
|
||||
llvm_unreachable("Unknown value to print out!");
|
||||
// Otherwise we don't know what it is. Call the virtual function to
|
||||
// allow a subclass to print itself.
|
||||
printCustom(OS);
|
||||
}
|
||||
}
|
||||
|
||||
// Value::printCustom - subclasses should override this to implement printing.
|
||||
void Value::printCustom(raw_ostream &OS) const {
|
||||
llvm_unreachable("Unknown value to print out!");
|
||||
}
|
||||
|
||||
// Value::dump - allow easy printing of Values from the debugger.
|
||||
void Value::dump() const { print(errs()); errs() << '\n'; }
|
||||
|
||||
|
Reference in New Issue
Block a user