Changeset View
Changeset View
Standalone View
Standalone View
mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Show First 20 Lines • Show All 2,131 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
void OpEmitter::genTraits() { | void OpEmitter::genTraits() { | ||||
// Add region size trait. | // Add region size trait. | ||||
unsigned numRegions = op.getNumRegions(); | unsigned numRegions = op.getNumRegions(); | ||||
unsigned numVariadicRegions = op.getNumVariadicRegions(); | unsigned numVariadicRegions = op.getNumVariadicRegions(); | ||||
addSizeCountTrait(opClass, "Region", numRegions, numVariadicRegions); | addSizeCountTrait(opClass, "Region", numRegions, numVariadicRegions); | ||||
// Add result size trait. | // Add result size traits. | ||||
int numResults = op.getNumResults(); | int numResults = op.getNumResults(); | ||||
int numVariadicResults = op.getNumVariableLengthResults(); | int numVariadicResults = op.getNumVariableLengthResults(); | ||||
addSizeCountTrait(opClass, "Result", numResults, numVariadicResults); | addSizeCountTrait(opClass, "Result", numResults, numVariadicResults); | ||||
// For single result ops with a known specific type, generate a OneTypedResult | |||||
// trait. | |||||
if (numResults == 1 && numVariadicResults == 0) { | |||||
auto cppName = op.getResults().begin()->constraint.getCPPClassName(); | |||||
opClass.addTrait("::mlir::OpTrait::OneTypedResult<" + cppName + ">::Impl"); | |||||
} | |||||
// Add successor size trait. | // Add successor size trait. | ||||
unsigned numSuccessors = op.getNumSuccessors(); | unsigned numSuccessors = op.getNumSuccessors(); | ||||
unsigned numVariadicSuccessors = op.getNumVariadicSuccessors(); | unsigned numVariadicSuccessors = op.getNumVariadicSuccessors(); | ||||
addSizeCountTrait(opClass, "Successor", numSuccessors, numVariadicSuccessors); | addSizeCountTrait(opClass, "Successor", numSuccessors, numVariadicSuccessors); | ||||
// Add variadic size trait and normal op traits. | // Add variadic size trait and normal op traits. | ||||
int numOperands = op.getNumOperands(); | int numOperands = op.getNumOperands(); | ||||
int numVariadicOperands = op.getNumVariableLengthOperands(); | int numVariadicOperands = op.getNumVariableLengthOperands(); | ||||
▲ Show 20 Lines • Show All 327 Lines • Show Last 20 Lines |