Skip to content

Commit

Permalink
Better errmsg upon getScalarTypeForType failure (#3734)
Browse files Browse the repository at this point in the history
Instead of 
`Unhandled type in getScalarTypeForType`

You now get

Unhandled type in getScalarTypeForType: (type name)
Type properties:
  Is integer: yes
  Bit width: 
...


The root cause is #3720, at
least for unsigned integer issues.
  • Loading branch information
renxida authored Sep 25, 2024
1 parent 6773288 commit aa7e77e
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion lib/Dialect/Torch/Utils/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,28 @@ torch_upstream::ScalarType Torch::getScalarTypeForType(Type type) {
return torch_upstream::ScalarType::Float8_e5m2fnuz;
if (isa<Float8E4M3FNUZType>(type))
return torch_upstream::ScalarType::Float8_e4m3fnuz;
llvm::report_fatal_error("unhandled type for getScalarTypeForType");
std::string errorMsg = "Unhandled type in getScalarTypeForType: ";
llvm::raw_string_ostream os(errorMsg);
type.print(os);
// os << "\nType ID: " << type.getTypeID();
os << "\nType properties:";
os << "\n Is integer: " << (type.isInteger() ? "yes" : "no");
os << "\n Is float: "
<< (type.isIntOrFloat() && !type.isInteger() ? "yes" : "no");
os << "\n Is index: " << (type.isIndex() ? "yes" : "no");
os << "\n Bit width: "
<< (type.isIntOrFloat() ? std::to_string(type.getIntOrFloatBitWidth())
: "N/A");
os << "\n Is signless: " << (type.isSignlessInteger() ? "yes" : "no");
os << "\n Is signed: " << (type.isSignedInteger() ? "yes" : "no");
// special error message for unsigned integer
if (type.isUnsignedInteger()) {
os << "\n Is unsigned: yes";
os << "\nUnsigned integer support is currently spotty. Please seeheck "
"https://github.com/llvm/torch-mlir/issues/3720 "
"for more details.";
}
llvm::report_fatal_error(llvm::StringRef(errorMsg));
}
Type Torch::getTypeForTorchType(
MLIRContext *context, Type type,
Expand Down

0 comments on commit aa7e77e

Please sign in to comment.