forked from OSchip/llvm-project
[MLIR] Printing a null Value.
This diff adds support to printing a Value when it is null. We encounter this situation when debugging the PDL bytcode execution (where a null Value is perfectly valid). Currently, the AsmPrinter crashes (with an assert in a cast) when it encounters such Value. We follow the same format used in other printed entities (e.g., null attribute). Reviewed By: mehdi_amini, bondhugula Differential Revision: https://reviews.llvm.org/D116084
This commit is contained in:
parent
de6c82d6fd
commit
7de8488c3d
|
@ -935,7 +935,7 @@ SSANameState::SSANameState(
|
|||
void SSANameState::printValueID(Value value, bool printResultNo,
|
||||
raw_ostream &stream) const {
|
||||
if (!value) {
|
||||
stream << "<<NULL>>";
|
||||
stream << "<<NULL VALUE>>";
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2826,6 +2826,11 @@ void IntegerSet::print(raw_ostream &os) const {
|
|||
}
|
||||
|
||||
void Value::print(raw_ostream &os) {
|
||||
if (!impl) {
|
||||
os << "<<NULL VALUE>>";
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto *op = getDefiningOp())
|
||||
return op->print(os);
|
||||
// TODO: Improve BlockArgument print'ing.
|
||||
|
@ -2834,6 +2839,11 @@ void Value::print(raw_ostream &os) {
|
|||
<< "' at index: " << arg.getArgNumber();
|
||||
}
|
||||
void Value::print(raw_ostream &os, AsmState &state) {
|
||||
if (!impl) {
|
||||
os << "<<NULL VALUE>>";
|
||||
return;
|
||||
}
|
||||
|
||||
if (auto *op = getDefiningOp())
|
||||
return op->print(os, state);
|
||||
|
||||
|
|
Loading…
Reference in New Issue